graphql 1.8.0.pre9 → 1.8.0.pre10
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/graphql/argument.rb +1 -0
- data/lib/graphql/base_type.rb +2 -0
- data/lib/graphql/compatibility/query_parser_specification.rb +110 -0
- data/lib/graphql/deprecated_dsl.rb +15 -3
- data/lib/graphql/directive.rb +1 -0
- data/lib/graphql/enum_type.rb +2 -0
- data/lib/graphql/execution/multiplex.rb +1 -1
- data/lib/graphql/field.rb +2 -0
- data/lib/graphql/introspection/entry_points.rb +2 -2
- data/lib/graphql/introspection/schema_field.rb +1 -1
- data/lib/graphql/introspection/type_by_name_field.rb +1 -1
- data/lib/graphql/language/parser.rb +25 -25
- data/lib/graphql/language/parser.y +7 -7
- data/lib/graphql/query/arguments.rb +12 -0
- data/lib/graphql/relay/mutation/instrumentation.rb +1 -1
- data/lib/graphql/relay/mutation/resolve.rb +5 -1
- data/lib/graphql/schema.rb +5 -1
- data/lib/graphql/schema/argument.rb +1 -0
- data/lib/graphql/schema/build_from_definition.rb +60 -18
- data/lib/graphql/schema/enum.rb +1 -0
- data/lib/graphql/schema/enum_value.rb +1 -0
- data/lib/graphql/schema/field.rb +44 -31
- data/lib/graphql/schema/field/dynamic_resolve.rb +4 -8
- data/lib/graphql/schema/input_object.rb +30 -19
- data/lib/graphql/schema/interface.rb +12 -5
- data/lib/graphql/schema/member.rb +10 -0
- data/lib/graphql/schema/member/build_type.rb +3 -1
- data/lib/graphql/schema/member/has_arguments.rb +50 -0
- data/lib/graphql/schema/member/has_fields.rb +1 -1
- data/lib/graphql/schema/member/instrumentation.rb +4 -4
- data/lib/graphql/schema/mutation.rb +195 -0
- data/lib/graphql/schema/object.rb +4 -5
- data/lib/graphql/schema/relay_classic_mutation.rb +85 -0
- data/lib/graphql/schema/scalar.rb +1 -0
- data/lib/graphql/schema/traversal.rb +1 -1
- data/lib/graphql/schema/union.rb +1 -0
- data/lib/graphql/subscriptions/action_cable_subscriptions.rb +1 -1
- data/lib/graphql/unresolved_type_error.rb +3 -2
- data/lib/graphql/upgrader/member.rb +194 -19
- data/lib/graphql/version.rb +1 -1
- data/spec/fixtures/upgrader/delete_project.original.rb +28 -0
- data/spec/fixtures/upgrader/delete_project.transformed.rb +27 -0
- data/spec/fixtures/upgrader/increment_count.original.rb +59 -0
- data/spec/fixtures/upgrader/increment_count.transformed.rb +50 -0
- data/spec/graphql/execution/multiplex_spec.rb +1 -1
- data/spec/graphql/language/parser_spec.rb +0 -74
- data/spec/graphql/query/serial_execution/value_resolution_spec.rb +2 -8
- data/spec/graphql/query_spec.rb +26 -0
- data/spec/graphql/relay/mutation_spec.rb +2 -2
- data/spec/graphql/schema/build_from_definition_spec.rb +59 -0
- data/spec/graphql/schema/field_spec.rb +24 -0
- data/spec/graphql/schema/input_object_spec.rb +1 -0
- data/spec/graphql/schema/interface_spec.rb +4 -1
- data/spec/graphql/schema/mutation_spec.rb +99 -0
- data/spec/graphql/schema/relay_classic_mutation_spec.rb +28 -0
- data/spec/support/jazz.rb +25 -1
- data/spec/support/star_wars/schema.rb +17 -27
- metadata +17 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4fbdf256acbc1259fd520d07b4368c587954b9068bdfca85ab9a998057cbfa46
|
4
|
+
data.tar.gz: c78d32fa1e602301a7e370b68bc881b6f4a794355742a45608d6b5c5485d2d90
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 014b2608ee027d52e6145648f5eaf894dee93796a75bd01b13c2c4d0f72bd04ea806f7f7e67bb91a5d5b9d2d9e03eecdd77a9e5ba0b9bed4affb5df9e4881398
|
7
|
+
data.tar.gz: fe1727eca3bb06acff963916a78795980295c1c5b61a040a191d7d61d26363aa1c93cf58774673bf97c051ff614d9ba6ea84ee6e632b2b2d70ae3ecc6809b2e8
|
data/lib/graphql/argument.rb
CHANGED
@@ -37,6 +37,7 @@ module GraphQL
|
|
37
37
|
include GraphQL::Define::InstanceDefinable
|
38
38
|
accepts_definitions :name, :type, :description, :default_value, :as, :prepare
|
39
39
|
attr_accessor :type, :description, :default_value, :name, :as
|
40
|
+
attr_accessor :ast_node
|
40
41
|
|
41
42
|
ensure_defined(:name, :description, :default_value, :type=, :type, :as, :expose_as, :prepare)
|
42
43
|
|
data/lib/graphql/base_type.rb
CHANGED
@@ -123,6 +123,116 @@ module GraphQL
|
|
123
123
|
end
|
124
124
|
assert_equal [1,26], [err_2.line, err_2.col]
|
125
125
|
end
|
126
|
+
|
127
|
+
def test_enum_value_definitions_have_a_position
|
128
|
+
document = parse("""
|
129
|
+
enum Enum {
|
130
|
+
VALUE
|
131
|
+
}
|
132
|
+
""")
|
133
|
+
|
134
|
+
assert_equal [3, 17], document.definitions[0].values[0].position
|
135
|
+
end
|
136
|
+
|
137
|
+
def test_field_definitions_have_a_position
|
138
|
+
document = parse("""
|
139
|
+
type A {
|
140
|
+
field: String
|
141
|
+
}
|
142
|
+
""")
|
143
|
+
|
144
|
+
assert_equal [3, 17], document.definitions[0].fields[0].position
|
145
|
+
end
|
146
|
+
|
147
|
+
def test_input_value_definitions_have_a_position
|
148
|
+
document = parse("""
|
149
|
+
input A {
|
150
|
+
field: String
|
151
|
+
}
|
152
|
+
""")
|
153
|
+
|
154
|
+
assert_equal [3, 17], document.definitions[0].fields[0].position
|
155
|
+
end
|
156
|
+
|
157
|
+
def test_parses_when_there_are_no_interfaces
|
158
|
+
schema = "
|
159
|
+
type A {
|
160
|
+
a: String
|
161
|
+
}
|
162
|
+
"
|
163
|
+
|
164
|
+
document = parse(schema)
|
165
|
+
|
166
|
+
assert_equal [], document.definitions[0].interfaces.map(&:name)
|
167
|
+
end
|
168
|
+
|
169
|
+
def test_parses_implements_with_leading_ampersand
|
170
|
+
schema = "
|
171
|
+
type A implements & B {
|
172
|
+
a: String
|
173
|
+
}
|
174
|
+
"
|
175
|
+
|
176
|
+
document = parse(schema)
|
177
|
+
|
178
|
+
assert_equal ["B"], document.definitions[0].interfaces.map(&:name)
|
179
|
+
assert_equal [2, 35], document.definitions[0].interfaces[0].position
|
180
|
+
end
|
181
|
+
|
182
|
+
def test_parses_implements_with_leading_ampersand_and_multiple_interfaces
|
183
|
+
schema = "
|
184
|
+
type A implements & B & C {
|
185
|
+
a: String
|
186
|
+
}
|
187
|
+
"
|
188
|
+
|
189
|
+
document = parse(schema)
|
190
|
+
|
191
|
+
assert_equal ["B", "C"], document.definitions[0].interfaces.map(&:name)
|
192
|
+
assert_equal [2, 35], document.definitions[0].interfaces[0].position
|
193
|
+
assert_equal [2, 39], document.definitions[0].interfaces[1].position
|
194
|
+
end
|
195
|
+
|
196
|
+
def test_parses_implements_without_leading_ampersand
|
197
|
+
schema = "
|
198
|
+
type A implements B {
|
199
|
+
a: String
|
200
|
+
}
|
201
|
+
"
|
202
|
+
|
203
|
+
document = parse(schema)
|
204
|
+
|
205
|
+
assert_equal ["B"], document.definitions[0].interfaces.map(&:name)
|
206
|
+
assert_equal [2, 33], document.definitions[0].interfaces[0].position
|
207
|
+
end
|
208
|
+
|
209
|
+
def test_parses_implements_without_leading_ampersand_and_multiple_interfaces
|
210
|
+
schema = "
|
211
|
+
type A implements B & C {
|
212
|
+
a: String
|
213
|
+
}
|
214
|
+
"
|
215
|
+
|
216
|
+
document = parse(schema)
|
217
|
+
|
218
|
+
assert_equal ["B", "C"], document.definitions[0].interfaces.map(&:name)
|
219
|
+
assert_equal [2, 33], document.definitions[0].interfaces[0].position
|
220
|
+
assert_equal [2, 37], document.definitions[0].interfaces[1].position
|
221
|
+
end
|
222
|
+
|
223
|
+
def test_supports_old_syntax_for_parsing_multiple_interfaces
|
224
|
+
schema = "
|
225
|
+
type A implements B, C {
|
226
|
+
a: String
|
227
|
+
}
|
228
|
+
"
|
229
|
+
|
230
|
+
document = parse(schema)
|
231
|
+
|
232
|
+
assert_equal ["B", "C"], document.definitions[0].interfaces.map(&:name)
|
233
|
+
assert_equal [2, 33], document.definitions[0].interfaces[0].position
|
234
|
+
assert_equal [2, 36], document.definitions[0].interfaces[1].position
|
235
|
+
end
|
126
236
|
end
|
127
237
|
end
|
128
238
|
|
@@ -13,8 +13,17 @@ module GraphQL
|
|
13
13
|
# GraphQL::DeprecatedDSL.activate
|
14
14
|
#
|
15
15
|
module DeprecatedDSL
|
16
|
+
TYPE_CLASSES = [
|
17
|
+
GraphQL::Schema::Scalar,
|
18
|
+
GraphQL::Schema::Enum,
|
19
|
+
GraphQL::Schema::InputObject,
|
20
|
+
GraphQL::Schema::Union,
|
21
|
+
GraphQL::Schema::Interface,
|
22
|
+
GraphQL::Schema::Object,
|
23
|
+
]
|
24
|
+
|
16
25
|
def self.activate
|
17
|
-
|
26
|
+
TYPE_CLASSES.each { |c| c.extend(Methods) }
|
18
27
|
GraphQL::Schema::Member::ListTypeProxy.include(Methods)
|
19
28
|
GraphQL::Schema::Member::NonNullTypeProxy.include(Methods)
|
20
29
|
end
|
@@ -23,8 +32,11 @@ module GraphQL
|
|
23
32
|
to_non_null_type
|
24
33
|
end
|
25
34
|
end
|
26
|
-
|
27
|
-
|
35
|
+
|
36
|
+
TYPE_CLASSES.each do |type_class|
|
37
|
+
refine type_class.singleton_class do
|
38
|
+
include Methods
|
39
|
+
end
|
28
40
|
end
|
29
41
|
end
|
30
42
|
end
|
data/lib/graphql/directive.rb
CHANGED
@@ -11,6 +11,7 @@ module GraphQL
|
|
11
11
|
accepts_definitions :locations, :name, :description, :arguments, :default_directive, argument: GraphQL::Define::AssignArgument
|
12
12
|
|
13
13
|
attr_accessor :locations, :arguments, :name, :description, :arguments_class
|
14
|
+
attr_accessor :ast_node
|
14
15
|
# @api private
|
15
16
|
attr_writer :default_directive
|
16
17
|
ensure_defined(:locations, :arguments, :name, :description, :default_directive?)
|
data/lib/graphql/enum_type.rb
CHANGED
@@ -74,6 +74,7 @@ module GraphQL
|
|
74
74
|
class EnumType < GraphQL::BaseType
|
75
75
|
accepts_definitions :values, value: GraphQL::Define::AssignEnumValue
|
76
76
|
ensure_defined(:values, :validate_non_null_input, :coerce_non_null_input, :coerce_result)
|
77
|
+
attr_accessor :ast_node
|
77
78
|
|
78
79
|
def initialize
|
79
80
|
super
|
@@ -137,6 +138,7 @@ module GraphQL
|
|
137
138
|
ATTRIBUTES = [:name, :description, :deprecation_reason, :value]
|
138
139
|
accepts_definitions(*ATTRIBUTES)
|
139
140
|
attr_accessor(*ATTRIBUTES)
|
141
|
+
attr_accessor :ast_node
|
140
142
|
ensure_defined(*ATTRIBUTES)
|
141
143
|
|
142
144
|
def name=(new_name)
|
data/lib/graphql/field.rb
CHANGED
@@ -193,6 +193,8 @@ module GraphQL
|
|
193
193
|
# @return [Boolean] True if this field should be traced. By default, fields are only traced if they are not a ScalarType or EnumType.
|
194
194
|
attr_accessor :trace
|
195
195
|
|
196
|
+
attr_accessor :ast_node
|
197
|
+
|
196
198
|
# @return [Boolean]
|
197
199
|
def connection?
|
198
200
|
@connection
|
@@ -11,7 +11,7 @@ module GraphQL
|
|
11
11
|
# Apply wrapping manually since this field isn't wrapped by instrumentation
|
12
12
|
schema = @context.query.schema
|
13
13
|
schema_type = schema.introspection_system.schema_type
|
14
|
-
schema_type.metadata[:
|
14
|
+
schema_type.metadata[:type_class].new(schema, @context)
|
15
15
|
end
|
16
16
|
|
17
17
|
def __type(name:)
|
@@ -19,7 +19,7 @@ module GraphQL
|
|
19
19
|
if type
|
20
20
|
# Apply wrapping manually since this field isn't wrapped by instrumentation
|
21
21
|
type_type = @context.schema.introspection_system.type_type
|
22
|
-
type_type.metadata[:
|
22
|
+
type_type.metadata[:type_class].new(type, @context)
|
23
23
|
else
|
24
24
|
nil
|
25
25
|
end
|
@@ -9,7 +9,7 @@ module GraphQL
|
|
9
9
|
# Apply wrapping manually since this field isn't wrapped by instrumentation
|
10
10
|
schema = ctx.query.schema
|
11
11
|
schema_type = schema.introspection_system.schema_type
|
12
|
-
schema_type.metadata[:
|
12
|
+
schema_type.metadata[:type_class].new(schema, ctx.query.context)
|
13
13
|
}
|
14
14
|
end
|
15
15
|
end
|
@@ -12,7 +12,7 @@ module GraphQL
|
|
12
12
|
if type
|
13
13
|
# Apply wrapping manually since this field isn't wrapped by instrumentation
|
14
14
|
type_type = ctx.schema.introspection_system.type_type
|
15
|
-
type_type.metadata[:
|
15
|
+
type_type.metadata[:type_class].new(type, ctx)
|
16
16
|
else
|
17
17
|
nil
|
18
18
|
end
|
@@ -104,15 +104,15 @@ end
|
|
104
104
|
##### State transition tables begin ###
|
105
105
|
|
106
106
|
racc_action_table = [
|
107
|
-
-127, 10, 11, 12,
|
108
|
-
|
107
|
+
-127, 10, 11, 12, 115, 10, 11, 12, 140, 10,
|
108
|
+
11, 12, 36, 37, 38, 39, 40, 41, 42, 43,
|
109
109
|
44, 45, 46, 47, 48, 49, 73, 10, 11, 12,
|
110
110
|
80, -127, 119, -127, 140, 140, 140, 190, 36, 37,
|
111
111
|
38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
|
112
|
-
48, 49, 53, 10, 11, 12, 80, 59, 80,
|
113
|
-
|
112
|
+
48, 49, 53, 10, 11, 12, 80, 59, 80, 140,
|
113
|
+
77, 80, 226, 76, 36, 37, 38, 39, 40, 41,
|
114
114
|
42, 43, 44, 45, 46, 47, 48, 49, 191, 10,
|
115
|
-
11, 12, 140, 59,
|
115
|
+
11, 12, 140, 59, 31, 226, 130, 99, 62, 69,
|
116
116
|
36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
|
117
117
|
46, 47, 48, 49, 240, 70, 10, 11, 12, 59,
|
118
118
|
72, 84, 80, 90, 186, 80, 80, 158, 37, 38,
|
@@ -256,15 +256,15 @@ racc_action_table = [
|
|
256
256
|
38, 39, 40, 41, 42, 43, 44, 45, 156, 157 ]
|
257
257
|
|
258
258
|
racc_action_check = [
|
259
|
-
122, 90, 90, 90,
|
260
|
-
|
259
|
+
122, 90, 90, 90, 85, 85, 85, 85, 236, 62,
|
260
|
+
62, 62, 90, 90, 90, 90, 90, 90, 90, 90,
|
261
261
|
90, 90, 90, 90, 90, 90, 52, 52, 52, 52,
|
262
262
|
236, 122, 90, 122, 114, 142, 110, 142, 52, 52,
|
263
263
|
52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
|
264
|
-
52, 52, 9, 9, 9, 9, 114, 52, 110,
|
265
|
-
|
264
|
+
52, 52, 9, 9, 9, 9, 114, 52, 110, 223,
|
265
|
+
58, 135, 223, 58, 9, 9, 9, 9, 9, 9,
|
266
266
|
9, 9, 9, 9, 9, 9, 9, 9, 143, 143,
|
267
|
-
143, 143, 208, 9,
|
267
|
+
143, 143, 208, 9, 1, 208, 97, 97, 17, 30,
|
268
268
|
143, 143, 143, 143, 143, 143, 143, 143, 143, 143,
|
269
269
|
143, 143, 143, 143, 226, 31, 226, 226, 226, 143,
|
270
270
|
33, 60, 63, 64, 226, 65, 66, 226, 226, 226,
|
@@ -408,20 +408,20 @@ racc_action_check = [
|
|
408
408
|
125, 125, 125, 125, 125, 125, 125, 125, 125, 125 ]
|
409
409
|
|
410
410
|
racc_action_pointer = [
|
411
|
-
626,
|
412
|
-
nil, nil, nil, 1149, nil, nil, nil,
|
411
|
+
626, 84, nil, 751, nil, nil, nil, nil, 549, 49,
|
412
|
+
nil, nil, nil, 1149, nil, nil, nil, 86, nil, nil,
|
413
413
|
nil, nil, nil, nil, 874, 949, 974, 1049, 1374, 1399,
|
414
414
|
56, 105, nil, 103, nil, nil, nil, nil, nil, nil,
|
415
415
|
nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
|
416
|
-
nil, nil, 23, nil, nil, nil, nil, nil,
|
417
|
-
96, nil,
|
416
|
+
nil, nil, 23, nil, nil, nil, nil, nil, 53, 342,
|
417
|
+
96, nil, 5, 79, 94, 82, 83, 103, 107, 1074,
|
418
418
|
nil, 108, 134, nil, nil, 111, 1224, 1274, 113, nil,
|
419
|
-
599, 114, 649, 165, 724,
|
420
|
-
-3, 172, 161, 175, 176, 191, 200,
|
419
|
+
599, 114, 649, 165, 724, 1, nil, 161, nil, 139,
|
420
|
+
-3, 172, 161, 175, 176, 191, 200, 78, nil, 1424,
|
421
421
|
201, 198, nil, 1124, nil, 196, nil, 201, nil, nil,
|
422
422
|
25, 1174, 224, nil, 23, nil, nil, 1199, 207, 1249,
|
423
423
|
196, 1299, -2, 1324, 1349, 1473, 1099, 574, 217, nil,
|
424
|
-
nil, nil, 223, nil, nil,
|
424
|
+
nil, nil, 223, nil, nil, 28, nil, nil, 133, nil,
|
425
425
|
nil, 232, 24, 75, 233, nil, 674, 201, nil, 699,
|
426
426
|
nil, 230, nil, 420, nil, 202, nil, nil, nil, nil,
|
427
427
|
nil, 221, nil, 1450, 249, nil, 524, 774, 799, 824,
|
@@ -430,7 +430,7 @@ racc_action_pointer = [
|
|
430
430
|
nil, nil, nil, 394, nil, 251, nil, nil, 899, nil,
|
431
431
|
nil, nil, 924, nil, nil, nil, 226, nil, 71, nil,
|
432
432
|
nil, nil, 313, nil, nil, 368, nil, 254, 498, nil,
|
433
|
-
nil, 999, nil,
|
433
|
+
nil, 999, nil, 48, 1024, nil, 102, nil, nil, nil,
|
434
434
|
nil, 255, 195, nil, nil, 275, -3, 256, nil, nil,
|
435
435
|
446, 164, nil, nil, 251, nil, nil, nil, nil ]
|
436
436
|
|
@@ -1146,7 +1146,7 @@ module_eval(<<'.,.,', 'parser.y', 112)
|
|
1146
1146
|
|
1147
1147
|
module_eval(<<'.,.,', 'parser.y', 155)
|
1148
1148
|
def _reduce_58(val, _values, result)
|
1149
|
-
return make_node(:EnumValueDefinition, name: val[0], directives: val[1], description: get_description(val[0]))
|
1149
|
+
return make_node(:EnumValueDefinition, name: val[0], directives: val[1], description: get_description(val[0]), position_source: val[0])
|
1150
1150
|
result
|
1151
1151
|
end
|
1152
1152
|
.,.,
|
@@ -1550,35 +1550,35 @@ module_eval(<<'.,.,', 'parser.y', 306)
|
|
1550
1550
|
|
1551
1551
|
module_eval(<<'.,.,', 'parser.y', 309)
|
1552
1552
|
def _reduce_127(val, _values, result)
|
1553
|
-
return [make_node(:TypeName, name: val[0])]
|
1553
|
+
return [make_node(:TypeName, name: val[0], position_source: val[0])]
|
1554
1554
|
result
|
1555
1555
|
end
|
1556
1556
|
.,.,
|
1557
1557
|
|
1558
1558
|
module_eval(<<'.,.,', 'parser.y', 310)
|
1559
1559
|
def _reduce_128(val, _values, result)
|
1560
|
-
val[0] << make_node(:TypeName, name: val[2])
|
1560
|
+
val[0] << make_node(:TypeName, name: val[2], position_source: val[2])
|
1561
1561
|
result
|
1562
1562
|
end
|
1563
1563
|
.,.,
|
1564
1564
|
|
1565
1565
|
module_eval(<<'.,.,', 'parser.y', 313)
|
1566
1566
|
def _reduce_129(val, _values, result)
|
1567
|
-
return [make_node(:TypeName, name: val[0])]
|
1567
|
+
return [make_node(:TypeName, name: val[0], position_source: val[0])]
|
1568
1568
|
result
|
1569
1569
|
end
|
1570
1570
|
.,.,
|
1571
1571
|
|
1572
1572
|
module_eval(<<'.,.,', 'parser.y', 314)
|
1573
1573
|
def _reduce_130(val, _values, result)
|
1574
|
-
val[0] << make_node(:TypeName, name: val[1])
|
1574
|
+
val[0] << make_node(:TypeName, name: val[1], position_source: val[1])
|
1575
1575
|
result
|
1576
1576
|
end
|
1577
1577
|
.,.,
|
1578
1578
|
|
1579
1579
|
module_eval(<<'.,.,', 'parser.y', 318)
|
1580
1580
|
def _reduce_131(val, _values, result)
|
1581
|
-
return make_node(:InputValueDefinition, name: val[0], type: val[2], default_value: val[3], directives: val[4], description: get_description(val[0]))
|
1581
|
+
return make_node(:InputValueDefinition, name: val[0], type: val[2], default_value: val[3], directives: val[4], description: get_description(val[0]), position_source: val[0])
|
1582
1582
|
|
1583
1583
|
result
|
1584
1584
|
end
|
@@ -1614,7 +1614,7 @@ module_eval(<<'.,.,', 'parser.y', 327)
|
|
1614
1614
|
|
1615
1615
|
module_eval(<<'.,.,', 'parser.y', 331)
|
1616
1616
|
def _reduce_136(val, _values, result)
|
1617
|
-
return make_node(:FieldDefinition, name: val[0], arguments: val[1], type: val[3], directives: val[4], description: get_description(val[0]))
|
1617
|
+
return make_node(:FieldDefinition, name: val[0], arguments: val[1], type: val[3], directives: val[4], description: get_description(val[0]), position_source: val[0])
|
1618
1618
|
|
1619
1619
|
result
|
1620
1620
|
end
|
@@ -153,7 +153,7 @@ rule
|
|
153
153
|
| schema_keyword
|
154
154
|
|
155
155
|
enum_value_definition:
|
156
|
-
enum_name directives_list_opt { return make_node(:EnumValueDefinition, name: val[0], directives: val[1], description: get_description(val[0])) }
|
156
|
+
enum_name directives_list_opt { return make_node(:EnumValueDefinition, name: val[0], directives: val[1], description: get_description(val[0]), position_source: val[0]) }
|
157
157
|
|
158
158
|
enum_value_definitions:
|
159
159
|
enum_value_definition { return [val[0]] }
|
@@ -307,16 +307,16 @@ rule
|
|
307
307
|
| IMPLEMENTS legacy_interfaces_list { return val[1] }
|
308
308
|
|
309
309
|
interfaces_list:
|
310
|
-
name { return [make_node(:TypeName, name: val[0])] }
|
311
|
-
| interfaces_list AMP name { val[0] << make_node(:TypeName, name: val[2]) }
|
310
|
+
name { return [make_node(:TypeName, name: val[0], position_source: val[0])] }
|
311
|
+
| interfaces_list AMP name { val[0] << make_node(:TypeName, name: val[2], position_source: val[2]) }
|
312
312
|
|
313
313
|
legacy_interfaces_list:
|
314
|
-
name { return [make_node(:TypeName, name: val[0])] }
|
315
|
-
| legacy_interfaces_list name { val[0] << make_node(:TypeName, name: val[1]) }
|
314
|
+
name { return [make_node(:TypeName, name: val[0], position_source: val[0])] }
|
315
|
+
| legacy_interfaces_list name { val[0] << make_node(:TypeName, name: val[1], position_source: val[1]) }
|
316
316
|
|
317
317
|
input_value_definition:
|
318
318
|
name COLON type default_value_opt directives_list_opt {
|
319
|
-
return make_node(:InputValueDefinition, name: val[0], type: val[2], default_value: val[3], directives: val[4], description: get_description(val[0]))
|
319
|
+
return make_node(:InputValueDefinition, name: val[0], type: val[2], default_value: val[3], directives: val[4], description: get_description(val[0]), position_source: val[0])
|
320
320
|
}
|
321
321
|
|
322
322
|
input_value_definition_list:
|
@@ -329,7 +329,7 @@ rule
|
|
329
329
|
|
330
330
|
field_definition:
|
331
331
|
name arguments_definitions_opt COLON type directives_list_opt {
|
332
|
-
return make_node(:FieldDefinition, name: val[0], arguments: val[1], type: val[3], directives: val[4], description: get_description(val[0]))
|
332
|
+
return make_node(:FieldDefinition, name: val[0], arguments: val[1], type: val[3], directives: val[4], description: get_description(val[0]), position_source: val[0])
|
333
333
|
}
|
334
334
|
|
335
335
|
field_definition_list:
|
@@ -102,6 +102,18 @@ module GraphQL
|
|
102
102
|
|
103
103
|
NO_ARGS = NoArguments.new({}, context: nil, defaults_used: Set.new)
|
104
104
|
|
105
|
+
# Convert this instance into valid Ruby keyword arguments
|
106
|
+
# @return [{Symbol=>Object}]
|
107
|
+
def to_kwargs
|
108
|
+
ruby_kwargs = {}
|
109
|
+
|
110
|
+
keys.each do |key|
|
111
|
+
ruby_kwargs[Schema::Member::BuildType.underscore(key).to_sym] = self[key]
|
112
|
+
end
|
113
|
+
|
114
|
+
ruby_kwargs
|
115
|
+
end
|
116
|
+
|
105
117
|
private
|
106
118
|
|
107
119
|
class ArgumentValue
|