@@ -116,7 +116,7 @@ export interface ExecutionContext {
116
116
typeResolver : GraphQLTypeResolver < any , any > ;
117
117
subscribeFieldResolver : GraphQLFieldResolver < any , any > ;
118
118
errors : Array < GraphQLError > ;
119
- errorBehavior : 'PROPAGATE' | 'NULL ' | 'ABORT' ;
119
+ errorBehavior : 'PROPAGATE' | 'NO_PROPAGATE ' | 'ABORT' ;
120
120
}
121
121
122
122
/**
@@ -155,14 +155,14 @@ export interface ExecutionArgs {
155
155
typeResolver ?: Maybe < GraphQLTypeResolver < any , any > > ;
156
156
subscribeFieldResolver ?: Maybe < GraphQLFieldResolver < any , any > > ;
157
157
/**
158
- * Experimental. Set to NULL to prevent error propagation. Set to ABORT to
158
+ * Experimental. Set to NO_PROPAGATE to prevent error propagation. Set to ABORT to
159
159
* abort a request when any error occurs.
160
160
*
161
161
* Default: PROPAGATE
162
162
*
163
163
* @experimental
164
164
*/
165
- errorBehavior ?: 'PROPAGATE' | 'NULL ' | 'ABORT' ;
165
+ onError ?: 'PROPAGATE' | 'NO_PROPAGATE ' | 'ABORT' ;
166
166
}
167
167
168
168
/**
@@ -297,9 +297,22 @@ export function buildExecutionContext(
297
297
fieldResolver,
298
298
typeResolver,
299
299
subscribeFieldResolver,
300
- errorBehavior ,
300
+ onError ,
301
301
} = args ;
302
302
303
+ if (
304
+ onError != null &&
305
+ onError !== 'PROPAGATE' &&
306
+ onError !== 'NO_PROPAGATE' &&
307
+ onError !== 'ABORT'
308
+ ) {
309
+ return [
310
+ new GraphQLError (
311
+ 'Unsupported `onError` value; supported values are `PROPAGATE`, `NO_PROPAGATE` and `ABORT`.' ,
312
+ ) ,
313
+ ] ;
314
+ }
315
+
303
316
let operation : OperationDefinitionNode | undefined ;
304
317
const fragments : ObjMap < FragmentDefinitionNode > = Object . create ( null ) ;
305
318
for ( const definition of document . definitions ) {
@@ -359,7 +372,7 @@ export function buildExecutionContext(
359
372
typeResolver : typeResolver ?? defaultTypeResolver ,
360
373
subscribeFieldResolver : subscribeFieldResolver ?? defaultFieldResolver ,
361
374
errors : [ ] ,
362
- errorBehavior : errorBehavior ?? 'PROPAGATE' ,
375
+ errorBehavior : onError ?? 'PROPAGATE' ,
363
376
} ;
364
377
}
365
378
@@ -618,7 +631,7 @@ function handleFieldError(
618
631
} else if ( exeContext . errorBehavior === 'ABORT' ) {
619
632
// In this mode, any error aborts the request
620
633
throw error ;
621
- } else if ( exeContext . errorBehavior === 'NULL ' ) {
634
+ } else if ( exeContext . errorBehavior === 'NO_PROPAGATE ' ) {
622
635
// In this mode, the client takes responsibility for error handling, so we
623
636
// treat the field as if it were nullable.
624
637
} else {
0 commit comments