@@ -144,8 +144,9 @@ function getOperationTypeNode(
144
144
operation : OperationTypeNode ,
145
145
) : ?ASTNode {
146
146
// istanbul ignore next (See: 'https://github.com/graphql/graphql-js/issues/2203')
147
- return getAllNodes ( schema )
148
- . flatMap ( ( schemaNode ) => schemaNode . operationTypes ?? [ ] )
147
+ return [ schema . astNode ]
148
+ . concat ( schema . extensionASTNodes )
149
+ . flatMap ( ( schemaNode ) => schemaNode ?. operationTypes ?? [ ] )
149
150
. find ( ( operationNode ) => operationNode . operation === operation ) ?. type ;
150
151
}
151
152
@@ -262,7 +263,7 @@ function validateFields(
262
263
if ( fields . length === 0 ) {
263
264
context . reportError (
264
265
`Type ${ type . name } must define one or more fields.` ,
265
- getAllNodes ( type ) ,
266
+ [ type . astNode ] . concat ( type . extensionASTNodes ) ,
266
267
) ;
267
268
}
268
269
@@ -363,7 +364,7 @@ function validateTypeImplementsInterface(
363
364
if ( ! typeField ) {
364
365
context . reportError (
365
366
`Interface field ${ iface . name } .${ fieldName } expected but ${ type . name } does not provide it.` ,
366
- [ ifaceField . astNode , ... getAllNodes ( type ) ] ,
367
+ [ ifaceField . astNode , type . astNode ] . concat ( type . extensionASTNodes ) ,
367
368
) ;
368
369
continue ;
369
370
}
@@ -463,7 +464,7 @@ function validateUnionMembers(
463
464
if ( memberTypes . length === 0 ) {
464
465
context . reportError (
465
466
`Union type ${ union . name } must define one or more member types.` ,
466
- getAllNodes ( union ) ,
467
+ [ union . astNode ] . concat ( union . extensionASTNodes ) ,
467
468
) ;
468
469
}
469
470
@@ -496,7 +497,7 @@ function validateEnumValues(
496
497
if ( enumValues . length === 0 ) {
497
498
context . reportError (
498
499
`Enum type ${ enumType . name } must define one or more values.` ,
499
- getAllNodes ( enumType ) ,
500
+ [ enumType . astNode ] . concat ( enumType . extensionASTNodes ) ,
500
501
) ;
501
502
}
502
503
@@ -523,7 +524,7 @@ function validateInputFields(
523
524
if ( fields . length === 0 ) {
524
525
context . reportError (
525
526
`Input Object type ${ inputObj . name } must define one or more fields.` ,
526
- getAllNodes ( inputObj ) ,
527
+ [ inputObj . astNode ] . concat ( inputObj . extensionASTNodes ) ,
527
528
) ;
528
529
}
529
530
@@ -606,30 +607,14 @@ function createInputObjectCircularRefsValidator(
606
607
}
607
608
}
608
609
609
- type SDLDefinedObject < T , K > = {
610
- + astNode : ?T ,
611
- + extensionASTNodes ?: ?$ReadOnlyArray < K > ,
612
- ...
613
- } ;
614
-
615
- function getAllNodes < T : ASTNode , K : ASTNode > (
616
- object: SDLDefinedObject< T , K > ,
617
- ): $ReadOnlyArray< T | K > {
618
- const { astNode, extensionASTNodes } = object ;
619
- return astNode
620
- ? extensionASTNodes
621
- ? [ astNode ] . concat ( extensionASTNodes )
622
- : [ astNode ]
623
- : extensionASTNodes ?? [ ] ;
624
- }
625
-
626
610
function getAllImplementsInterfaceNodes (
627
611
type : GraphQLObjectType | GraphQLInterfaceType ,
628
612
iface : GraphQLInterfaceType ,
629
613
) : $ReadOnlyArray < NamedTypeNode > {
630
614
// istanbul ignore next (See: 'https://github.com/graphql/graphql-js/issues/2203')
631
- return getAllNodes ( type )
632
- . flatMap ( ( typeNode ) => typeNode . interfaces ?? [ ] )
615
+ return [ type . astNode ]
616
+ . concat ( type . extensionASTNodes )
617
+ . flatMap ( ( typeNode ) => typeNode ?. interfaces ?? [ ] )
633
618
. filter ( ( ifaceNode ) => ifaceNode . name . value === iface . name ) ;
634
619
}
635
620
@@ -638,8 +623,9 @@ function getUnionMemberTypeNodes(
638
623
typeName : string ,
639
624
) : ?$ReadOnlyArray < NamedTypeNode > {
640
625
// istanbul ignore next (See: 'https://github.com/graphql/graphql-js/issues/2203')
641
- return getAllNodes ( union )
642
- . flatMap ( ( unionNode ) => unionNode . types ?? [ ] )
626
+ return [ union . astNode ]
627
+ . concat ( union . extensionASTNodes )
628
+ . flatMap ( ( unionNode ) => unionNode ?. types ?? [ ] )
643
629
. filter ( ( typeNode ) => typeNode . name . value === typeName ) ;
644
630
}
645
631
0 commit comments