Class: GraphQL::Modernize::Rules::RedundantRequiredTrue
- Defined in:
- lib/graphql/modernize/rules/modernize.rb
Instance Attribute Summary
Attributes inherited from Base
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
11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
# File 'lib/graphql/modernize/rules/modernize.rb', line 11 def on_match(node, _captures) return unless inside?(node, :object, :input_object, :interface, :resolver, :mutation, :subscription) arguments = keyword_arguments(node, :required) return if arguments.empty? if arguments.length > 1 return unless arguments.any? { |argument| argument.value.is_a?(Prism::TrueNode) } return add_offense(arguments.first.location, safety: :manual, message: "Resolve duplicate `required:` options manually") end return unless arguments.first.value.is_a?(Prism::TrueNode) argument = arguments.first if dynamic_keyword_arguments?(node) return add_offense(argument.location, safety: :manual, message: "Review `**` before removing `required: true` manually") end add_offense(argument.location, message: "Remove the default `required: true` option") do |rw| rw.remove_keyword_argument(node, :required) end end |