graphql 2.2.17 → 2.5.16
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/lib/generators/graphql/install/mutation_root_generator.rb +2 -2
- data/lib/generators/graphql/install_generator.rb +46 -0
- data/lib/generators/graphql/orm_mutations_base.rb +1 -1
- data/lib/generators/graphql/templates/base_resolver.erb +2 -0
- data/lib/generators/graphql/templates/schema.erb +3 -0
- data/lib/generators/graphql/type_generator.rb +1 -1
- data/lib/graphql/analysis/analyzer.rb +90 -0
- data/lib/graphql/analysis/field_usage.rb +82 -0
- data/lib/graphql/analysis/max_query_complexity.rb +20 -0
- data/lib/graphql/analysis/max_query_depth.rb +20 -0
- data/lib/graphql/analysis/query_complexity.rb +263 -0
- data/lib/graphql/analysis/{ast/query_depth.rb → query_depth.rb} +23 -25
- data/lib/graphql/analysis/visitor.rb +280 -0
- data/lib/graphql/analysis.rb +95 -1
- data/lib/graphql/autoload.rb +38 -0
- data/lib/graphql/backtrace/table.rb +118 -55
- data/lib/graphql/backtrace.rb +1 -19
- data/lib/graphql/current.rb +57 -0
- data/lib/graphql/dashboard/detailed_traces.rb +47 -0
- data/lib/graphql/dashboard/installable.rb +22 -0
- data/lib/graphql/dashboard/limiters.rb +93 -0
- data/lib/graphql/dashboard/operation_store.rb +199 -0
- data/lib/graphql/dashboard/statics/bootstrap-5.3.3.min.css +6 -0
- data/lib/graphql/dashboard/statics/bootstrap-5.3.3.min.js +7 -0
- data/lib/graphql/dashboard/statics/charts.min.css +1 -0
- data/lib/graphql/dashboard/statics/dashboard.css +30 -0
- data/lib/graphql/dashboard/statics/dashboard.js +143 -0
- data/lib/graphql/dashboard/statics/header-icon.png +0 -0
- data/lib/graphql/dashboard/statics/icon.png +0 -0
- data/lib/graphql/dashboard/subscriptions.rb +96 -0
- data/lib/graphql/dashboard/views/graphql/dashboard/detailed_traces/traces/index.html.erb +45 -0
- data/lib/graphql/dashboard/views/graphql/dashboard/landings/show.html.erb +18 -0
- data/lib/graphql/dashboard/views/graphql/dashboard/limiters/limiters/show.html.erb +62 -0
- data/lib/graphql/dashboard/views/graphql/dashboard/not_installed.html.erb +18 -0
- data/lib/graphql/dashboard/views/graphql/dashboard/operation_store/clients/_form.html.erb +23 -0
- data/lib/graphql/dashboard/views/graphql/dashboard/operation_store/clients/edit.html.erb +21 -0
- data/lib/graphql/dashboard/views/graphql/dashboard/operation_store/clients/index.html.erb +69 -0
- data/lib/graphql/dashboard/views/graphql/dashboard/operation_store/clients/new.html.erb +7 -0
- data/lib/graphql/dashboard/views/graphql/dashboard/operation_store/index_entries/index.html.erb +39 -0
- data/lib/graphql/dashboard/views/graphql/dashboard/operation_store/index_entries/show.html.erb +32 -0
- data/lib/graphql/dashboard/views/graphql/dashboard/operation_store/operations/index.html.erb +81 -0
- data/lib/graphql/dashboard/views/graphql/dashboard/operation_store/operations/show.html.erb +71 -0
- data/lib/graphql/dashboard/views/graphql/dashboard/subscriptions/subscriptions/show.html.erb +41 -0
- data/lib/graphql/dashboard/views/graphql/dashboard/subscriptions/topics/index.html.erb +55 -0
- data/lib/graphql/dashboard/views/graphql/dashboard/subscriptions/topics/show.html.erb +40 -0
- data/lib/graphql/dashboard/views/layouts/graphql/dashboard/application.html.erb +108 -0
- data/lib/graphql/dashboard.rb +158 -0
- data/lib/graphql/dataloader/active_record_association_source.rb +84 -0
- data/lib/graphql/dataloader/active_record_source.rb +47 -0
- data/lib/graphql/dataloader/async_dataloader.rb +46 -19
- data/lib/graphql/dataloader/null_dataloader.rb +51 -10
- data/lib/graphql/dataloader/source.rb +20 -9
- data/lib/graphql/dataloader.rb +153 -45
- data/lib/graphql/date_encoding_error.rb +1 -1
- data/lib/graphql/dig.rb +2 -1
- data/lib/graphql/execution/interpreter/argument_value.rb +5 -1
- data/lib/graphql/execution/interpreter/arguments_cache.rb +5 -10
- data/lib/graphql/execution/interpreter/resolve.rb +23 -25
- data/lib/graphql/execution/interpreter/runtime/graphql_result.rb +63 -5
- data/lib/graphql/execution/interpreter/runtime.rb +321 -222
- data/lib/graphql/execution/interpreter.rb +23 -30
- data/lib/graphql/execution/lookahead.rb +18 -11
- data/lib/graphql/execution/multiplex.rb +6 -5
- data/lib/graphql/introspection/directive_location_enum.rb +1 -1
- data/lib/graphql/introspection/directive_type.rb +1 -1
- data/lib/graphql/introspection/entry_points.rb +2 -2
- data/lib/graphql/introspection/field_type.rb +1 -1
- data/lib/graphql/introspection/schema_type.rb +6 -11
- data/lib/graphql/introspection/type_type.rb +5 -5
- data/lib/graphql/invalid_name_error.rb +1 -1
- data/lib/graphql/invalid_null_error.rb +20 -17
- data/lib/graphql/language/cache.rb +13 -0
- data/lib/graphql/language/comment.rb +18 -0
- data/lib/graphql/language/document_from_schema_definition.rb +64 -35
- data/lib/graphql/language/lexer.rb +72 -42
- data/lib/graphql/language/nodes.rb +93 -52
- data/lib/graphql/language/parser.rb +168 -61
- data/lib/graphql/language/printer.rb +31 -15
- data/lib/graphql/language/sanitized_printer.rb +1 -1
- data/lib/graphql/language.rb +61 -1
- data/lib/graphql/pagination/connection.rb +1 -1
- data/lib/graphql/query/context/scoped_context.rb +1 -1
- data/lib/graphql/query/context.rb +46 -47
- data/lib/graphql/query/null_context.rb +3 -5
- data/lib/graphql/query/partial.rb +179 -0
- data/lib/graphql/query/validation_pipeline.rb +2 -2
- data/lib/graphql/query/variable_validation_error.rb +1 -1
- data/lib/graphql/query.rb +123 -69
- data/lib/graphql/railtie.rb +7 -0
- data/lib/graphql/rubocop/graphql/base_cop.rb +1 -1
- data/lib/graphql/rubocop/graphql/field_type_in_block.rb +144 -0
- data/lib/graphql/rubocop/graphql/root_types_in_block.rb +38 -0
- data/lib/graphql/rubocop.rb +2 -0
- data/lib/graphql/schema/addition.rb +26 -13
- data/lib/graphql/schema/always_visible.rb +7 -2
- data/lib/graphql/schema/argument.rb +57 -8
- data/lib/graphql/schema/build_from_definition.rb +116 -49
- data/lib/graphql/schema/directive/flagged.rb +4 -2
- data/lib/graphql/schema/directive.rb +54 -2
- data/lib/graphql/schema/enum.rb +107 -24
- data/lib/graphql/schema/enum_value.rb +10 -2
- data/lib/graphql/schema/field/connection_extension.rb +1 -1
- data/lib/graphql/schema/field/scope_extension.rb +1 -1
- data/lib/graphql/schema/field.rb +134 -45
- data/lib/graphql/schema/field_extension.rb +1 -1
- data/lib/graphql/schema/has_single_input_argument.rb +6 -2
- data/lib/graphql/schema/input_object.rb +122 -64
- data/lib/graphql/schema/interface.rb +23 -5
- data/lib/graphql/schema/introspection_system.rb +6 -17
- data/lib/graphql/schema/late_bound_type.rb +4 -0
- data/lib/graphql/schema/list.rb +3 -3
- data/lib/graphql/schema/loader.rb +3 -2
- data/lib/graphql/schema/member/base_dsl_methods.rb +15 -0
- data/lib/graphql/schema/member/has_arguments.rb +44 -58
- data/lib/graphql/schema/member/has_dataloader.rb +62 -0
- data/lib/graphql/schema/member/has_deprecation_reason.rb +15 -0
- data/lib/graphql/schema/member/has_directives.rb +4 -4
- data/lib/graphql/schema/member/has_fields.rb +26 -6
- data/lib/graphql/schema/member/has_interfaces.rb +6 -6
- data/lib/graphql/schema/member/has_unresolved_type_error.rb +5 -1
- data/lib/graphql/schema/member/has_validators.rb +1 -1
- data/lib/graphql/schema/member/relay_shortcuts.rb +1 -1
- data/lib/graphql/schema/member/type_system_helpers.rb +17 -4
- data/lib/graphql/schema/member.rb +1 -0
- data/lib/graphql/schema/mutation.rb +7 -0
- data/lib/graphql/schema/object.rb +25 -8
- data/lib/graphql/schema/printer.rb +1 -0
- data/lib/graphql/schema/ractor_shareable.rb +79 -0
- data/lib/graphql/schema/relay_classic_mutation.rb +0 -1
- data/lib/graphql/schema/resolver.rb +29 -23
- data/lib/graphql/schema/scalar.rb +1 -6
- data/lib/graphql/schema/subscription.rb +52 -6
- data/lib/graphql/schema/timeout.rb +19 -2
- data/lib/graphql/schema/type_expression.rb +2 -2
- data/lib/graphql/schema/union.rb +1 -1
- data/lib/graphql/schema/validator/all_validator.rb +62 -0
- data/lib/graphql/schema/validator/required_validator.rb +92 -11
- data/lib/graphql/schema/validator.rb +3 -1
- data/lib/graphql/schema/visibility/migration.rb +188 -0
- data/lib/graphql/schema/visibility/profile.rb +445 -0
- data/lib/graphql/schema/visibility/visit.rb +190 -0
- data/lib/graphql/schema/visibility.rb +311 -0
- data/lib/graphql/schema/warden.rb +190 -20
- data/lib/graphql/schema.rb +695 -167
- data/lib/graphql/static_validation/all_rules.rb +2 -2
- data/lib/graphql/static_validation/base_visitor.rb +6 -5
- data/lib/graphql/static_validation/literal_validator.rb +4 -4
- data/lib/graphql/static_validation/rules/argument_literals_are_compatible.rb +1 -1
- data/lib/graphql/static_validation/rules/argument_names_are_unique.rb +1 -1
- data/lib/graphql/static_validation/rules/arguments_are_defined.rb +3 -2
- data/lib/graphql/static_validation/rules/directives_are_defined.rb +3 -3
- data/lib/graphql/static_validation/rules/directives_are_in_valid_locations.rb +2 -0
- data/lib/graphql/static_validation/rules/fields_are_defined_on_type.rb +12 -2
- data/lib/graphql/static_validation/rules/fields_have_appropriate_selections.rb +47 -13
- data/lib/graphql/static_validation/rules/fields_will_merge.rb +88 -25
- data/lib/graphql/static_validation/rules/fields_will_merge_error.rb +10 -2
- data/lib/graphql/static_validation/rules/fragment_spreads_are_possible.rb +3 -3
- data/lib/graphql/static_validation/rules/fragment_types_exist.rb +12 -2
- data/lib/graphql/static_validation/rules/fragments_are_on_composite_types.rb +1 -1
- data/lib/graphql/static_validation/rules/mutation_root_exists.rb +1 -1
- data/lib/graphql/static_validation/rules/no_definitions_are_present.rb +1 -1
- data/lib/graphql/static_validation/rules/not_single_subscription_error.rb +25 -0
- data/lib/graphql/static_validation/rules/query_root_exists.rb +1 -1
- data/lib/graphql/static_validation/rules/required_arguments_are_present.rb +4 -4
- data/lib/graphql/static_validation/rules/required_input_object_attributes_are_present.rb +3 -3
- data/lib/graphql/static_validation/rules/subscription_root_exists_and_single_subscription_selection.rb +26 -0
- data/lib/graphql/static_validation/rules/unique_directives_per_location.rb +7 -3
- data/lib/graphql/static_validation/rules/variable_default_values_are_correctly_typed.rb +18 -27
- data/lib/graphql/static_validation/rules/variable_names_are_unique.rb +1 -1
- data/lib/graphql/static_validation/rules/variable_usages_are_allowed.rb +2 -2
- data/lib/graphql/static_validation/rules/variables_are_input_types.rb +11 -2
- data/lib/graphql/static_validation/validation_context.rb +18 -2
- data/lib/graphql/static_validation/validator.rb +6 -1
- data/lib/graphql/subscriptions/action_cable_subscriptions.rb +5 -3
- data/lib/graphql/subscriptions/broadcast_analyzer.rb +11 -5
- data/lib/graphql/subscriptions/default_subscription_resolve_extension.rb +12 -10
- data/lib/graphql/subscriptions/event.rb +13 -2
- data/lib/graphql/subscriptions/serialize.rb +1 -1
- data/lib/graphql/subscriptions.rb +7 -5
- data/lib/graphql/testing/helpers.rb +48 -16
- data/lib/graphql/testing/mock_action_cable.rb +111 -0
- data/lib/graphql/testing.rb +1 -0
- data/lib/graphql/tracing/active_support_notifications_trace.rb +14 -3
- data/lib/graphql/tracing/active_support_notifications_tracing.rb +1 -1
- data/lib/graphql/tracing/appoptics_trace.rb +5 -1
- data/lib/graphql/tracing/appoptics_tracing.rb +7 -0
- data/lib/graphql/tracing/appsignal_trace.rb +32 -59
- data/lib/graphql/tracing/appsignal_tracing.rb +2 -0
- data/lib/graphql/tracing/call_legacy_tracers.rb +66 -0
- data/lib/graphql/tracing/data_dog_trace.rb +46 -162
- data/lib/graphql/tracing/data_dog_tracing.rb +2 -0
- data/lib/graphql/tracing/detailed_trace/memory_backend.rb +60 -0
- data/lib/graphql/tracing/detailed_trace/redis_backend.rb +72 -0
- data/lib/graphql/tracing/detailed_trace.rb +141 -0
- data/lib/graphql/tracing/legacy_hooks_trace.rb +1 -0
- data/lib/graphql/tracing/legacy_trace.rb +4 -61
- data/lib/graphql/tracing/monitor_trace.rb +283 -0
- data/lib/graphql/tracing/new_relic_trace.rb +47 -54
- data/lib/graphql/tracing/new_relic_tracing.rb +2 -0
- data/lib/graphql/tracing/notifications_trace.rb +183 -37
- data/lib/graphql/tracing/notifications_tracing.rb +2 -0
- data/lib/graphql/tracing/null_trace.rb +9 -0
- data/lib/graphql/tracing/perfetto_trace/trace.proto +141 -0
- data/lib/graphql/tracing/perfetto_trace/trace_pb.rb +33 -0
- data/lib/graphql/tracing/perfetto_trace.rb +818 -0
- data/lib/graphql/tracing/platform_tracing.rb +1 -1
- data/lib/graphql/tracing/prometheus_trace/graphql_collector.rb +2 -0
- data/lib/graphql/tracing/prometheus_trace.rb +73 -73
- data/lib/graphql/tracing/prometheus_tracing.rb +2 -0
- data/lib/graphql/tracing/scout_trace.rb +32 -58
- data/lib/graphql/tracing/scout_tracing.rb +2 -0
- data/lib/graphql/tracing/sentry_trace.rb +64 -98
- data/lib/graphql/tracing/statsd_trace.rb +33 -45
- data/lib/graphql/tracing/statsd_tracing.rb +2 -0
- data/lib/graphql/tracing/trace.rb +111 -1
- data/lib/graphql/tracing.rb +31 -30
- data/lib/graphql/type_kinds.rb +2 -1
- data/lib/graphql/types/relay/connection_behaviors.rb +12 -2
- data/lib/graphql/types/relay/edge_behaviors.rb +11 -1
- data/lib/graphql/types/relay/page_info_behaviors.rb +4 -0
- data/lib/graphql/types.rb +18 -11
- data/lib/graphql/unauthorized_enum_value_error.rb +13 -0
- data/lib/graphql/version.rb +1 -1
- data/lib/graphql.rb +64 -54
- metadata +197 -22
- data/lib/graphql/analysis/ast/analyzer.rb +0 -91
- data/lib/graphql/analysis/ast/field_usage.rb +0 -82
- data/lib/graphql/analysis/ast/max_query_complexity.rb +0 -22
- data/lib/graphql/analysis/ast/max_query_depth.rb +0 -22
- data/lib/graphql/analysis/ast/query_complexity.rb +0 -182
- data/lib/graphql/analysis/ast/visitor.rb +0 -276
- data/lib/graphql/analysis/ast.rb +0 -94
- data/lib/graphql/backtrace/inspect_result.rb +0 -50
- data/lib/graphql/backtrace/trace.rb +0 -93
- data/lib/graphql/backtrace/tracer.rb +0 -80
- data/lib/graphql/language/token.rb +0 -34
- data/lib/graphql/schema/invalid_type_error.rb +0 -7
- data/lib/graphql/schema/null_mask.rb +0 -11
- data/lib/graphql/static_validation/rules/subscription_root_exists.rb +0 -17
|
@@ -20,26 +20,29 @@ module GraphQL
|
|
|
20
20
|
@definition_line = definition_line
|
|
21
21
|
super(**_rest)
|
|
22
22
|
end
|
|
23
|
+
|
|
24
|
+
def marshal_dump
|
|
25
|
+
super << @definition_line
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
def marshal_load(values)
|
|
29
|
+
@definition_line = values.pop
|
|
30
|
+
super
|
|
31
|
+
end
|
|
23
32
|
end
|
|
24
33
|
|
|
25
34
|
attr_reader :filename
|
|
26
35
|
|
|
27
36
|
def line
|
|
28
|
-
@line ||= (@
|
|
37
|
+
@line ||= @source&.line_at(@pos)
|
|
29
38
|
end
|
|
30
39
|
|
|
31
40
|
def col
|
|
32
|
-
@col ||=
|
|
33
|
-
if @pos == 0
|
|
34
|
-
1
|
|
35
|
-
else
|
|
36
|
-
@source_string[0..@pos].split("\n").last.length
|
|
37
|
-
end
|
|
38
|
-
end
|
|
41
|
+
@col ||= @source&.column_at(@pos)
|
|
39
42
|
end
|
|
40
43
|
|
|
41
44
|
def definition_line
|
|
42
|
-
@definition_line ||= (@
|
|
45
|
+
@definition_line ||= (@source && @definition_pos) ? @source.line_at(@definition_pos) : nil
|
|
43
46
|
end
|
|
44
47
|
|
|
45
48
|
# Value equality
|
|
@@ -80,7 +83,11 @@ module GraphQL
|
|
|
80
83
|
|
|
81
84
|
def to_query_string(printer: GraphQL::Language::Printer.new)
|
|
82
85
|
if printer.is_a?(GraphQL::Language::Printer)
|
|
83
|
-
|
|
86
|
+
if frozen?
|
|
87
|
+
@query_string || printer.print(self)
|
|
88
|
+
else
|
|
89
|
+
@query_string ||= printer.print(self)
|
|
90
|
+
end
|
|
84
91
|
else
|
|
85
92
|
printer.print(self)
|
|
86
93
|
end
|
|
@@ -269,30 +276,36 @@ module GraphQL
|
|
|
269
276
|
"col: nil",
|
|
270
277
|
"pos: nil",
|
|
271
278
|
"filename: nil",
|
|
272
|
-
"
|
|
279
|
+
"source: nil"
|
|
273
280
|
]
|
|
274
281
|
|
|
282
|
+
IGNORED_MARSHALLING_KEYWORDS = [:comment]
|
|
283
|
+
|
|
275
284
|
def generate_initialize
|
|
285
|
+
return if method_defined?(:marshal_load, false) # checking for `:initialize` doesn't work right
|
|
286
|
+
|
|
276
287
|
scalar_method_names = @scalar_methods
|
|
277
288
|
# TODO: These probably should be scalar methods, but `types` returns an array
|
|
278
|
-
[:types, :description].each do |extra_method|
|
|
289
|
+
[:types, :description, :comment].each do |extra_method|
|
|
279
290
|
if method_defined?(extra_method)
|
|
280
291
|
scalar_method_names += [extra_method]
|
|
281
292
|
end
|
|
282
293
|
end
|
|
283
294
|
|
|
284
|
-
|
|
295
|
+
children_method_names = @children_methods.keys
|
|
296
|
+
|
|
297
|
+
all_method_names = scalar_method_names + children_method_names
|
|
285
298
|
if all_method_names.include?(:alias)
|
|
286
299
|
# Rather than complicating this special case,
|
|
287
300
|
# let it be overridden (in field)
|
|
288
301
|
return
|
|
289
302
|
else
|
|
290
303
|
arguments = scalar_method_names.map { |m| "#{m}: nil"} +
|
|
291
|
-
|
|
304
|
+
children_method_names.map { |m| "#{m}: NO_CHILDREN" } +
|
|
292
305
|
DEFAULT_INITIALIZE_OPTIONS
|
|
293
306
|
|
|
294
307
|
assignments = scalar_method_names.map { |m| "@#{m} = #{m}"} +
|
|
295
|
-
|
|
308
|
+
children_method_names.map { |m| "@#{m} = #{m}.freeze" }
|
|
296
309
|
|
|
297
310
|
if name.end_with?("Definition") && name != "FragmentDefinition"
|
|
298
311
|
arguments << "definition_pos: nil"
|
|
@@ -300,7 +313,13 @@ module GraphQL
|
|
|
300
313
|
end
|
|
301
314
|
|
|
302
315
|
keywords = scalar_method_names.map { |m| "#{m}: #{m}"} +
|
|
303
|
-
|
|
316
|
+
children_method_names.map { |m| "#{m}: #{m}" }
|
|
317
|
+
|
|
318
|
+
ignored_keywords = IGNORED_MARSHALLING_KEYWORDS.map do |keyword|
|
|
319
|
+
"#{keyword.to_s}: nil"
|
|
320
|
+
end
|
|
321
|
+
|
|
322
|
+
marshalling_method_names = all_method_names - IGNORED_MARSHALLING_KEYWORDS
|
|
304
323
|
|
|
305
324
|
module_eval <<-RUBY, __FILE__, __LINE__
|
|
306
325
|
def initialize(#{arguments.join(", ")})
|
|
@@ -308,13 +327,25 @@ module GraphQL
|
|
|
308
327
|
@col = col
|
|
309
328
|
@pos = pos
|
|
310
329
|
@filename = filename
|
|
311
|
-
@
|
|
330
|
+
@source = source
|
|
312
331
|
#{assignments.join("\n")}
|
|
313
332
|
end
|
|
314
333
|
|
|
315
|
-
def self.from_a(filename, line, col, #{(
|
|
334
|
+
def self.from_a(filename, line, col, #{marshalling_method_names.join(", ")}, #{ignored_keywords.join(", ")})
|
|
316
335
|
self.new(filename: filename, line: line, col: col, #{keywords.join(", ")})
|
|
317
336
|
end
|
|
337
|
+
|
|
338
|
+
def marshal_dump
|
|
339
|
+
[
|
|
340
|
+
line, col, # use methods here to force them to be calculated
|
|
341
|
+
@filename,
|
|
342
|
+
#{marshalling_method_names.map { |n| "@#{n}," }.join}
|
|
343
|
+
]
|
|
344
|
+
end
|
|
345
|
+
|
|
346
|
+
def marshal_load(values)
|
|
347
|
+
@line, @col, @filename #{marshalling_method_names.map { |n| ", @#{n}"}.join} = values
|
|
348
|
+
end
|
|
318
349
|
RUBY
|
|
319
350
|
end
|
|
320
351
|
end
|
|
@@ -365,6 +396,7 @@ module GraphQL
|
|
|
365
396
|
arguments: Nodes::Argument,
|
|
366
397
|
locations: Nodes::DirectiveLocation,
|
|
367
398
|
)
|
|
399
|
+
self.children_method_name = :definitions
|
|
368
400
|
end
|
|
369
401
|
|
|
370
402
|
# An enum value. The string is available as {#name}.
|
|
@@ -377,17 +409,7 @@ module GraphQL
|
|
|
377
409
|
|
|
378
410
|
# A single selection in a GraphQL query.
|
|
379
411
|
class Field < AbstractNode
|
|
380
|
-
|
|
381
|
-
children_methods({
|
|
382
|
-
arguments: GraphQL::Language::Nodes::Argument,
|
|
383
|
-
selections: GraphQL::Language::Nodes::Field,
|
|
384
|
-
directives: GraphQL::Language::Nodes::Directive,
|
|
385
|
-
})
|
|
386
|
-
|
|
387
|
-
# @!attribute selections
|
|
388
|
-
# @return [Array<Nodes::Field>] Selections on this object (or empty array if this is a scalar field)
|
|
389
|
-
|
|
390
|
-
def initialize(name: nil, arguments: NONE, directives: NONE, selections: NONE, field_alias: nil, line: nil, col: nil, pos: nil, filename: nil, source_string: nil)
|
|
412
|
+
def initialize(name: nil, arguments: NONE, directives: NONE, selections: NONE, field_alias: nil, line: nil, col: nil, pos: nil, filename: nil, source: nil)
|
|
391
413
|
@name = name
|
|
392
414
|
@arguments = arguments || NONE
|
|
393
415
|
@directives = directives || NONE
|
|
@@ -398,39 +420,42 @@ module GraphQL
|
|
|
398
420
|
@col = col
|
|
399
421
|
@pos = pos
|
|
400
422
|
@filename = filename
|
|
401
|
-
@
|
|
423
|
+
@source = source
|
|
402
424
|
end
|
|
403
425
|
|
|
404
426
|
def self.from_a(filename, line, col, field_alias, name, arguments, directives, selections) # rubocop:disable Metrics/ParameterLists
|
|
405
427
|
self.new(filename: filename, line: line, col: col, field_alias: field_alias, name: name, arguments: arguments, directives: directives, selections: selections)
|
|
406
428
|
end
|
|
407
429
|
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
430
|
+
def marshal_dump
|
|
431
|
+
[line, col, @filename, @name, @arguments, @directives, @selections, @alias]
|
|
432
|
+
end
|
|
411
433
|
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
434
|
+
def marshal_load(values)
|
|
435
|
+
@line, @col, @filename, @name, @arguments, @directives, @selections, @alias = values
|
|
436
|
+
end
|
|
437
|
+
|
|
438
|
+
scalar_methods :name, :alias
|
|
415
439
|
children_methods({
|
|
440
|
+
arguments: GraphQL::Language::Nodes::Argument,
|
|
416
441
|
selections: GraphQL::Language::Nodes::Field,
|
|
417
442
|
directives: GraphQL::Language::Nodes::Directive,
|
|
418
443
|
})
|
|
419
444
|
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
445
|
+
# Override this because default is `:fields`
|
|
446
|
+
self.children_method_name = :selections
|
|
447
|
+
end
|
|
423
448
|
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
def initialize(name: nil, type: nil, directives: NONE, selections: NONE, filename: nil, pos: nil,
|
|
449
|
+
# A reusable fragment, defined at document-level.
|
|
450
|
+
class FragmentDefinition < AbstractNode
|
|
451
|
+
def initialize(name: nil, type: nil, directives: NONE, selections: NONE, filename: nil, pos: nil, source: nil, line: nil, col: nil)
|
|
427
452
|
@name = name
|
|
428
453
|
@type = type
|
|
429
454
|
@directives = directives
|
|
430
455
|
@selections = selections
|
|
431
456
|
@filename = filename
|
|
432
457
|
@pos = pos
|
|
433
|
-
@
|
|
458
|
+
@source = source
|
|
434
459
|
@line = line
|
|
435
460
|
@col = col
|
|
436
461
|
end
|
|
@@ -438,6 +463,22 @@ module GraphQL
|
|
|
438
463
|
def self.from_a(filename, line, col, name, type, directives, selections)
|
|
439
464
|
self.new(filename: filename, line: line, col: col, name: name, type: type, directives: directives, selections: selections)
|
|
440
465
|
end
|
|
466
|
+
|
|
467
|
+
def marshal_dump
|
|
468
|
+
[line, col, @filename, @name, @type, @directives, @selections]
|
|
469
|
+
end
|
|
470
|
+
|
|
471
|
+
def marshal_load(values)
|
|
472
|
+
@line, @col, @filename, @name, @type, @directives, @selections = values
|
|
473
|
+
end
|
|
474
|
+
|
|
475
|
+
scalar_methods :name, :type
|
|
476
|
+
children_methods({
|
|
477
|
+
selections: GraphQL::Language::Nodes::Field,
|
|
478
|
+
directives: GraphQL::Language::Nodes::Directive,
|
|
479
|
+
})
|
|
480
|
+
|
|
481
|
+
self.children_method_name = :definitions
|
|
441
482
|
end
|
|
442
483
|
|
|
443
484
|
# Application of a named fragment in a selection
|
|
@@ -609,7 +650,7 @@ module GraphQL
|
|
|
609
650
|
end
|
|
610
651
|
|
|
611
652
|
class ScalarTypeDefinition < AbstractNode
|
|
612
|
-
attr_reader :description
|
|
653
|
+
attr_reader :description, :comment
|
|
613
654
|
scalar_methods :name
|
|
614
655
|
children_methods({
|
|
615
656
|
directives: GraphQL::Language::Nodes::Directive,
|
|
@@ -626,7 +667,7 @@ module GraphQL
|
|
|
626
667
|
end
|
|
627
668
|
|
|
628
669
|
class InputValueDefinition < AbstractNode
|
|
629
|
-
attr_reader :description
|
|
670
|
+
attr_reader :description, :comment
|
|
630
671
|
scalar_methods :name, :type, :default_value
|
|
631
672
|
children_methods({
|
|
632
673
|
directives: GraphQL::Language::Nodes::Directive,
|
|
@@ -635,7 +676,7 @@ module GraphQL
|
|
|
635
676
|
end
|
|
636
677
|
|
|
637
678
|
class FieldDefinition < AbstractNode
|
|
638
|
-
attr_reader :description
|
|
679
|
+
attr_reader :description, :comment
|
|
639
680
|
scalar_methods :name, :type
|
|
640
681
|
children_methods({
|
|
641
682
|
arguments: GraphQL::Language::Nodes::InputValueDefinition,
|
|
@@ -655,7 +696,7 @@ module GraphQL
|
|
|
655
696
|
end
|
|
656
697
|
|
|
657
698
|
class ObjectTypeDefinition < AbstractNode
|
|
658
|
-
attr_reader :description
|
|
699
|
+
attr_reader :description, :comment
|
|
659
700
|
scalar_methods :name, :interfaces
|
|
660
701
|
children_methods({
|
|
661
702
|
directives: GraphQL::Language::Nodes::Directive,
|
|
@@ -674,7 +715,7 @@ module GraphQL
|
|
|
674
715
|
end
|
|
675
716
|
|
|
676
717
|
class InterfaceTypeDefinition < AbstractNode
|
|
677
|
-
attr_reader :description
|
|
718
|
+
attr_reader :description, :comment
|
|
678
719
|
scalar_methods :name
|
|
679
720
|
children_methods({
|
|
680
721
|
interfaces: GraphQL::Language::Nodes::TypeName,
|
|
@@ -695,7 +736,7 @@ module GraphQL
|
|
|
695
736
|
end
|
|
696
737
|
|
|
697
738
|
class UnionTypeDefinition < AbstractNode
|
|
698
|
-
attr_reader :description, :types
|
|
739
|
+
attr_reader :description, :comment, :types
|
|
699
740
|
scalar_methods :name
|
|
700
741
|
children_methods({
|
|
701
742
|
directives: GraphQL::Language::Nodes::Directive,
|
|
@@ -713,7 +754,7 @@ module GraphQL
|
|
|
713
754
|
end
|
|
714
755
|
|
|
715
756
|
class EnumValueDefinition < AbstractNode
|
|
716
|
-
attr_reader :description
|
|
757
|
+
attr_reader :description, :comment
|
|
717
758
|
scalar_methods :name
|
|
718
759
|
children_methods({
|
|
719
760
|
directives: GraphQL::Language::Nodes::Directive,
|
|
@@ -722,7 +763,7 @@ module GraphQL
|
|
|
722
763
|
end
|
|
723
764
|
|
|
724
765
|
class EnumTypeDefinition < AbstractNode
|
|
725
|
-
attr_reader :description
|
|
766
|
+
attr_reader :description, :comment
|
|
726
767
|
scalar_methods :name
|
|
727
768
|
children_methods({
|
|
728
769
|
directives: GraphQL::Language::Nodes::Directive,
|
|
@@ -741,7 +782,7 @@ module GraphQL
|
|
|
741
782
|
end
|
|
742
783
|
|
|
743
784
|
class InputObjectTypeDefinition < AbstractNode
|
|
744
|
-
attr_reader :description
|
|
785
|
+
attr_reader :description, :comment
|
|
745
786
|
scalar_methods :name
|
|
746
787
|
children_methods({
|
|
747
788
|
directives: GraphQL::Language::Nodes::Directive,
|