graphql 1.12.12 → 2.4.8
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.
Potentially problematic release.
This version of graphql might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/lib/generators/graphql/core.rb +3 -8
- data/lib/generators/graphql/enum_generator.rb +4 -10
- data/lib/generators/graphql/field_extractor.rb +31 -0
- data/lib/generators/graphql/input_generator.rb +50 -0
- data/lib/generators/graphql/install/mutation_root_generator.rb +34 -0
- data/lib/generators/graphql/{templates → install/templates}/base_mutation.erb +2 -0
- data/lib/generators/graphql/{templates → install/templates}/mutation_type.erb +2 -0
- data/lib/generators/graphql/install_generator.rb +60 -4
- data/lib/generators/graphql/interface_generator.rb +7 -7
- data/lib/generators/graphql/mutation_create_generator.rb +22 -0
- data/lib/generators/graphql/mutation_delete_generator.rb +22 -0
- data/lib/generators/graphql/mutation_generator.rb +5 -30
- data/lib/generators/graphql/mutation_update_generator.rb +22 -0
- data/lib/generators/graphql/object_generator.rb +10 -38
- data/lib/generators/graphql/orm_mutations_base.rb +40 -0
- data/lib/generators/graphql/relay.rb +23 -12
- data/lib/generators/graphql/scalar_generator.rb +4 -2
- data/lib/generators/graphql/templates/base_argument.erb +2 -0
- data/lib/generators/graphql/templates/base_connection.erb +2 -0
- data/lib/generators/graphql/templates/base_edge.erb +2 -0
- data/lib/generators/graphql/templates/base_enum.erb +2 -0
- data/lib/generators/graphql/templates/base_field.erb +2 -0
- data/lib/generators/graphql/templates/base_input_object.erb +2 -0
- data/lib/generators/graphql/templates/base_interface.erb +2 -0
- data/lib/generators/graphql/templates/base_object.erb +2 -0
- data/lib/generators/graphql/templates/base_resolver.erb +8 -0
- data/lib/generators/graphql/templates/base_scalar.erb +2 -0
- data/lib/generators/graphql/templates/base_union.erb +2 -0
- data/lib/generators/graphql/templates/enum.erb +5 -1
- data/lib/generators/graphql/templates/graphql_controller.erb +2 -0
- data/lib/generators/graphql/templates/input.erb +9 -0
- data/lib/generators/graphql/templates/interface.erb +4 -2
- data/lib/generators/graphql/templates/loader.erb +2 -0
- data/lib/generators/graphql/templates/mutation.erb +3 -1
- data/lib/generators/graphql/templates/mutation_create.erb +20 -0
- data/lib/generators/graphql/templates/mutation_delete.erb +20 -0
- data/lib/generators/graphql/templates/mutation_update.erb +21 -0
- data/lib/generators/graphql/templates/node_type.erb +2 -0
- data/lib/generators/graphql/templates/object.erb +4 -2
- data/lib/generators/graphql/templates/query_type.erb +2 -0
- data/lib/generators/graphql/templates/scalar.erb +3 -1
- data/lib/generators/graphql/templates/schema.erb +22 -2
- data/lib/generators/graphql/templates/union.erb +4 -2
- data/lib/generators/graphql/type_generator.rb +46 -10
- data/lib/generators/graphql/union_generator.rb +5 -5
- data/lib/graphql/analysis/analyzer.rb +89 -0
- data/lib/graphql/analysis/field_usage.rb +65 -28
- data/lib/graphql/analysis/max_query_complexity.rb +11 -17
- data/lib/graphql/analysis/max_query_depth.rb +13 -19
- data/lib/graphql/analysis/query_complexity.rb +156 -61
- data/lib/graphql/analysis/query_depth.rb +38 -23
- data/lib/graphql/analysis/visitor.rb +283 -0
- data/lib/graphql/analysis.rb +90 -6
- data/lib/graphql/autoload.rb +38 -0
- data/lib/graphql/backtrace/inspect_result.rb +0 -12
- data/lib/graphql/backtrace/table.rb +4 -22
- data/lib/graphql/backtrace/trace.rb +93 -0
- data/lib/graphql/backtrace/tracer.rb +8 -6
- data/lib/graphql/backtrace.rb +3 -8
- data/lib/graphql/coercion_error.rb +1 -9
- data/lib/graphql/current.rb +52 -0
- data/lib/graphql/dataloader/async_dataloader.rb +89 -0
- data/lib/graphql/dataloader/null_dataloader.rb +4 -2
- data/lib/graphql/dataloader/request.rb +5 -0
- data/lib/graphql/dataloader/source.rb +125 -33
- data/lib/graphql/dataloader.rb +193 -143
- data/lib/graphql/date_encoding_error.rb +16 -0
- data/lib/graphql/dig.rb +1 -1
- data/lib/graphql/duration_encoding_error.rb +16 -0
- data/lib/graphql/execution/errors.rb +12 -81
- data/lib/graphql/execution/interpreter/argument_value.rb +5 -1
- data/lib/graphql/execution/interpreter/arguments.rb +2 -2
- data/lib/graphql/execution/interpreter/arguments_cache.rb +33 -36
- data/lib/graphql/execution/interpreter/resolve.rb +38 -4
- data/lib/graphql/execution/interpreter/runtime/graphql_result.rb +175 -0
- data/lib/graphql/execution/interpreter/runtime.rb +447 -403
- data/lib/graphql/execution/interpreter.rb +126 -80
- data/lib/graphql/execution/lazy.rb +11 -21
- data/lib/graphql/execution/lookahead.rb +133 -55
- data/lib/graphql/execution/multiplex.rb +4 -172
- data/lib/graphql/execution.rb +11 -4
- data/lib/graphql/integer_encoding_error.rb +18 -2
- data/lib/graphql/introspection/directive_location_enum.rb +2 -2
- data/lib/graphql/introspection/directive_type.rb +6 -4
- data/lib/graphql/introspection/dynamic_fields.rb +3 -8
- data/lib/graphql/introspection/entry_points.rb +11 -18
- data/lib/graphql/introspection/enum_value_type.rb +2 -2
- data/lib/graphql/introspection/field_type.rb +4 -4
- data/lib/graphql/introspection/input_value_type.rb +10 -4
- data/lib/graphql/introspection/schema_type.rb +17 -15
- data/lib/graphql/introspection/type_type.rb +29 -16
- data/lib/graphql/introspection.rb +6 -2
- data/lib/graphql/invalid_null_error.rb +1 -1
- data/lib/graphql/language/block_string.rb +37 -25
- data/lib/graphql/language/cache.rb +13 -0
- data/lib/graphql/language/comment.rb +18 -0
- data/lib/graphql/language/definition_slice.rb +1 -1
- data/lib/graphql/language/document_from_schema_definition.rb +122 -81
- data/lib/graphql/language/lexer.rb +364 -1467
- data/lib/graphql/language/nodes.rb +197 -106
- data/lib/graphql/language/parser.rb +799 -1920
- data/lib/graphql/language/printer.rb +372 -160
- data/lib/graphql/language/sanitized_printer.rb +25 -27
- data/lib/graphql/language/static_visitor.rb +167 -0
- data/lib/graphql/language/visitor.rb +188 -141
- data/lib/graphql/language.rb +62 -1
- data/lib/graphql/load_application_object_failed_error.rb +5 -1
- data/lib/graphql/name_validator.rb +0 -4
- data/lib/graphql/pagination/active_record_relation_connection.rb +37 -8
- data/lib/graphql/pagination/array_connection.rb +8 -6
- data/lib/graphql/pagination/connection.rb +61 -7
- data/lib/graphql/pagination/connections.rb +22 -23
- data/lib/graphql/pagination/mongoid_relation_connection.rb +1 -2
- data/lib/graphql/pagination/relation_connection.rb +60 -28
- data/lib/graphql/query/context/scoped_context.rb +101 -0
- data/lib/graphql/query/context.rb +146 -222
- data/lib/graphql/query/input_validation_result.rb +10 -1
- data/lib/graphql/query/null_context.rb +15 -32
- data/lib/graphql/query/validation_pipeline.rb +15 -39
- data/lib/graphql/query/variable_validation_error.rb +3 -3
- data/lib/graphql/query/variables.rb +35 -17
- data/lib/graphql/query.rb +149 -82
- data/lib/graphql/railtie.rb +15 -109
- data/lib/graphql/rake_task/validate.rb +1 -1
- data/lib/graphql/rake_task.rb +30 -11
- data/lib/graphql/relay/range_add.rb +9 -16
- data/lib/graphql/relay.rb +0 -15
- data/lib/graphql/rubocop/graphql/base_cop.rb +36 -0
- data/lib/graphql/rubocop/graphql/default_null_true.rb +43 -0
- data/lib/graphql/rubocop/graphql/default_required_true.rb +43 -0
- 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 +6 -0
- data/lib/graphql/schema/addition.rb +98 -54
- data/lib/graphql/schema/always_visible.rb +14 -0
- data/lib/graphql/schema/argument.rb +179 -82
- data/lib/graphql/schema/base_64_encoder.rb +3 -5
- data/lib/graphql/schema/build_from_definition.rb +77 -39
- data/lib/graphql/schema/directive/feature.rb +1 -1
- data/lib/graphql/schema/directive/flagged.rb +4 -4
- data/lib/graphql/schema/directive/include.rb +1 -1
- data/lib/graphql/schema/directive/one_of.rb +24 -0
- data/lib/graphql/schema/directive/skip.rb +1 -1
- data/lib/graphql/schema/directive/specified_by.rb +14 -0
- data/lib/graphql/schema/directive/transform.rb +2 -2
- data/lib/graphql/schema/directive.rb +36 -22
- data/lib/graphql/schema/enum.rb +158 -63
- data/lib/graphql/schema/enum_value.rb +12 -21
- data/lib/graphql/schema/field/connection_extension.rb +7 -17
- data/lib/graphql/schema/field/scope_extension.rb +8 -1
- data/lib/graphql/schema/field.rb +521 -359
- data/lib/graphql/schema/field_extension.rb +86 -2
- data/lib/graphql/schema/find_inherited_value.rb +3 -7
- data/lib/graphql/schema/finder.rb +5 -5
- data/lib/graphql/schema/has_single_input_argument.rb +160 -0
- data/lib/graphql/schema/input_object.rb +148 -99
- data/lib/graphql/schema/interface.rb +41 -64
- data/lib/graphql/schema/introspection_system.rb +12 -26
- data/lib/graphql/schema/late_bound_type.rb +12 -2
- data/lib/graphql/schema/list.rb +18 -7
- data/lib/graphql/schema/loader.rb +6 -5
- data/lib/graphql/schema/member/base_dsl_methods.rb +32 -18
- data/lib/graphql/schema/member/build_type.rb +16 -13
- data/lib/graphql/schema/member/has_arguments.rb +270 -86
- data/lib/graphql/schema/member/has_ast_node.rb +12 -0
- data/lib/graphql/schema/member/has_deprecation_reason.rb +3 -4
- data/lib/graphql/schema/member/has_directives.rb +81 -61
- data/lib/graphql/schema/member/has_fields.rb +169 -31
- data/lib/graphql/schema/member/has_interfaces.rb +143 -0
- data/lib/graphql/schema/member/has_unresolved_type_error.rb +5 -1
- data/lib/graphql/schema/member/has_validators.rb +32 -6
- data/lib/graphql/schema/member/relay_shortcuts.rb +47 -2
- data/lib/graphql/schema/member/scoped.rb +19 -0
- data/lib/graphql/schema/member/type_system_helpers.rb +16 -0
- data/lib/graphql/schema/member/validates_input.rb +6 -6
- data/lib/graphql/schema/member.rb +1 -6
- data/lib/graphql/schema/mutation.rb +7 -9
- data/lib/graphql/schema/non_null.rb +7 -7
- data/lib/graphql/schema/object.rb +38 -119
- data/lib/graphql/schema/printer.rb +24 -25
- data/lib/graphql/schema/relay_classic_mutation.rb +13 -91
- data/lib/graphql/schema/resolver/has_payload_type.rb +46 -11
- data/lib/graphql/schema/resolver.rb +118 -115
- data/lib/graphql/schema/scalar.rb +20 -21
- data/lib/graphql/schema/subscription.rb +95 -21
- data/lib/graphql/schema/timeout.rb +25 -29
- data/lib/graphql/schema/type_expression.rb +2 -2
- data/lib/graphql/schema/type_membership.rb +21 -4
- data/lib/graphql/schema/union.rb +16 -16
- data/lib/graphql/schema/unique_within_type.rb +1 -1
- data/lib/graphql/schema/validator/all_validator.rb +62 -0
- data/lib/graphql/schema/validator/allow_blank_validator.rb +29 -0
- data/lib/graphql/schema/validator/allow_null_validator.rb +26 -0
- data/lib/graphql/schema/validator/exclusion_validator.rb +3 -1
- data/lib/graphql/schema/validator/format_validator.rb +4 -5
- data/lib/graphql/schema/validator/inclusion_validator.rb +3 -1
- data/lib/graphql/schema/validator/length_validator.rb +5 -3
- data/lib/graphql/schema/validator/numericality_validator.rb +13 -2
- data/lib/graphql/schema/validator/required_validator.rb +56 -18
- data/lib/graphql/schema/validator.rb +38 -28
- data/lib/graphql/schema/visibility/migration.rb +188 -0
- data/lib/graphql/schema/visibility/profile.rb +359 -0
- data/lib/graphql/schema/visibility/visit.rb +190 -0
- data/lib/graphql/schema/visibility.rb +294 -0
- data/lib/graphql/schema/warden.rb +423 -134
- data/lib/graphql/schema/wrapper.rb +0 -5
- data/lib/graphql/schema.rb +1015 -1057
- data/lib/graphql/static_validation/all_rules.rb +3 -1
- data/lib/graphql/static_validation/base_visitor.rb +15 -28
- data/lib/graphql/static_validation/definition_dependencies.rb +7 -2
- data/lib/graphql/static_validation/error.rb +3 -1
- data/lib/graphql/static_validation/literal_validator.rb +24 -7
- 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 +4 -3
- data/lib/graphql/static_validation/rules/directives_are_defined.rb +13 -7
- data/lib/graphql/static_validation/rules/directives_are_in_valid_locations.rb +15 -13
- 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 +13 -5
- data/lib/graphql/static_validation/rules/fields_will_merge.rb +62 -35
- data/lib/graphql/static_validation/rules/fields_will_merge_error.rb +25 -4
- 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_finite.rb +2 -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/one_of_input_objects_are_valid.rb +66 -0
- data/lib/graphql/static_validation/rules/one_of_input_objects_are_valid_error.rb +29 -0
- data/lib/graphql/static_validation/rules/query_root_exists.rb +17 -0
- data/lib/graphql/static_validation/rules/query_root_exists_error.rb +26 -0
- data/lib/graphql/static_validation/rules/required_arguments_are_present.rb +7 -5
- data/lib/graphql/static_validation/rules/required_input_object_attributes_are_present.rb +5 -5
- data/lib/graphql/static_validation/rules/subscription_root_exists.rb +1 -1
- data/lib/graphql/static_validation/rules/unique_directives_per_location.rb +14 -8
- 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 +14 -8
- data/lib/graphql/static_validation/rules/variables_are_input_types.rb +11 -2
- data/lib/graphql/static_validation/validation_context.rb +32 -6
- data/lib/graphql/static_validation/validator.rb +11 -27
- data/lib/graphql/static_validation.rb +0 -3
- data/lib/graphql/string_encoding_error.rb +13 -3
- data/lib/graphql/subscriptions/action_cable_subscriptions.rb +49 -11
- data/lib/graphql/subscriptions/broadcast_analyzer.rb +11 -5
- data/lib/graphql/subscriptions/default_subscription_resolve_extension.rb +40 -1
- data/lib/graphql/subscriptions/event.rb +87 -38
- data/lib/graphql/subscriptions/serialize.rb +27 -3
- data/lib/graphql/subscriptions.rb +63 -49
- data/lib/graphql/testing/helpers.rb +155 -0
- data/lib/graphql/testing.rb +2 -0
- data/lib/graphql/tracing/active_support_notifications_trace.rb +16 -0
- data/lib/graphql/tracing/active_support_notifications_tracing.rb +6 -20
- data/lib/graphql/tracing/appoptics_trace.rb +253 -0
- data/lib/graphql/tracing/appoptics_tracing.rb +4 -2
- data/lib/graphql/tracing/appsignal_trace.rb +79 -0
- data/lib/graphql/tracing/appsignal_tracing.rb +17 -0
- data/lib/graphql/tracing/call_legacy_tracers.rb +66 -0
- data/lib/graphql/tracing/data_dog_trace.rb +185 -0
- data/lib/graphql/tracing/data_dog_tracing.rb +27 -15
- data/lib/graphql/{execution/instrumentation.rb → tracing/legacy_hooks_trace.rb} +11 -28
- data/lib/graphql/tracing/legacy_trace.rb +12 -0
- data/lib/graphql/tracing/new_relic_trace.rb +77 -0
- data/lib/graphql/tracing/new_relic_tracing.rb +2 -0
- data/lib/graphql/tracing/notifications_trace.rb +45 -0
- data/lib/graphql/tracing/notifications_tracing.rb +61 -0
- data/lib/graphql/tracing/null_trace.rb +9 -0
- data/lib/graphql/tracing/platform_trace.rb +118 -0
- data/lib/graphql/tracing/platform_tracing.rb +46 -49
- data/lib/graphql/tracing/{prometheus_tracing → prometheus_trace}/graphql_collector.rb +6 -2
- data/lib/graphql/tracing/prometheus_trace.rb +94 -0
- data/lib/graphql/tracing/prometheus_tracing.rb +5 -3
- data/lib/graphql/tracing/scout_trace.rb +74 -0
- data/lib/graphql/tracing/scout_tracing.rb +2 -0
- data/lib/graphql/tracing/sentry_trace.rb +114 -0
- data/lib/graphql/tracing/statsd_trace.rb +58 -0
- data/lib/graphql/tracing/statsd_tracing.rb +2 -0
- data/lib/graphql/tracing/trace.rb +79 -0
- data/lib/graphql/tracing.rb +29 -52
- data/lib/graphql/type_kinds.rb +7 -4
- data/lib/graphql/types/big_int.rb +5 -1
- data/lib/graphql/types/int.rb +1 -1
- data/lib/graphql/types/iso_8601_date.rb +17 -6
- data/lib/graphql/types/iso_8601_date_time.rb +12 -1
- data/lib/graphql/types/iso_8601_duration.rb +77 -0
- data/lib/graphql/types/relay/base_connection.rb +16 -6
- data/lib/graphql/types/relay/connection_behaviors.rb +92 -32
- data/lib/graphql/types/relay/edge_behaviors.rb +46 -7
- data/lib/graphql/types/relay/has_node_field.rb +2 -2
- data/lib/graphql/types/relay/has_nodes_field.rb +2 -2
- data/lib/graphql/types/relay/node_behaviors.rb +12 -2
- data/lib/graphql/types/relay/page_info_behaviors.rb +11 -2
- data/lib/graphql/types/relay.rb +0 -3
- data/lib/graphql/types/string.rb +2 -2
- data/lib/graphql/types.rb +18 -10
- data/lib/graphql/unauthorized_enum_value_error.rb +13 -0
- data/lib/graphql/unauthorized_error.rb +1 -1
- data/lib/graphql/version.rb +1 -1
- data/lib/graphql.rb +82 -137
- data/readme.md +13 -6
- metadata +127 -186
- data/lib/graphql/analysis/analyze_query.rb +0 -98
- data/lib/graphql/analysis/ast/analyzer.rb +0 -84
- data/lib/graphql/analysis/ast/field_usage.rb +0 -28
- data/lib/graphql/analysis/ast/max_query_complexity.rb +0 -23
- data/lib/graphql/analysis/ast/max_query_depth.rb +0 -22
- data/lib/graphql/analysis/ast/query_complexity.rb +0 -234
- data/lib/graphql/analysis/ast/query_depth.rb +0 -56
- data/lib/graphql/analysis/ast/visitor.rb +0 -268
- data/lib/graphql/analysis/ast.rb +0 -91
- data/lib/graphql/analysis/reducer_state.rb +0 -48
- data/lib/graphql/argument.rb +0 -131
- data/lib/graphql/authorization.rb +0 -82
- data/lib/graphql/backtrace/legacy_tracer.rb +0 -56
- data/lib/graphql/backwards_compatibility.rb +0 -61
- data/lib/graphql/base_type.rb +0 -230
- data/lib/graphql/boolean_type.rb +0 -2
- data/lib/graphql/compatibility/execution_specification/counter_schema.rb +0 -53
- data/lib/graphql/compatibility/execution_specification/specification_schema.rb +0 -200
- data/lib/graphql/compatibility/execution_specification.rb +0 -436
- data/lib/graphql/compatibility/lazy_execution_specification/lazy_schema.rb +0 -111
- data/lib/graphql/compatibility/lazy_execution_specification.rb +0 -215
- data/lib/graphql/compatibility/query_parser_specification/parse_error_specification.rb +0 -87
- data/lib/graphql/compatibility/query_parser_specification/query_assertions.rb +0 -79
- data/lib/graphql/compatibility/query_parser_specification.rb +0 -266
- data/lib/graphql/compatibility/schema_parser_specification.rb +0 -682
- data/lib/graphql/compatibility.rb +0 -5
- data/lib/graphql/define/assign_argument.rb +0 -12
- data/lib/graphql/define/assign_connection.rb +0 -13
- data/lib/graphql/define/assign_enum_value.rb +0 -18
- data/lib/graphql/define/assign_global_id_field.rb +0 -11
- data/lib/graphql/define/assign_mutation_function.rb +0 -34
- data/lib/graphql/define/assign_object_field.rb +0 -42
- data/lib/graphql/define/defined_object_proxy.rb +0 -53
- data/lib/graphql/define/instance_definable.rb +0 -240
- data/lib/graphql/define/no_definition_error.rb +0 -7
- data/lib/graphql/define/non_null_with_bang.rb +0 -16
- data/lib/graphql/define/type_definer.rb +0 -31
- data/lib/graphql/define.rb +0 -31
- data/lib/graphql/deprecated_dsl.rb +0 -47
- data/lib/graphql/deprecation.rb +0 -13
- data/lib/graphql/directive/deprecated_directive.rb +0 -2
- data/lib/graphql/directive/include_directive.rb +0 -2
- data/lib/graphql/directive/skip_directive.rb +0 -2
- data/lib/graphql/directive.rb +0 -111
- data/lib/graphql/enum_type.rb +0 -129
- data/lib/graphql/execution/execute.rb +0 -333
- data/lib/graphql/execution/flatten.rb +0 -40
- data/lib/graphql/execution/lazy/resolve.rb +0 -91
- data/lib/graphql/execution/typecast.rb +0 -50
- data/lib/graphql/field/resolve.rb +0 -59
- data/lib/graphql/field.rb +0 -226
- data/lib/graphql/filter.rb +0 -53
- data/lib/graphql/float_type.rb +0 -2
- data/lib/graphql/function.rb +0 -128
- data/lib/graphql/id_type.rb +0 -2
- data/lib/graphql/input_object_type.rb +0 -138
- data/lib/graphql/int_type.rb +0 -2
- data/lib/graphql/interface_type.rb +0 -72
- data/lib/graphql/internal_representation/document.rb +0 -27
- data/lib/graphql/internal_representation/node.rb +0 -206
- data/lib/graphql/internal_representation/print.rb +0 -51
- data/lib/graphql/internal_representation/rewrite.rb +0 -184
- data/lib/graphql/internal_representation/scope.rb +0 -88
- data/lib/graphql/internal_representation/visit.rb +0 -36
- data/lib/graphql/internal_representation.rb +0 -7
- data/lib/graphql/language/lexer.rl +0 -262
- data/lib/graphql/language/parser.y +0 -543
- data/lib/graphql/language/token.rb +0 -38
- data/lib/graphql/list_type.rb +0 -80
- data/lib/graphql/non_null_type.rb +0 -71
- data/lib/graphql/object_type.rb +0 -130
- data/lib/graphql/query/arguments.rb +0 -189
- data/lib/graphql/query/arguments_cache.rb +0 -24
- data/lib/graphql/query/executor.rb +0 -52
- data/lib/graphql/query/literal_input.rb +0 -136
- data/lib/graphql/query/serial_execution/field_resolution.rb +0 -92
- data/lib/graphql/query/serial_execution/operation_resolution.rb +0 -19
- data/lib/graphql/query/serial_execution/selection_resolution.rb +0 -23
- data/lib/graphql/query/serial_execution/value_resolution.rb +0 -87
- data/lib/graphql/query/serial_execution.rb +0 -40
- data/lib/graphql/relay/array_connection.rb +0 -83
- data/lib/graphql/relay/base_connection.rb +0 -189
- data/lib/graphql/relay/connection_instrumentation.rb +0 -54
- data/lib/graphql/relay/connection_resolve.rb +0 -43
- data/lib/graphql/relay/connection_type.rb +0 -41
- data/lib/graphql/relay/edge.rb +0 -27
- data/lib/graphql/relay/edge_type.rb +0 -19
- data/lib/graphql/relay/edges_instrumentation.rb +0 -40
- data/lib/graphql/relay/global_id_resolve.rb +0 -18
- data/lib/graphql/relay/mongo_relation_connection.rb +0 -50
- data/lib/graphql/relay/mutation/instrumentation.rb +0 -23
- data/lib/graphql/relay/mutation/resolve.rb +0 -56
- data/lib/graphql/relay/mutation/result.rb +0 -38
- data/lib/graphql/relay/mutation.rb +0 -106
- data/lib/graphql/relay/node.rb +0 -39
- data/lib/graphql/relay/page_info.rb +0 -7
- data/lib/graphql/relay/relation_connection.rb +0 -188
- data/lib/graphql/relay/type_extensions.rb +0 -32
- data/lib/graphql/scalar_type.rb +0 -91
- data/lib/graphql/schema/base_64_bp.rb +0 -26
- data/lib/graphql/schema/catchall_middleware.rb +0 -35
- data/lib/graphql/schema/default_parse_error.rb +0 -10
- data/lib/graphql/schema/default_type_error.rb +0 -17
- data/lib/graphql/schema/invalid_type_error.rb +0 -7
- data/lib/graphql/schema/member/accepts_definition.rb +0 -152
- data/lib/graphql/schema/member/cached_graphql_definition.rb +0 -31
- data/lib/graphql/schema/member/instrumentation.rb +0 -131
- data/lib/graphql/schema/middleware_chain.rb +0 -82
- data/lib/graphql/schema/possible_types.rb +0 -44
- data/lib/graphql/schema/rescue_middleware.rb +0 -60
- data/lib/graphql/schema/timeout_middleware.rb +0 -88
- data/lib/graphql/schema/traversal.rb +0 -228
- data/lib/graphql/schema/validation.rb +0 -313
- data/lib/graphql/static_validation/default_visitor.rb +0 -15
- data/lib/graphql/static_validation/no_validate_visitor.rb +0 -10
- data/lib/graphql/static_validation/type_stack.rb +0 -216
- data/lib/graphql/string_type.rb +0 -2
- data/lib/graphql/subscriptions/instrumentation.rb +0 -79
- data/lib/graphql/subscriptions/subscription_root.rb +0 -76
- data/lib/graphql/tracing/skylight_tracing.rb +0 -70
- data/lib/graphql/types/relay/default_relay.rb +0 -27
- data/lib/graphql/types/relay/node_field.rb +0 -25
- data/lib/graphql/types/relay/nodes_field.rb +0 -27
- data/lib/graphql/union_type.rb +0 -115
- data/lib/graphql/upgrader/member.rb +0 -937
- data/lib/graphql/upgrader/schema.rb +0 -38
@@ -2,6 +2,7 @@
|
|
2
2
|
module GraphQL
|
3
3
|
module Language
|
4
4
|
module Nodes
|
5
|
+
NONE = GraphQL::EmptyObjects::EMPTY_ARRAY
|
5
6
|
# {AbstractNode} is the base class for all nodes in a GraphQL AST.
|
6
7
|
#
|
7
8
|
# It provides some APIs for working with ASTs:
|
@@ -9,32 +10,39 @@ module GraphQL
|
|
9
10
|
# - `scalars` returns all scalar (Ruby) values attached to this one. Used for comparing nodes.
|
10
11
|
# - `to_query_string` turns an AST node into a GraphQL string
|
11
12
|
class AbstractNode
|
13
|
+
|
12
14
|
module DefinitionNode
|
13
15
|
# This AST node's {#line} returns the first line, which may be the description.
|
14
16
|
# @return [Integer] The first line of the definition (not the description)
|
15
17
|
attr_reader :definition_line
|
16
18
|
|
17
|
-
def initialize(
|
18
|
-
@definition_line =
|
19
|
-
super(
|
19
|
+
def initialize(definition_line: nil, **_rest)
|
20
|
+
@definition_line = definition_line
|
21
|
+
super(**_rest)
|
20
22
|
end
|
21
|
-
end
|
22
23
|
|
23
|
-
|
24
|
+
def marshal_dump
|
25
|
+
super << @definition_line
|
26
|
+
end
|
24
27
|
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
def initialize(options = {})
|
29
|
-
if options.key?(:position_source)
|
30
|
-
position_source = options.delete(:position_source)
|
31
|
-
@line = position_source.line
|
32
|
-
@col = position_source.col
|
28
|
+
def marshal_load(values)
|
29
|
+
@definition_line = values.pop
|
30
|
+
super
|
33
31
|
end
|
32
|
+
end
|
33
|
+
|
34
|
+
attr_reader :filename
|
35
|
+
|
36
|
+
def line
|
37
|
+
@line ||= @source&.line_at(@pos)
|
38
|
+
end
|
34
39
|
|
35
|
-
|
40
|
+
def col
|
41
|
+
@col ||= @source&.column_at(@pos)
|
42
|
+
end
|
36
43
|
|
37
|
-
|
44
|
+
def definition_line
|
45
|
+
@definition_line ||= (@source && @definition_pos) ? @source.line_at(@definition_pos) : nil
|
38
46
|
end
|
39
47
|
|
40
48
|
# Value equality
|
@@ -46,7 +54,7 @@ module GraphQL
|
|
46
54
|
other.children == self.children
|
47
55
|
end
|
48
56
|
|
49
|
-
NO_CHILDREN =
|
57
|
+
NO_CHILDREN = GraphQL::EmptyObjects::EMPTY_ARRAY
|
50
58
|
|
51
59
|
# @return [Array<GraphQL::Language::Nodes::AbstractNode>] all nodes in the tree below this one
|
52
60
|
def children
|
@@ -141,18 +149,26 @@ module GraphQL
|
|
141
149
|
.gsub(/([a-z])([A-Z])/,'\1_\2') # insert underscores
|
142
150
|
.downcase # remove caps
|
143
151
|
|
144
|
-
child_class.module_eval <<-RUBY
|
152
|
+
child_class.module_eval <<-RUBY, __FILE__, __LINE__
|
145
153
|
def visit_method
|
146
154
|
:on_#{name_underscored}
|
147
155
|
end
|
148
156
|
|
149
157
|
class << self
|
150
158
|
attr_accessor :children_method_name
|
159
|
+
|
160
|
+
def visit_method
|
161
|
+
:on_#{name_underscored}
|
162
|
+
end
|
151
163
|
end
|
152
164
|
self.children_method_name = :#{name_underscored}s
|
153
165
|
RUBY
|
154
166
|
end
|
155
167
|
|
168
|
+
def children_of_type
|
169
|
+
@children_methods
|
170
|
+
end
|
171
|
+
|
156
172
|
private
|
157
173
|
|
158
174
|
# Name accessors which return lists of nodes,
|
@@ -183,8 +199,8 @@ module GraphQL
|
|
183
199
|
module_eval <<-RUBY, __FILE__, __LINE__
|
184
200
|
# Singular method: create a node with these options
|
185
201
|
# and return a new `self` which includes that node in this list.
|
186
|
-
def merge_#{method_name.to_s.sub(/s$/, "")}(node_opts)
|
187
|
-
merge(#{method_name}: #{method_name} + [#{node_type.name}.new(node_opts)])
|
202
|
+
def merge_#{method_name.to_s.sub(/s$/, "")}(**node_opts)
|
203
|
+
merge(#{method_name}: #{method_name} + [#{node_type.name}.new(**node_opts)])
|
188
204
|
end
|
189
205
|
RUBY
|
190
206
|
end
|
@@ -197,20 +213,30 @@ module GraphQL
|
|
197
213
|
else
|
198
214
|
module_eval <<-RUBY, __FILE__, __LINE__
|
199
215
|
def children
|
200
|
-
@children ||=
|
216
|
+
@children ||= begin
|
217
|
+
if #{children_of_type.keys.map { |k| "@#{k}.any?" }.join(" || ")}
|
218
|
+
new_children = []
|
219
|
+
#{children_of_type.keys.map { |k| "new_children.concat(@#{k})" }.join("; ")}
|
220
|
+
new_children.freeze
|
221
|
+
new_children
|
222
|
+
else
|
223
|
+
NO_CHILDREN
|
224
|
+
end
|
225
|
+
end
|
201
226
|
end
|
202
227
|
RUBY
|
203
228
|
end
|
204
229
|
end
|
205
230
|
|
206
231
|
if defined?(@scalar_methods)
|
207
|
-
if
|
208
|
-
|
232
|
+
if !@initialize_was_generated
|
233
|
+
@initialize_was_generated = true
|
234
|
+
generate_initialize
|
209
235
|
else
|
210
236
|
# This method was defined manually
|
211
237
|
end
|
212
238
|
else
|
213
|
-
raise "Can't
|
239
|
+
raise "Can't generate_initialize because scalar_methods wasn't called; call it before children_methods"
|
214
240
|
end
|
215
241
|
end
|
216
242
|
|
@@ -239,31 +265,81 @@ module GraphQL
|
|
239
265
|
end
|
240
266
|
end
|
241
267
|
|
242
|
-
|
268
|
+
DEFAULT_INITIALIZE_OPTIONS = [
|
269
|
+
"line: nil",
|
270
|
+
"col: nil",
|
271
|
+
"pos: nil",
|
272
|
+
"filename: nil",
|
273
|
+
"source: nil"
|
274
|
+
]
|
275
|
+
|
276
|
+
IGNORED_MARSHALLING_KEYWORDS = [:comment]
|
277
|
+
|
278
|
+
def generate_initialize
|
279
|
+
return if method_defined?(:marshal_load, false) # checking for `:initialize` doesn't work right
|
280
|
+
|
243
281
|
scalar_method_names = @scalar_methods
|
244
282
|
# TODO: These probably should be scalar methods, but `types` returns an array
|
245
|
-
[:types, :description].each do |extra_method|
|
283
|
+
[:types, :description, :comment].each do |extra_method|
|
246
284
|
if method_defined?(extra_method)
|
247
285
|
scalar_method_names += [extra_method]
|
248
286
|
end
|
249
287
|
end
|
250
288
|
|
251
|
-
|
289
|
+
children_method_names = @children_methods.keys
|
290
|
+
|
291
|
+
all_method_names = scalar_method_names + children_method_names
|
252
292
|
if all_method_names.include?(:alias)
|
253
293
|
# Rather than complicating this special case,
|
254
294
|
# let it be overridden (in field)
|
255
295
|
return
|
256
296
|
else
|
257
297
|
arguments = scalar_method_names.map { |m| "#{m}: nil"} +
|
258
|
-
|
298
|
+
children_method_names.map { |m| "#{m}: NO_CHILDREN" } +
|
299
|
+
DEFAULT_INITIALIZE_OPTIONS
|
259
300
|
|
260
301
|
assignments = scalar_method_names.map { |m| "@#{m} = #{m}"} +
|
261
|
-
|
302
|
+
children_method_names.map { |m| "@#{m} = #{m}.freeze" }
|
303
|
+
|
304
|
+
if name.end_with?("Definition") && name != "FragmentDefinition"
|
305
|
+
arguments << "definition_pos: nil"
|
306
|
+
assignments << "@definition_pos = definition_pos"
|
307
|
+
end
|
308
|
+
|
309
|
+
keywords = scalar_method_names.map { |m| "#{m}: #{m}"} +
|
310
|
+
children_method_names.map { |m| "#{m}: #{m}" }
|
311
|
+
|
312
|
+
ignored_keywords = IGNORED_MARSHALLING_KEYWORDS.map do |keyword|
|
313
|
+
"#{keyword.to_s}: nil"
|
314
|
+
end
|
315
|
+
|
316
|
+
marshalling_method_names = all_method_names - IGNORED_MARSHALLING_KEYWORDS
|
262
317
|
|
263
318
|
module_eval <<-RUBY, __FILE__, __LINE__
|
264
|
-
def
|
319
|
+
def initialize(#{arguments.join(", ")})
|
320
|
+
@line = line
|
321
|
+
@col = col
|
322
|
+
@pos = pos
|
323
|
+
@filename = filename
|
324
|
+
@source = source
|
265
325
|
#{assignments.join("\n")}
|
266
326
|
end
|
327
|
+
|
328
|
+
def self.from_a(filename, line, col, #{marshalling_method_names.join(", ")}, #{ignored_keywords.join(", ")})
|
329
|
+
self.new(filename: filename, line: line, col: col, #{keywords.join(", ")})
|
330
|
+
end
|
331
|
+
|
332
|
+
def marshal_dump
|
333
|
+
[
|
334
|
+
line, col, # use methods here to force them to be calculated
|
335
|
+
@filename,
|
336
|
+
#{marshalling_method_names.map { |n| "@#{n}," }.join}
|
337
|
+
]
|
338
|
+
end
|
339
|
+
|
340
|
+
def marshal_load(values)
|
341
|
+
@line, @col, @filename #{marshalling_method_names.map { |n| ", @#{n}"}.join} = values
|
342
|
+
end
|
267
343
|
RUBY
|
268
344
|
end
|
269
345
|
end
|
@@ -291,10 +367,10 @@ module GraphQL
|
|
291
367
|
# @return [String] the key for this argument
|
292
368
|
|
293
369
|
# @!attribute value
|
294
|
-
# @return [String, Float, Integer, Boolean, Array, InputObject] The value passed for this key
|
370
|
+
# @return [String, Float, Integer, Boolean, Array, InputObject, VariableIdentifier] The value passed for this key
|
295
371
|
|
296
372
|
def children
|
297
|
-
@children ||= Array(value).flatten.select { |v| v.is_a?(AbstractNode) }
|
373
|
+
@children ||= Array(value).flatten.tap { _1.select! { |v| v.is_a?(AbstractNode) } }
|
298
374
|
end
|
299
375
|
end
|
300
376
|
|
@@ -307,42 +383,13 @@ module GraphQL
|
|
307
383
|
end
|
308
384
|
|
309
385
|
class DirectiveDefinition < AbstractNode
|
310
|
-
include DefinitionNode
|
311
386
|
attr_reader :description
|
312
|
-
scalar_methods :name
|
387
|
+
scalar_methods :name, :repeatable
|
313
388
|
children_methods(
|
314
|
-
locations: Nodes::DirectiveLocation,
|
315
389
|
arguments: Nodes::Argument,
|
390
|
+
locations: Nodes::DirectiveLocation,
|
316
391
|
)
|
317
|
-
|
318
|
-
|
319
|
-
# This is the AST root for normal queries
|
320
|
-
#
|
321
|
-
# @example Deriving a document by parsing a string
|
322
|
-
# document = GraphQL.parse(query_string)
|
323
|
-
#
|
324
|
-
# @example Creating a string from a document
|
325
|
-
# document.to_query_string
|
326
|
-
# # { ... }
|
327
|
-
#
|
328
|
-
# @example Creating a custom string from a document
|
329
|
-
# class VariableScrubber < GraphQL::Language::Printer
|
330
|
-
# def print_argument(arg)
|
331
|
-
# "#{arg.name}: <HIDDEN>"
|
332
|
-
# end
|
333
|
-
# end
|
334
|
-
#
|
335
|
-
# document.to_query_string(printer: VariableSrubber.new)
|
336
|
-
#
|
337
|
-
class Document < AbstractNode
|
338
|
-
scalar_methods false
|
339
|
-
children_methods(definitions: nil)
|
340
|
-
# @!attribute definitions
|
341
|
-
# @return [Array<OperationDefinition, FragmentDefinition>] top-level GraphQL units: operations or fragments
|
342
|
-
|
343
|
-
def slice_definition(name)
|
344
|
-
GraphQL::Language::DefinitionSlice.slice(self, name)
|
345
|
-
end
|
392
|
+
self.children_method_name = :definitions
|
346
393
|
end
|
347
394
|
|
348
395
|
# An enum value. The string is available as {#name}.
|
@@ -355,7 +402,31 @@ module GraphQL
|
|
355
402
|
|
356
403
|
# A single selection in a GraphQL query.
|
357
404
|
class Field < AbstractNode
|
358
|
-
NONE
|
405
|
+
def initialize(name: nil, arguments: NONE, directives: NONE, selections: NONE, field_alias: nil, line: nil, col: nil, pos: nil, filename: nil, source: nil)
|
406
|
+
@name = name
|
407
|
+
@arguments = arguments || NONE
|
408
|
+
@directives = directives || NONE
|
409
|
+
@selections = selections || NONE
|
410
|
+
# oops, alias is a keyword:
|
411
|
+
@alias = field_alias
|
412
|
+
@line = line
|
413
|
+
@col = col
|
414
|
+
@pos = pos
|
415
|
+
@filename = filename
|
416
|
+
@source = source
|
417
|
+
end
|
418
|
+
|
419
|
+
def self.from_a(filename, line, col, field_alias, name, arguments, directives, selections) # rubocop:disable Metrics/ParameterLists
|
420
|
+
self.new(filename: filename, line: line, col: col, field_alias: field_alias, name: name, arguments: arguments, directives: directives, selections: selections)
|
421
|
+
end
|
422
|
+
|
423
|
+
def marshal_dump
|
424
|
+
[line, col, @filename, @name, @arguments, @directives, @selections, @alias]
|
425
|
+
end
|
426
|
+
|
427
|
+
def marshal_load(values)
|
428
|
+
@line, @col, @filename, @name, @arguments, @directives, @selections, @alias = values
|
429
|
+
end
|
359
430
|
|
360
431
|
scalar_methods :name, :alias
|
361
432
|
children_methods({
|
@@ -364,34 +435,34 @@ module GraphQL
|
|
364
435
|
directives: GraphQL::Language::Nodes::Directive,
|
365
436
|
})
|
366
437
|
|
367
|
-
# @!attribute selections
|
368
|
-
# @return [Array<Nodes::Field>] Selections on this object (or empty array if this is a scalar field)
|
369
|
-
|
370
|
-
def initialize_node(attributes)
|
371
|
-
@name = attributes[:name]
|
372
|
-
@arguments = attributes[:arguments] || NONE
|
373
|
-
@directives = attributes[:directives] || NONE
|
374
|
-
@selections = attributes[:selections] || NONE
|
375
|
-
# oops, alias is a keyword:
|
376
|
-
@alias = attributes[:alias]
|
377
|
-
end
|
378
|
-
|
379
438
|
# Override this because default is `:fields`
|
380
439
|
self.children_method_name = :selections
|
381
440
|
end
|
382
441
|
|
383
442
|
# A reusable fragment, defined at document-level.
|
384
443
|
class FragmentDefinition < AbstractNode
|
385
|
-
|
386
|
-
# @return [String] the identifier for this fragment, which may be applied with `...#{name}`
|
387
|
-
|
388
|
-
# @!attribute type
|
389
|
-
# @return [String] the type condition for this fragment (name of type which it may apply to)
|
390
|
-
def initialize_node(name: nil, type: nil, directives: [], selections: [])
|
444
|
+
def initialize(name: nil, type: nil, directives: NONE, selections: NONE, filename: nil, pos: nil, source: nil, line: nil, col: nil)
|
391
445
|
@name = name
|
392
446
|
@type = type
|
393
447
|
@directives = directives
|
394
448
|
@selections = selections
|
449
|
+
@filename = filename
|
450
|
+
@pos = pos
|
451
|
+
@source = source
|
452
|
+
@line = line
|
453
|
+
@col = col
|
454
|
+
end
|
455
|
+
|
456
|
+
def self.from_a(filename, line, col, name, type, directives, selections)
|
457
|
+
self.new(filename: filename, line: line, col: col, name: name, type: type, directives: directives, selections: selections)
|
458
|
+
end
|
459
|
+
|
460
|
+
def marshal_dump
|
461
|
+
[line, col, @filename, @name, @type, @directives, @selections]
|
462
|
+
end
|
463
|
+
|
464
|
+
def marshal_load(values)
|
465
|
+
@line, @col, @filename, @name, @type, @directives, @selections = values
|
395
466
|
end
|
396
467
|
|
397
468
|
scalar_methods :name, :type
|
@@ -418,8 +489,8 @@ module GraphQL
|
|
418
489
|
class InlineFragment < AbstractNode
|
419
490
|
scalar_methods :type
|
420
491
|
children_methods({
|
421
|
-
selections: GraphQL::Language::Nodes::Field,
|
422
492
|
directives: GraphQL::Language::Nodes::Directive,
|
493
|
+
selections: GraphQL::Language::Nodes::Field,
|
423
494
|
})
|
424
495
|
|
425
496
|
self.children_method_name = :selections
|
@@ -467,7 +538,6 @@ module GraphQL
|
|
467
538
|
end
|
468
539
|
end
|
469
540
|
|
470
|
-
|
471
541
|
# A list type definition, denoted with `[...]` (used for variable type definitions)
|
472
542
|
class ListType < WrapperType
|
473
543
|
end
|
@@ -479,7 +549,7 @@ module GraphQL
|
|
479
549
|
# An operation-level query variable
|
480
550
|
class VariableDefinition < AbstractNode
|
481
551
|
scalar_methods :name, :type, :default_value
|
482
|
-
children_methods
|
552
|
+
children_methods(directives: Directive)
|
483
553
|
# @!attribute default_value
|
484
554
|
# @return [String, Integer, Float, Boolean, Array, NullValue] A Ruby value to use if no other value is provided
|
485
555
|
|
@@ -499,8 +569,8 @@ module GraphQL
|
|
499
569
|
scalar_methods :operation_type, :name
|
500
570
|
children_methods({
|
501
571
|
variables: GraphQL::Language::Nodes::VariableDefinition,
|
502
|
-
selections: GraphQL::Language::Nodes::Field,
|
503
572
|
directives: GraphQL::Language::Nodes::Directive,
|
573
|
+
selections: GraphQL::Language::Nodes::Field,
|
504
574
|
})
|
505
575
|
|
506
576
|
# @!attribute variables
|
@@ -518,6 +588,35 @@ module GraphQL
|
|
518
588
|
self.children_method_name = :definitions
|
519
589
|
end
|
520
590
|
|
591
|
+
# This is the AST root for normal queries
|
592
|
+
#
|
593
|
+
# @example Deriving a document by parsing a string
|
594
|
+
# document = GraphQL.parse(query_string)
|
595
|
+
#
|
596
|
+
# @example Creating a string from a document
|
597
|
+
# document.to_query_string
|
598
|
+
# # { ... }
|
599
|
+
#
|
600
|
+
# @example Creating a custom string from a document
|
601
|
+
# class VariableScrubber < GraphQL::Language::Printer
|
602
|
+
# def print_argument(arg)
|
603
|
+
# print_string("#{arg.name}: <HIDDEN>")
|
604
|
+
# end
|
605
|
+
# end
|
606
|
+
#
|
607
|
+
# document.to_query_string(printer: VariableScrubber.new)
|
608
|
+
#
|
609
|
+
class Document < AbstractNode
|
610
|
+
scalar_methods false
|
611
|
+
children_methods(definitions: nil)
|
612
|
+
# @!attribute definitions
|
613
|
+
# @return [Array<OperationDefinition, FragmentDefinition>] top-level GraphQL units: operations or fragments
|
614
|
+
|
615
|
+
def slice_definition(name)
|
616
|
+
GraphQL::Language::DefinitionSlice.slice(self, name)
|
617
|
+
end
|
618
|
+
end
|
619
|
+
|
521
620
|
# A type name, used for variable definitions
|
522
621
|
class TypeName < NameOnlyNode
|
523
622
|
end
|
@@ -528,7 +627,6 @@ module GraphQL
|
|
528
627
|
end
|
529
628
|
|
530
629
|
class SchemaDefinition < AbstractNode
|
531
|
-
include DefinitionNode
|
532
630
|
scalar_methods :query, :mutation, :subscription
|
533
631
|
children_methods({
|
534
632
|
directives: GraphQL::Language::Nodes::Directive,
|
@@ -545,8 +643,7 @@ module GraphQL
|
|
545
643
|
end
|
546
644
|
|
547
645
|
class ScalarTypeDefinition < AbstractNode
|
548
|
-
|
549
|
-
attr_reader :description
|
646
|
+
attr_reader :description, :comment
|
550
647
|
scalar_methods :name
|
551
648
|
children_methods({
|
552
649
|
directives: GraphQL::Language::Nodes::Directive,
|
@@ -563,8 +660,7 @@ module GraphQL
|
|
563
660
|
end
|
564
661
|
|
565
662
|
class InputValueDefinition < AbstractNode
|
566
|
-
|
567
|
-
attr_reader :description
|
663
|
+
attr_reader :description, :comment
|
568
664
|
scalar_methods :name, :type, :default_value
|
569
665
|
children_methods({
|
570
666
|
directives: GraphQL::Language::Nodes::Directive,
|
@@ -573,12 +669,11 @@ module GraphQL
|
|
573
669
|
end
|
574
670
|
|
575
671
|
class FieldDefinition < AbstractNode
|
576
|
-
|
577
|
-
attr_reader :description
|
672
|
+
attr_reader :description, :comment
|
578
673
|
scalar_methods :name, :type
|
579
674
|
children_methods({
|
580
|
-
directives: GraphQL::Language::Nodes::Directive,
|
581
675
|
arguments: GraphQL::Language::Nodes::InputValueDefinition,
|
676
|
+
directives: GraphQL::Language::Nodes::Directive,
|
582
677
|
})
|
583
678
|
self.children_method_name = :fields
|
584
679
|
|
@@ -594,8 +689,7 @@ module GraphQL
|
|
594
689
|
end
|
595
690
|
|
596
691
|
class ObjectTypeDefinition < AbstractNode
|
597
|
-
|
598
|
-
attr_reader :description
|
692
|
+
attr_reader :description, :comment
|
599
693
|
scalar_methods :name, :interfaces
|
600
694
|
children_methods({
|
601
695
|
directives: GraphQL::Language::Nodes::Directive,
|
@@ -614,10 +708,10 @@ module GraphQL
|
|
614
708
|
end
|
615
709
|
|
616
710
|
class InterfaceTypeDefinition < AbstractNode
|
617
|
-
|
618
|
-
attr_reader :description
|
711
|
+
attr_reader :description, :comment
|
619
712
|
scalar_methods :name
|
620
713
|
children_methods({
|
714
|
+
interfaces: GraphQL::Language::Nodes::TypeName,
|
621
715
|
directives: GraphQL::Language::Nodes::Directive,
|
622
716
|
fields: GraphQL::Language::Nodes::FieldDefinition,
|
623
717
|
})
|
@@ -627,6 +721,7 @@ module GraphQL
|
|
627
721
|
class InterfaceTypeExtension < AbstractNode
|
628
722
|
scalar_methods :name
|
629
723
|
children_methods({
|
724
|
+
interfaces: GraphQL::Language::Nodes::TypeName,
|
630
725
|
directives: GraphQL::Language::Nodes::Directive,
|
631
726
|
fields: GraphQL::Language::Nodes::FieldDefinition,
|
632
727
|
})
|
@@ -634,8 +729,7 @@ module GraphQL
|
|
634
729
|
end
|
635
730
|
|
636
731
|
class UnionTypeDefinition < AbstractNode
|
637
|
-
|
638
|
-
attr_reader :description, :types
|
732
|
+
attr_reader :description, :comment, :types
|
639
733
|
scalar_methods :name
|
640
734
|
children_methods({
|
641
735
|
directives: GraphQL::Language::Nodes::Directive,
|
@@ -653,8 +747,7 @@ module GraphQL
|
|
653
747
|
end
|
654
748
|
|
655
749
|
class EnumValueDefinition < AbstractNode
|
656
|
-
|
657
|
-
attr_reader :description
|
750
|
+
attr_reader :description, :comment
|
658
751
|
scalar_methods :name
|
659
752
|
children_methods({
|
660
753
|
directives: GraphQL::Language::Nodes::Directive,
|
@@ -663,8 +756,7 @@ module GraphQL
|
|
663
756
|
end
|
664
757
|
|
665
758
|
class EnumTypeDefinition < AbstractNode
|
666
|
-
|
667
|
-
attr_reader :description
|
759
|
+
attr_reader :description, :comment
|
668
760
|
scalar_methods :name
|
669
761
|
children_methods({
|
670
762
|
directives: GraphQL::Language::Nodes::Directive,
|
@@ -683,8 +775,7 @@ module GraphQL
|
|
683
775
|
end
|
684
776
|
|
685
777
|
class InputObjectTypeDefinition < AbstractNode
|
686
|
-
|
687
|
-
attr_reader :description
|
778
|
+
attr_reader :description, :comment
|
688
779
|
scalar_methods :name
|
689
780
|
children_methods({
|
690
781
|
directives: GraphQL::Language::Nodes::Directive,
|