class GraphQL::StaticValidation::UniqueDirectivesPerLocation
Constants
- NODES_WITH_DIRECTIVES
Public Instance Methods
validate(context)
click to toggle source
# File lib/graphql/static_validation/rules/unique_directives_per_location.rb, line 11 def validate(context) NODES_WITH_DIRECTIVES.each do |node_class| context.visitor[node_class] << ->(node, _) { validate_directives(node, context) unless node.directives.empty? } end end
Private Instance Methods
validate_directives(node, context)
click to toggle source
# File lib/graphql/static_validation/rules/unique_directives_per_location.rb, line 21 def validate_directives(node, context) used_directives = {} node.directives.each do |ast_directive| directive_name = ast_directive.name if used_directives[directive_name] context.errors << message( "The directive \"#{directive_name}\" can only be used once at this location.", [used_directives[directive_name], ast_directive], context: context ) else used_directives[directive_name] = ast_directive end end end