class AstTraverser

def extract_arguments(node, name)

def extract_arguments(node, name)
  args = node.arguments
  res = {}
  return res if args.empty?
  kwargs = args.last
  if kwargs.respond_to?(:pairs)
    res = kwargs.pairs.each_with_object({}) do |pair, h|
      h.merge!(extract_values(pair))
    end
  end
  # Heroicon is the only component that accepts positional arguments.
  res[:icon] = args.first.source if name == "Ariadne::HeroiconComponent" && args.size > 1
  res
end