module GraphQL::StaticValidation::ArgumentNamesAreUnique
Public Instance Methods
Source
# File lib/graphql/static_validation/rules/argument_names_are_unique.rb, line 15 def on_directive(node, parent) validate_arguments(node) super end
Calls superclass method
Source
# File lib/graphql/static_validation/rules/argument_names_are_unique.rb, line 10 def on_field(node, parent) validate_arguments(node) super end
Calls superclass method
Source
# File lib/graphql/static_validation/rules/argument_names_are_unique.rb, line 20 def validate_arguments(node) argument_defns = node.arguments if argument_defns.size > 1 seen = {} argument_defns.each do |a| name = a.name if seen.key?(name) prev = seen[name] if prev.is_a?(Array) prev << a else seen[name] = [prev, a] end else seen[name] = a end end seen.each do |name, val| if val.is_a?(Array) add_error(GraphQL::StaticValidation::ArgumentNamesAreUniqueError.new("There can be only one argument named \"#{name}\"", nodes: val, name: name)) end end end end