@@ -33,29 +33,29 @@ export interface GraphQLFormattedErrorExtensions {
3333  [ attributeName : string ] : unknown ; 
3434} 
3535
36- export  interface  GraphQLErrorOptions  { 
36+ export  interface  GraphQLErrorOptions < TErrorExtensions   =   GraphQLErrorExtensions >  { 
3737  nodes ?: ReadonlyArray < ASTNode >  |  ASTNode  |  null ; 
3838  source ?: Maybe < Source > ; 
3939  positions ?: Maybe < ReadonlyArray < number > > ; 
4040  path ?: Maybe < ReadonlyArray < string  |  number > > ; 
4141  originalError ?: Maybe < Error  &  {  readonly  extensions ?: unknown  } > ; 
42-   extensions ?: Maybe < GraphQLErrorExtensions > ; 
42+   extensions ?: Maybe < TErrorExtensions > ; 
4343} 
4444
45- type  BackwardsCompatibleArgs  = 
46-   |  [ options ?: GraphQLErrorOptions ] 
45+ type  BackwardsCompatibleArgs < TErrorExtensions   =   GraphQLErrorExtensions >  = 
46+   |  [ options ?: GraphQLErrorOptions < TErrorExtensions > ] 
4747  |  [ 
48-       nodes ?: GraphQLErrorOptions [ 'nodes' ] , 
49-       source ?: GraphQLErrorOptions [ 'source' ] , 
50-       positions ?: GraphQLErrorOptions [ 'positions' ] , 
51-       path ?: GraphQLErrorOptions [ 'path' ] , 
52-       originalError ?: GraphQLErrorOptions [ 'originalError' ] , 
53-       extensions ?: GraphQLErrorOptions [ 'extensions' ] , 
48+       nodes ?: GraphQLErrorOptions < TErrorExtensions > [ 'nodes' ] , 
49+       source ?: GraphQLErrorOptions < TErrorExtensions > [ 'source' ] , 
50+       positions ?: GraphQLErrorOptions < TErrorExtensions > [ 'positions' ] , 
51+       path ?: GraphQLErrorOptions < TErrorExtensions > [ 'path' ] , 
52+       originalError ?: GraphQLErrorOptions < TErrorExtensions > [ 'originalError' ] , 
53+       extensions ?: GraphQLErrorOptions < TErrorExtensions > [ 'extensions' ] , 
5454    ] ; 
5555
56- function  toNormalizedOptions ( 
57-   args : BackwardsCompatibleArgs , 
58- ) : GraphQLErrorOptions  { 
56+ function  toNormalizedOptions < TErrorExtensions   =   GraphQLErrorExtensions > ( 
57+   args : BackwardsCompatibleArgs < TErrorExtensions > , 
58+ ) : GraphQLErrorOptions < TErrorExtensions >  { 
5959  const  firstArg  =  args [ 0 ] ; 
6060  if  ( firstArg  ==  null  ||  'kind'  in  firstArg  ||  'length'  in  firstArg )  { 
6161    return  { 
@@ -76,7 +76,7 @@ function toNormalizedOptions(
7676 * and stack trace, it also includes information about the locations in a 
7777 * GraphQL document and/or execution result that correspond to the Error. 
7878 */ 
79- export  class  GraphQLError  extends  Error  { 
79+ export  class  GraphQLError < TErrorExtensions   =   GraphQLErrorExtensions >  extends  Error  { 
8080  /** 
8181   * An array of `{ line, column }` locations within the source GraphQL document 
8282   * which correspond to this error. 
@@ -124,9 +124,9 @@ export class GraphQLError extends Error {
124124  /** 
125125   * Extension fields to add to the formatted error. 
126126   */ 
127-   readonly  extensions : GraphQLErrorExtensions ; 
127+   readonly  extensions : TErrorExtensions ; 
128128
129-   constructor ( message : string ,  options ?: GraphQLErrorOptions ) ; 
129+   constructor ( message : string ,  options ?: GraphQLErrorOptions < TErrorExtensions > ) ; 
130130  /** 
131131   * @deprecated  Please use the `GraphQLErrorOptions` constructor overload instead. 
132132   */ 
@@ -137,11 +137,11 @@ export class GraphQLError extends Error {
137137    positions ?: Maybe < ReadonlyArray < number > > , 
138138    path ?: Maybe < ReadonlyArray < string  |  number > > , 
139139    originalError ?: Maybe < Error  &  {  readonly  extensions ?: unknown  } > , 
140-     extensions ?: Maybe < GraphQLErrorExtensions > , 
140+     extensions ?: Maybe < TErrorExtensions > , 
141141  ) ; 
142-   constructor ( message : string ,  ...rawArgs : BackwardsCompatibleArgs )  { 
142+   constructor ( message : string ,  ...rawArgs : BackwardsCompatibleArgs < TErrorExtensions > )  { 
143143    const  {  nodes,  source,  positions,  path,  originalError,  extensions }  = 
144-       toNormalizedOptions ( rawArgs ) ; 
144+       toNormalizedOptions < TErrorExtensions > ( rawArgs ) ; 
145145    super ( message ) ; 
146146
147147    this . name  =  'GraphQLError' ; 
@@ -231,9 +231,9 @@ export class GraphQLError extends Error {
231231    return  output ; 
232232  } 
233233
234-   toJSON ( ) : GraphQLFormattedError  { 
234+   toJSON ( ) : GraphQLFormattedError < TErrorExtensions >  { 
235235    type  WritableFormattedError  =  { 
236-       - readonly  [ P  in  keyof  GraphQLFormattedError ] : GraphQLFormattedError [ P ] ; 
236+       - readonly  [ P  in  keyof  GraphQLFormattedError < TErrorExtensions > ] : GraphQLFormattedError < TErrorExtensions > [ P ] ; 
237237    } ; 
238238
239239    const  formattedError : WritableFormattedError  =  { 
@@ -265,7 +265,7 @@ function undefinedIfEmpty<T>(
265265/** 
266266 * See: https://spec.graphql.org/draft/#sec-Errors 
267267 */ 
268- export  interface  GraphQLFormattedError  { 
268+ export  interface  GraphQLFormattedError < TErrorExtensions   =   GraphQLFormattedErrorExtensions >  { 
269269  /** 
270270   * A short, human-readable summary of the problem that **SHOULD NOT** change 
271271   * from occurrence to occurrence of the problem, except for purposes of 
@@ -288,7 +288,7 @@ export interface GraphQLFormattedError {
288288   * Reserved for implementors to extend the protocol however they see fit, 
289289   * and hence there are no additional restrictions on its contents. 
290290   */ 
291-   readonly  extensions ?: GraphQLFormattedErrorExtensions ; 
291+   readonly  extensions ?: TErrorExtensions ; 
292292} 
293293
294294/** 
0 commit comments