Spaces:
Paused
Paused
| ; | |
| 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, | |
| }, | |
| ), | |
| ); | |
| } | |
| }, | |
| }; | |
| } | |