@@ -143,13 +143,10 @@ function getOperationTypeNode(
143
143
schema : GraphQLSchema ,
144
144
operation : OperationTypeNode ,
145
145
) : ?ASTNode {
146
- const operationNodes = getAllSubNodes ( schema , ( node ) => node . operationTypes ) ;
147
- for ( const node of operationNodes ) {
148
- if ( node . operation === operation ) {
149
- return node . type ;
150
- }
151
- }
152
- return undefined ;
146
+ // istanbul ignore next (See: 'https://github.com/graphql/graphql-js/issues/2203')
147
+ return getAllNodes ( schema )
148
+ . flatMap ( ( schemaNode ) => schemaNode . operationTypes ?? [ ] )
149
+ . find ( ( operationNode ) => operationNode . operation === operation ) ?. type ;
153
150
}
154
151
155
152
function validateDirectives ( context : SchemaValidationContext ) : void {
@@ -626,34 +623,24 @@ function getAllNodes<T: ASTNode, K: ASTNode>(
626
623
: extensionASTNodes ?? [ ] ;
627
624
}
628
625
629
- function getAllSubNodes< T : ASTNode , K : ASTNode , L : ASTNode > (
630
- object: SDLDefinedObject< T , K > ,
631
- getter: (T | K) => ?( L | $ReadOnlyArray < L > ),
632
- ): $ReadOnlyArray< L > {
633
- let subNodes = [ ] ;
634
- for ( const node of getAllNodes ( object ) ) {
635
- // istanbul ignore next (See: 'https://github.com/graphql/graphql-js/issues/2203')
636
- subNodes = subNodes . concat ( getter ( node ) ?? [ ] ) ;
637
- }
638
- return subNodes ;
639
- }
640
-
641
626
function getAllImplementsInterfaceNodes(
642
627
type: GraphQLObjectType | GraphQLInterfaceType,
643
628
iface: GraphQLInterfaceType,
644
629
): $ReadOnlyArray< NamedTypeNode > {
645
- return getAllSubNodes ( type , ( typeNode ) => typeNode . interfaces ) . filter (
646
- ( ifaceNode ) => ifaceNode . name . value === iface . name ,
647
- ) ;
630
+ // istanbul ignore next (See: 'https://github.com/graphql/graphql-js/issues/2203')
631
+ return getAllNodes ( type )
632
+ . flatMap ( ( typeNode ) => typeNode . interfaces ?? [ ] )
633
+ . filter ( ( ifaceNode ) => ifaceNode . name . value === iface . name ) ;
648
634
}
649
635
650
636
function getUnionMemberTypeNodes(
651
637
union: GraphQLUnionType,
652
638
typeName: string,
653
639
): ?$ReadOnlyArray< NamedTypeNode > {
654
- return getAllSubNodes ( union , ( unionNode ) => unionNode . types ) . filter (
655
- ( typeNode ) => typeNode . name . value === typeName ,
656
- ) ;
640
+ // istanbul ignore next (See: 'https://github.com/graphql/graphql-js/issues/2203')
641
+ return getAllNodes ( union )
642
+ . flatMap ( ( unionNode ) => unionNode . types ?? [ ] )
643
+ . filter ( ( typeNode ) => typeNode . name . value === typeName ) ;
657
644
}
658
645
659
646
function getDeprecatedDirectiveNode(
0 commit comments