Browse Source

uniqueArgumentNames;

bjorn 9 years ago
parent
commit
ffe9cd94a3
2 changed files with 15 additions and 1 deletions
  1. 13 0
      rules.lua
  2. 2 1
      validate.lua

+ 13 - 0
rules.lua

@@ -165,4 +165,17 @@ function rules.unambiguousSelections(node, context)
   validateSelectionSet(node, context.objects[#context.objects])
 end
 
+function rules.uniqueArgumentNames(node, context)
+  if node.arguments then
+    local arguments = {}
+    for _, argument in ipairs(node.arguments) do
+      local name = argument.name.value
+      if arguments[name] then
+        error('Encountered multiple arguments named "' .. name .. '"')
+      end
+      arguments[name] = true
+    end
+  end
+end
+
 return rules

+ 2 - 1
validate.lua

@@ -59,7 +59,8 @@ local visitors = {
       rules.fieldsDefinedOnType,
       rules.argumentsDefinedOnType,
       rules.scalarFieldsAreLeaves,
-      rules.compositeFieldsAreNotLeaves
+      rules.compositeFieldsAreNotLeaves,
+      rules.uniqueArgumentNames
     }
   },