Skip to content

Files

Latest commit

 

History

History
71 lines (47 loc) · 1.64 KB

GraphQL-UnusedArgument.md

File metadata and controls

71 lines (47 loc) · 1.64 KB

Pattern: Unused argument

Issue: -

Description

Arguments should either be listed explicitly or **rest should be in the resolve signature (and similar methods, such as #authorized?).

Examples

# good

class SomeResolver < Resolvers::Base
  argument :arg1, String, required: true
  argument :user_id, String, required: true, loads: Types::UserType
  argument :post_id, String, loads: Types::PostType, as: :article
  argument :comment_ids, String, loads: Types::CommentType

  def authorized?(arg1:, user:, article:, comments:); end
  def resolve(arg1:, user:, article:, comments:); end
end

# good

class SomeResolver < Resolvers::Base
  argument :arg1, String, required: true
  argument :user_id, String, required: true, loads: Types::UserType
  argument :comment_ids, String, loads: Types::CommentType

  def resolve(arg1:, **rest); end
end

# good

class SomeResolver < Resolvers::Base
  type SomeType, null: false

  argument :arg1, String, required: true
  argument :arg2, String, required: true

  def resolve(args); end
end

# bad

class SomeResolver < Resolvers::Base
  type SomeType, null: false

  argument :arg1, String, required: true
  argument :arg2, String, required: true

  def authorized?; end
  def resolve(arg1:); end
end

# bad

class SomeResolver < Resolvers::Base
  type SomeType, null: false

  argument :arg1, String, required: true
  argument :arg2, String, required: true

  def resolve; end
end

Further Reading