graphql-hive 0.3.1 → 0.3.3
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 +4 -4
- data/Gemfile.lock +2 -2
- data/RELEASING.md +1 -1
- data/k6/graphql-api/Gemfile.lock +1 -1
- data/lib/graphql-hive/analyzer.rb +54 -13
- data/lib/graphql-hive/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2a06a58701ba3765dfebe9dfa1a38a3dcfd033074007d7eed9a9f874101dab85
|
4
|
+
data.tar.gz: 0a8bbfae27e91256dec594148f0d78f620669cb278268a97f3e79fd38eaa20b0
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e9ebbabe3b6321cde6e1f2aee46a4f8d240eec1acc3a9622b11921bb44b09b8e16473e65a5d3146fcc9c397289ef4563b261bbaa8ac3d39749d8c11752cc6db1
|
7
|
+
data.tar.gz: 96c8e202377d6e7ddfef13ee956482df5b61a285d188a10ed25e0752a285721cc09c1182c1317724e396e96d7143c9049417e9a08a695e754c0098685626edd9
|
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
graphql-hive (0.3.
|
4
|
+
graphql-hive (0.3.3)
|
5
5
|
graphql (~> 2.0.9)
|
6
6
|
|
7
7
|
GEM
|
@@ -9,7 +9,7 @@ GEM
|
|
9
9
|
specs:
|
10
10
|
ast (2.4.2)
|
11
11
|
diff-lcs (1.5.0)
|
12
|
-
graphql (2.0.
|
12
|
+
graphql (2.0.21)
|
13
13
|
parallel (1.22.1)
|
14
14
|
parser (3.1.2.0)
|
15
15
|
ast (~> 2.4.1)
|
data/RELEASING.md
CHANGED
@@ -7,4 +7,4 @@
|
|
7
7
|
1. Build the gem: `gem build graphql-hive`
|
8
8
|
1. A new file should have been created, ex: `graphql-hive-0.3.0.gem`
|
9
9
|
1. Then, login to RubyGems: `gem login`
|
10
|
-
1. And publish the new version: `gem
|
10
|
+
1. And publish the new version: `gem push <path_to_gem_file>` (ex: `gem push graphql-hive-0.3.0.gem`)
|
data/k6/graphql-api/Gemfile.lock
CHANGED
@@ -9,23 +9,26 @@ module GraphQL
|
|
9
9
|
@used_fields = Set.new
|
10
10
|
end
|
11
11
|
|
12
|
-
def
|
12
|
+
def on_enter_field(node, _parent, visitor)
|
13
13
|
@used_fields.add(visitor.parent_type_definition.graphql_name)
|
14
|
-
@used_fields.add(
|
14
|
+
@used_fields.add(make_id(visitor.parent_type_definition.graphql_name, node.name))
|
15
15
|
end
|
16
16
|
|
17
|
-
|
18
|
-
|
19
|
-
|
17
|
+
# Visitor also calls 'on_enter_argument' when visiting input object fields in arguments
|
18
|
+
def on_enter_argument(node, parent, visitor)
|
20
19
|
arg_type = visitor.argument_definition.type.unwrap
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
20
|
+
@used_fields.add(arg_type.graphql_name)
|
21
|
+
|
22
|
+
# collect field argument path
|
23
|
+
# input object fields won't have a "parent.name" method available
|
24
|
+
if parent.respond_to?(:name)
|
25
|
+
@used_fields.add(make_id(visitor.parent_type_definition.graphql_name, parent.name, node.name))
|
26
|
+
end
|
27
|
+
|
28
|
+
if arg_type.kind.input_object?
|
29
|
+
collect_input_object_fields(node, arg_type)
|
30
|
+
elsif arg_type.kind.enum?
|
31
|
+
collect_enum_values(node, arg_type)
|
29
32
|
end
|
30
33
|
end
|
31
34
|
|
@@ -34,6 +37,44 @@ module GraphQL
|
|
34
37
|
def result
|
35
38
|
@used_fields
|
36
39
|
end
|
40
|
+
|
41
|
+
private
|
42
|
+
|
43
|
+
def collect_input_object_fields(node, input_type)
|
44
|
+
case node.value
|
45
|
+
when GraphQL::Language::Nodes::VariableIdentifier
|
46
|
+
input_type.all_argument_definitions.map(&:graphql_name).each do |n|
|
47
|
+
@used_fields.add(make_id(input_type.graphql_name, n))
|
48
|
+
end
|
49
|
+
when Array
|
50
|
+
node.value.flat_map(&:arguments).map(&:name).each do |n|
|
51
|
+
@used_fields.add(make_id(input_type.graphql_name, n))
|
52
|
+
end
|
53
|
+
else
|
54
|
+
node.value.arguments.map(&:name).each do |n|
|
55
|
+
@used_fields.add(make_id(input_type.graphql_name, n))
|
56
|
+
end
|
57
|
+
end
|
58
|
+
end
|
59
|
+
|
60
|
+
def collect_enum_values(node, enum_type)
|
61
|
+
case node.value
|
62
|
+
when GraphQL::Language::Nodes::VariableIdentifier
|
63
|
+
enum_type.values.values.map(&:graphql_name).each do |n|
|
64
|
+
@used_fields.add(make_id(enum_type.graphql_name, n))
|
65
|
+
end
|
66
|
+
when Array
|
67
|
+
node.value.map(&:name).each do |n|
|
68
|
+
@used_fields.add(make_id(enum_type.graphql_name, n))
|
69
|
+
end
|
70
|
+
else
|
71
|
+
@used_fields.add(make_id(enum_type.graphql_name, node.value.name))
|
72
|
+
end
|
73
|
+
end
|
74
|
+
|
75
|
+
def make_id(*tokens)
|
76
|
+
tokens.join('.')
|
77
|
+
end
|
37
78
|
end
|
38
79
|
end
|
39
80
|
end
|
data/lib/graphql-hive/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: graphql-hive
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Charly POLY
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-
|
11
|
+
date: 2023-04-18 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: graphql
|