Class: GraphQL::Validations::FieldsWillMerge
- Inherits:
-
Object
- Object
- GraphQL::Validations::FieldsWillMerge
- Defined in:
- lib/graph_ql/validations/fields_will_merge.rb
Defined Under Namespace
Classes: FieldDefinitionComparison
Constant Summary collapse
- HAS_SELECTIONS =
[GraphQL::Nodes::OperationDefinition, GraphQL::Nodes::InlineFragment]
Instance Method Summary collapse
Instance Method Details
#validate(context) ⇒ Object
4 5 6 7 8 9 10 11 12 13 14 15 |
# File 'lib/graph_ql/validations/fields_will_merge.rb', line 4 def validate(context) fragments = {} has_selections = [] visitor = context.visitor HAS_SELECTIONS.each do |node_class| visitor[node_class] << -> (node) { has_selections << node } end visitor[GraphQL::Nodes::FragmentDefinition] << -> (node) { fragments[node.name] = node } visitor[GraphQL::Nodes::Document].leave << -> (node) { has_selections.each { |node| validate_selections(node.selections, {}, fragments, context.errors)} } end |