UNPKG

977 BJavaScriptView Raw
1"use strict";
2
3Object.defineProperty(exports, "__esModule", {
4 value: true
5});
6exports.UniqueArgumentNamesRule = UniqueArgumentNamesRule;
7
8var _GraphQLError = require("../../error/GraphQLError.js");
9
10/**
11 * Unique argument names
12 *
13 * A GraphQL field or directive is only valid if all supplied arguments are
14 * uniquely named.
15 */
16function UniqueArgumentNamesRule(context) {
17 var knownArgNames = Object.create(null);
18 return {
19 Field: function Field() {
20 knownArgNames = Object.create(null);
21 },
22 Directive: function Directive() {
23 knownArgNames = Object.create(null);
24 },
25 Argument: function Argument(node) {
26 var argName = node.name.value;
27
28 if (knownArgNames[argName]) {
29 context.reportError(new _GraphQLError.GraphQLError("There can be only one argument named \"".concat(argName, "\"."), [knownArgNames[argName], node.name]));
30 } else {
31 knownArgNames[argName] = node.name;
32 }
33
34 return false;
35 }
36 };
37}