123456789101112131415161718192021222324252627 |
- import { GraphQLError } from '../../error/GraphQLError';
- import { Kind } from '../../language/kinds';
- export function anonOperationNotAloneMessage() {
- return 'This anonymous operation must be the only defined operation.';
- }
- /**
- * 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.
- */
- export function LoneAnonymousOperation(context) {
- var operationCount = 0;
- return {
- Document: function Document(node) {
- operationCount = node.definitions.filter(function (definition) {
- return definition.kind === Kind.OPERATION_DEFINITION;
- }).length;
- },
- OperationDefinition: function OperationDefinition(node) {
- if (!node.name && operationCount > 1) {
- context.reportError(new GraphQLError(anonOperationNotAloneMessage(), node));
- }
- }
- };
- }
|