UNPKG

1.15 kBJavaScriptView Raw
1"use strict";
2
3Object.defineProperty(exports, "__esModule", {
4 value: true
5});
6exports.ExecutableDefinitionsRule = ExecutableDefinitionsRule;
7
8var _GraphQLError = require("../../error/GraphQLError.js");
9
10var _kinds = require("../../language/kinds.js");
11
12var _predicates = require("../../language/predicates.js");
13
14/**
15 * Executable definitions
16 *
17 * A GraphQL document is only valid for execution if all definitions are either
18 * operation or fragment definitions.
19 */
20function ExecutableDefinitionsRule(context) {
21 return {
22 Document: function Document(node) {
23 for (var _i2 = 0, _node$definitions2 = node.definitions; _i2 < _node$definitions2.length; _i2++) {
24 var definition = _node$definitions2[_i2];
25
26 if (!(0, _predicates.isExecutableDefinitionNode)(definition)) {
27 var defName = definition.kind === _kinds.Kind.SCHEMA_DEFINITION || definition.kind === _kinds.Kind.SCHEMA_EXTENSION ? 'schema' : '"' + definition.name.value + '"';
28 context.reportError(new _GraphQLError.GraphQLError("The ".concat(defName, " definition is not executable."), definition));
29 }
30 }
31
32 return false;
33 }
34 };
35}