UNPKG

831 BJavaScriptView Raw
1import { GraphQLError } from "../../error/GraphQLError.mjs";
2
3/**
4 * Unique variable names
5 *
6 * A GraphQL operation is only valid if all its variables are uniquely named.
7 */
8export function UniqueVariableNamesRule(context) {
9 var knownVariableNames = Object.create(null);
10 return {
11 OperationDefinition: function OperationDefinition() {
12 knownVariableNames = Object.create(null);
13 },
14 VariableDefinition: function VariableDefinition(node) {
15 var variableName = node.variable.name.value;
16
17 if (knownVariableNames[variableName]) {
18 context.reportError(new GraphQLError("There can be only one variable named \"$".concat(variableName, "\"."), [knownVariableNames[variableName], node.variable.name]));
19 } else {
20 knownVariableNames[variableName] = node.variable.name;
21 }
22 }
23 };
24}