Class: GraphQL::StaticValidation::FieldsWillMerge
- Inherits:
-
Object
- Object
- GraphQL::StaticValidation::FieldsWillMerge
- Defined in:
- lib/graphql/static_validation/rules/fields_will_merge.rb
Defined Under Namespace
Classes: FieldDefinitionComparison
Instance Method Summary collapse
Instance Method Details
#validate(context) ⇒ Object
5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
# File 'lib/graphql/static_validation/rules/fields_will_merge.rb', line 5 def validate(context) fragments = {} has_selections = [] visitor = context.visitor visitor[GraphQL::Language::Nodes::OperationDefinition] << ->(node, parent) { if node.selections.any? has_selections << node end } visitor[GraphQL::Language::Nodes::Document].leave << ->(node, parent) { has_selections.each { |node| field_map = gather_fields_by_name(node.selections, {}, [], context) find_conflicts(field_map, [], context) } } end |