Class: GraphQL::Modernize::Rules::EmptyUnionSelections

Inherits:
Base
  • Object
show all
Defined in:
lib/graphql/modernize/rules/deprecation.rb

Instance Attribute Summary

Attributes inherited from Base

#offenses

Instance Method Summary collapse

Methods inherited from Base

#initialize, node_pattern, node_types, rule, #visit

Constructor Details

This class inherits a constructor from GraphQL::Modernize::Rules::Base

Instance Method Details

#on_match(node, _captures) ⇒ Object



201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
# File 'lib/graphql/modernize/rules/deprecation.rb', line 201

def on_match(node, _captures)
  context = context_for(node)
  return unless inside?(node, :schema)

  configured = hierarchy.calls_for(context.class_name).any? do |call|
    call.direct && call.name == :allow_legacy_invalid_empty_selections_on_union
  end
  configured ||= %i[legacy_invalid_empty_selections_on_union
                    legacy_invalid_empty_selections_on_union_with_type].any? do |name|
    hierarchy.class_method_defined?(context.class_name, name)
  end
  return if configured

  add_offense(node.location, message: "Choose a policy for `allow_legacy_invalid_empty_selections_on_union`")
end