Module: GraphQL::StaticValidation::FieldsWillMerge
- Defined in:
- lib/graphql/static_validation/rules/fields_will_merge.rb
Defined Under Namespace
Classes: Field, FragmentSpread
Constant Summary collapse
- NO_ARGS =
Validates that a selection set is valid if all fields (including spreading any fragments) either correspond to distinct response names or can be merged without ambiguity.
Original Algorithm: https://github.com/graphql/graphql-js/blob/master/src/validation/rules/OverlappingFieldsCanBeMerged.js
GraphQL::EmptyObjects::EMPTY_HASH
Instance Method Summary collapse
- #initialize ⇒ Object
- #on_field(node, _parent) ⇒ Object
- #on_operation_definition(node, _parent) ⇒ Object
Instance Method Details
#initialize ⇒ Object
17 18 19 20 21 22 |
# File 'lib/graphql/static_validation/rules/fields_will_merge.rb', line 17 def initialize(*) super @visited_fragments = {} @compared_fragments = {} @conflict_count = 0 end |
#on_field(node, _parent) ⇒ Object
29 30 31 32 |
# File 'lib/graphql/static_validation/rules/fields_will_merge.rb', line 29 def on_field(node, _parent) setting_errors { conflicts_within_selection_set(node, type_definition) } super end |
#on_operation_definition(node, _parent) ⇒ Object
24 25 26 27 |
# File 'lib/graphql/static_validation/rules/fields_will_merge.rb', line 24 def on_operation_definition(node, _parent) setting_errors { conflicts_within_selection_set(node, type_definition) } super end |