123456789101112131415161718192021222324252627282930313233343536373839404142 |
- '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,
- },
- ),
- );
- }
- },
- };
- }
|