@@ -206,36 +206,23 @@ export const __DirectiveLocation: GraphQLEnumType = new GraphQLEnumType({
206206  } , 
207207} ) ; 
208208
209- // TODO: rename enum and options 
210209enum  TypeNullability  { 
211-   AUTO  =  'AUTO' , 
212210  TRADITIONAL  =  'TRADITIONAL' , 
213-   SEMANTIC  =  'SEMANTIC' , 
214211  FULL  =  'FULL' , 
215212} 
216213
217- // TODO: rename 
218214export  const  __TypeNullability : GraphQLEnumType  =  new  GraphQLEnumType ( { 
219215  name : '__TypeNullability' , 
220-   description : 'TODO' , 
216+   description :
217+     'This represents the type of nullability we want to return as part of the introspection.' , 
221218  values : { 
222-     AUTO : { 
223-       value : TypeNullability . AUTO , 
224-       description :
225-         'Determines nullability mode based on errorPropagation mode.' , 
226-     } , 
227219    TRADITIONAL : { 
228220      value : TypeNullability . TRADITIONAL , 
229221      description : 'Turn semantic-non-null types into nullable types.' , 
230222    } , 
231-     SEMANTIC : { 
232-       value : TypeNullability . SEMANTIC , 
233-       description : 'Turn non-null types into semantic-non-null types.' , 
234-     } , 
235223    FULL : { 
236224      value : TypeNullability . FULL , 
237-       description :
238-         'Render the true nullability in the schema; be prepared for new types of nullability in future!' , 
225+       description : 'Allow for returning semantic-non-null types.' , 
239226    } , 
240227  } , 
241228} ) ; 
@@ -408,22 +395,11 @@ export const __Field: GraphQLObjectType = new GraphQLObjectType({
408395        args : { 
409396          nullability : { 
410397            type : new  GraphQLNonNull ( __TypeNullability ) , 
411-             defaultValue : TypeNullability . AUTO , 
398+             defaultValue : TypeNullability . TRADITIONAL , 
412399          } , 
413400        } , 
414-         resolve : ( field ,  {  nullability } ,  _context ,  info )  =>  { 
415-           if  ( nullability  ===  TypeNullability . FULL )  { 
416-             return  field . type ; 
417-           } 
418- 
419-           const  mode  = 
420-             nullability  ===  TypeNullability . AUTO 
421-               ? info . errorPropagation 
422-                 ? TypeNullability . TRADITIONAL 
423-                 : TypeNullability . SEMANTIC 
424-               : nullability ; 
425-           return  convertOutputTypeToNullabilityMode ( field . type ,  mode ) ; 
426-         } , 
401+         resolve : ( field ,  {  nullability } ,  _context )  => 
402+           convertOutputTypeToNullabilityMode ( field . type ,  nullability ) , 
427403      } , 
428404      isDeprecated : { 
429405        type : new  GraphQLNonNull ( GraphQLBoolean ) , 
@@ -436,10 +412,9 @@ export const __Field: GraphQLObjectType = new GraphQLObjectType({
436412    }  as  GraphQLFieldConfigMap < GraphQLField < unknown ,  unknown > ,  unknown > ) , 
437413} ) ; 
438414
439- // TODO: move this elsewhere, rename, memoize 
440415function  convertOutputTypeToNullabilityMode ( 
441416  type : GraphQLType , 
442-   mode : TypeNullability . TRADITIONAL   |   TypeNullability . SEMANTIC , 
417+   mode : TypeNullability , 
443418) : GraphQLType  { 
444419  if  ( mode  ===  TypeNullability . TRADITIONAL )  { 
445420    if  ( isNonNullType ( type ) )  { 
@@ -455,7 +430,12 @@ function convertOutputTypeToNullabilityMode(
455430    } 
456431    return  type ; 
457432  } 
458-   if  ( isNonNullType ( type )  ||  isSemanticNonNullType ( type ) )  { 
433+ 
434+   if  ( isNonNullType ( type ) )  { 
435+     return  new  GraphQLNonNull ( 
436+       convertOutputTypeToNullabilityMode ( type . ofType ,  mode ) , 
437+     ) ; 
438+   }  else  if  ( isSemanticNonNullType ( type ) )  { 
459439    return  new  GraphQLSemanticNonNull ( 
460440      convertOutputTypeToNullabilityMode ( type . ofType ,  mode ) , 
461441    ) ; 
@@ -464,6 +444,7 @@ function convertOutputTypeToNullabilityMode(
464444      convertOutputTypeToNullabilityMode ( type . ofType ,  mode ) , 
465445    ) ; 
466446  } 
447+ 
467448  return  type ; 
468449} 
469450
0 commit comments