rubocop-graphql 1.0.1 → 1.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: a7531302386361a75baf74bcb65e70041bf5b414fb55151c1bcb6eb9e40bbb92
4
- data.tar.gz: 43943f69aacfebc7ea8060af236796c499b671ac8825853a77961105bc57afe5
3
+ metadata.gz: 4bcabdbafaf927896c569183254a11c60352414d91978553dcc12449cc45b46c
4
+ data.tar.gz: b9edc6b4444b21ecde01fceffbb027489aa59241886ba1f6e09f1488ae73a0f2
5
5
  SHA512:
6
- metadata.gz: e67d5bba4243ca1e4122af69449871465e9e8124574d0a379e2125f4e0b13ce05a6d48f0c44f129ad8fbcc3fb4af692bb5e366ce4fa9d1b8c125d276d1f17e53
7
- data.tar.gz: c6020f17e1828c0fe135e7ca398c36b8ed322ff9daf86d3616ade152b8391e213565a6b1a5c1b185a436c0f2b9d68c805135c39973f18e0fbb0e58d4ccab3895
6
+ metadata.gz: 02fbc1b2402f0661737a188a5aa107376210ba30ca52d1461da8e5ba7312ef2c548d3485ea2630194422e4379368f4efd595b0ac2c6affdc4432939344c7f956
7
+ data.tar.gz: 6472b601c9ba130fe97eac98d556a4f9113884e95290c8c751d321c123d1ff54ac31396d7fc53885001c55a62a3e66941547a4dd5f761af5e72a7a1b46f74a2c
@@ -21,7 +21,7 @@ module RuboCop
21
21
  MSG = "max_complexity should be configured for schema."
22
22
 
23
23
  def on_class(node)
24
- return if max_complexity(node)
24
+ return if ::RuboCop::GraphQL::Class.new(node).nested? || max_complexity(node)
25
25
 
26
26
  add_offense(node)
27
27
  end
@@ -21,7 +21,7 @@ module RuboCop
21
21
  MSG = "max_depth should be configured for schema."
22
22
 
23
23
  def on_class(node)
24
- return if max_depth(node)
24
+ return if ::RuboCop::GraphQL::Class.new(node).nested? || max_depth(node)
25
25
 
26
26
  add_offense(node)
27
27
  end
@@ -3,32 +3,48 @@
3
3
  module RuboCop
4
4
  module Cop
5
5
  module GraphQL
6
- # This cop checks if a field has an unnecessary alias.
6
+ # This cop prevents defining an unnecessary alias, method, or resolver_method.
7
7
  #
8
8
  # @example
9
9
  # # good
10
10
  #
11
- # class UserType < BaseType
12
- # field :name, String, "Name of the user", null: true, alias: :real_name
13
- # end
11
+ # field :name, String, "Name of the user", null: true, alias: :real_name
12
+ # field :name, String, "Name of the user", null: true, method: :real_name
13
+ # field :name, String, "Name of the user", null: true, resolver_method: :real_name
14
+ # field :name, String, "Name of the user", null: true, hash_key: :real_name
14
15
  #
15
16
  # # bad
16
17
  #
17
- # class UserType < BaseType
18
- # field :name, "Name of the user" String, null: true, alias: :name
19
- # end
18
+ # field :name, "Name of the user" String, null: true, alias: :name
19
+ # field :name, String, "Name of the user", null: true, method: :name
20
+ # field :name, String, "Name of the user", null: true, resolver_method: :name
21
+ # field :name, String, "Name of the user", null: true, hash_key: :name
20
22
  #
21
23
  class UnnecessaryFieldAlias < Base
22
24
  include RuboCop::GraphQL::NodePattern
23
25
 
24
- MSG = "Unnecessary field alias"
26
+ MSG = "Unnecessary :%<kwarg>s configured"
25
27
 
26
28
  def on_send(node)
27
29
  return unless field_definition?(node)
28
30
 
29
31
  field = RuboCop::GraphQL::Field.new(node)
30
32
 
31
- add_offense(node) if field.name == field.kwargs.alias
33
+ if (unnecessary_kwarg = validate_kwargs(field))
34
+ message = format(self.class::MSG, kwarg: unnecessary_kwarg)
35
+ add_offense(node, message: message)
36
+ end
37
+ end
38
+
39
+ private
40
+
41
+ def validate_kwargs(field) # rubocop:disable Metrics/CyclomaticComplexity
42
+ case field.name
43
+ when field.kwargs.alias then "alias"
44
+ when field.kwargs.method&.value&.value then "method"
45
+ when field.kwargs.resolver_method_name then "resolver_method"
46
+ when field.kwargs.hash_key&.value&.value then "hash_key"
47
+ end
32
48
  end
33
49
  end
34
50
  end
@@ -1,5 +1,5 @@
1
1
  module RuboCop
2
2
  module GraphQL
3
- VERSION = "1.0.1".freeze
3
+ VERSION = "1.1.1".freeze
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rubocop-graphql
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.1
4
+ version: 1.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dmitry Tsepelev
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-03-13 00:00:00.000000000 Z
11
+ date: 2023-03-31 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler