'use strict'; Object.defineProperty(exports, '__esModule', { value: true, }); exports.LoneAnonymousOperationRule = LoneAnonymousOperationRule; var _GraphQLError = require('../../error/GraphQLError.js'); var _kinds = require('../../language/kinds.js'); /** * Lone anonymous operation * * A GraphQL document is only valid if when it contains an anonymous operation * (the query short-hand) that it contains only that one operation definition. * * See https://spec.graphql.org/draft/#sec-Lone-Anonymous-Operation */ function LoneAnonymousOperationRule(context) { let operationCount = 0; return { Document(node) { operationCount = node.definitions.filter( (definition) => definition.kind === _kinds.Kind.OPERATION_DEFINITION, ).length; }, OperationDefinition(node) { if (!node.name && operationCount > 1) { context.reportError( new _GraphQLError.GraphQLError( 'This anonymous operation must be the only defined operation.', { nodes: node, }, ), ); } }, }; }