summaryrefslogtreecommitdiff
path: root/school/node_modules/graphql/validation/rules/ExecutableDefinitionsRule.js
diff options
context:
space:
mode:
Diffstat (limited to 'school/node_modules/graphql/validation/rules/ExecutableDefinitionsRule.js')
-rw-r--r--school/node_modules/graphql/validation/rules/ExecutableDefinitionsRule.js35
1 files changed, 35 insertions, 0 deletions
diff --git a/school/node_modules/graphql/validation/rules/ExecutableDefinitionsRule.js b/school/node_modules/graphql/validation/rules/ExecutableDefinitionsRule.js
new file mode 100644
index 0000000..0c070a8
--- /dev/null
+++ b/school/node_modules/graphql/validation/rules/ExecutableDefinitionsRule.js
@@ -0,0 +1,35 @@
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+ value: true
+});
+exports.ExecutableDefinitionsRule = ExecutableDefinitionsRule;
+
+var _GraphQLError = require("../../error/GraphQLError.js");
+
+var _kinds = require("../../language/kinds.js");
+
+var _predicates = require("../../language/predicates.js");
+
+/**
+ * Executable definitions
+ *
+ * A GraphQL document is only valid for execution if all definitions are either
+ * operation or fragment definitions.
+ */
+function ExecutableDefinitionsRule(context) {
+ return {
+ Document: function Document(node) {
+ for (var _i2 = 0, _node$definitions2 = node.definitions; _i2 < _node$definitions2.length; _i2++) {
+ var definition = _node$definitions2[_i2];
+
+ if (!(0, _predicates.isExecutableDefinitionNode)(definition)) {
+ var defName = definition.kind === _kinds.Kind.SCHEMA_DEFINITION || definition.kind === _kinds.Kind.SCHEMA_EXTENSION ? 'schema' : '"' + definition.name.value + '"';
+ context.reportError(new _GraphQLError.GraphQLError("The ".concat(defName, " definition is not executable."), definition));
+ }
+ }
+
+ return false;
+ }
+ };
+}