diff options
Diffstat (limited to 'alarm/node_modules/graphql/validation/rules/LoneAnonymousOperationRule.mjs')
-rw-r--r-- | alarm/node_modules/graphql/validation/rules/LoneAnonymousOperationRule.mjs | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/alarm/node_modules/graphql/validation/rules/LoneAnonymousOperationRule.mjs b/alarm/node_modules/graphql/validation/rules/LoneAnonymousOperationRule.mjs new file mode 100644 index 0000000..134322d --- /dev/null +++ b/alarm/node_modules/graphql/validation/rules/LoneAnonymousOperationRule.mjs @@ -0,0 +1,24 @@ +import { GraphQLError } from "../../error/GraphQLError.mjs"; +import { Kind } from "../../language/kinds.mjs"; + +/** + * 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 LoneAnonymousOperationRule(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('This anonymous operation must be the only defined operation.', node)); + } + } + }; +} |