import type { Maybe } from '../jsutils/Maybe' ; import type { DocumentNode , OperationDefinitionNode } from '../language/ast' ; import { Kind } from '../language/kinds' ; /**
 * Returns an operation AST given a document AST and optionally an operation
 * name. If a name is not provided, an operation is only returned if only one is
 * provided in the document.
 */ export function getOperationAST ( documentAST , operationName ? ) { let operation = null ; for ( const definition of documentAST . definitions ) { if ( definition . kind === Kind . OPERATION_DEFINITION ) { if ( operationName == null ) { if ( operation ) { return null ; } operation = definition ; } else if ( definition . name ?. value === operationName ) { return definition ; } } } return operation ; }