graphql 1.13.24 → 2.5.11
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/templates/base_mutation.erb +2 -0
- data/lib/generators/graphql/install/templates/mutation_type.erb +2 -0
- data/lib/generators/graphql/install_generator.rb +50 -1
- data/lib/generators/graphql/mutation_delete_generator.rb +1 -1
- data/lib/generators/graphql/mutation_update_generator.rb +1 -1
- data/lib/generators/graphql/orm_mutations_base.rb +1 -1
- data/lib/generators/graphql/relay.rb +21 -18
- 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/graphql_controller.erb +2 -0
- data/lib/generators/graphql/templates/loader.erb +2 -0
- data/lib/generators/graphql/templates/mutation.erb +2 -0
- data/lib/generators/graphql/templates/node_type.erb +2 -0
- data/lib/generators/graphql/templates/query_type.erb +2 -0
- data/lib/generators/graphql/templates/schema.erb +8 -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 +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 +236 -61
- data/lib/graphql/analysis/query_depth.rb +38 -23
- data/lib/graphql/analysis/visitor.rb +280 -0
- data/lib/graphql/analysis.rb +93 -6
- data/lib/graphql/autoload.rb +38 -0
- data/lib/graphql/backtrace/table.rb +118 -73
- data/lib/graphql/backtrace.rb +2 -25
- data/lib/graphql/coercion_error.rb +1 -9
- 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 +101 -0
- data/lib/graphql/dataloader/null_dataloader.rb +11 -2
- data/lib/graphql/dataloader/request.rb +5 -0
- data/lib/graphql/dataloader/source.rb +103 -47
- data/lib/graphql/dataloader.rb +174 -148
- data/lib/graphql/dig.rb +3 -2
- data/lib/graphql/duration_encoding_error.rb +16 -0
- data/lib/graphql/execution/errors.rb +12 -82
- data/lib/graphql/execution/interpreter/argument_value.rb +5 -1
- data/lib/graphql/execution/interpreter/arguments.rb +1 -1
- data/lib/graphql/execution/interpreter/arguments_cache.rb +30 -35
- data/lib/graphql/execution/interpreter/resolve.rb +32 -2
- data/lib/graphql/execution/interpreter/runtime/graphql_result.rb +215 -0
- data/lib/graphql/execution/interpreter/runtime.rb +525 -502
- data/lib/graphql/execution/interpreter.rb +127 -81
- data/lib/graphql/execution/lazy.rb +7 -21
- data/lib/graphql/execution/lookahead.rb +133 -55
- data/lib/graphql/execution/multiplex.rb +6 -176
- data/lib/graphql/execution.rb +11 -4
- data/lib/graphql/introspection/directive_location_enum.rb +1 -1
- data/lib/graphql/introspection/directive_type.rb +1 -1
- data/lib/graphql/introspection/dynamic_fields.rb +3 -8
- data/lib/graphql/introspection/entry_points.rb +10 -17
- data/lib/graphql/introspection/field_type.rb +1 -1
- data/lib/graphql/introspection/schema_type.rb +8 -11
- data/lib/graphql/introspection/type_type.rb +13 -6
- data/lib/graphql/introspection.rb +4 -3
- data/lib/graphql/invalid_name_error.rb +1 -1
- data/lib/graphql/invalid_null_error.rb +20 -17
- data/lib/graphql/language/block_string.rb +34 -18
- 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 +114 -80
- data/lib/graphql/language/lexer.rb +375 -1489
- data/lib/graphql/language/nodes.rb +189 -104
- data/lib/graphql/language/parser.rb +807 -1941
- data/lib/graphql/language/printer.rb +366 -163
- data/lib/graphql/language/sanitized_printer.rb +21 -23
- data/lib/graphql/language/static_visitor.rb +171 -0
- data/lib/graphql/language/visitor.rb +189 -138
- data/lib/graphql/language.rb +62 -1
- data/lib/graphql/load_application_object_failed_error.rb +5 -1
- data/lib/graphql/pagination/active_record_relation_connection.rb +0 -8
- data/lib/graphql/pagination/array_connection.rb +8 -6
- data/lib/graphql/pagination/connection.rb +61 -7
- data/lib/graphql/pagination/connections.rb +3 -28
- data/lib/graphql/pagination/mongoid_relation_connection.rb +1 -2
- data/lib/graphql/pagination/relation_connection.rb +2 -0
- data/lib/graphql/query/context/scoped_context.rb +101 -0
- data/lib/graphql/query/context.rb +131 -225
- data/lib/graphql/query/input_validation_result.rb +1 -1
- data/lib/graphql/query/null_context.rb +11 -33
- data/lib/graphql/query/partial.rb +179 -0
- data/lib/graphql/query/validation_pipeline.rb +14 -37
- data/lib/graphql/query/variable_validation_error.rb +1 -1
- data/lib/graphql/query/variables.rb +6 -19
- data/lib/graphql/query.rb +162 -98
- 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 -20
- data/lib/graphql/relay.rb +0 -15
- 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 +70 -33
- data/lib/graphql/schema/always_visible.rb +15 -0
- data/lib/graphql/schema/argument.rb +104 -59
- data/lib/graphql/schema/base_64_encoder.rb +3 -5
- data/lib/graphql/schema/build_from_definition.rb +154 -74
- data/lib/graphql/schema/directive/flagged.rb +4 -2
- data/lib/graphql/schema/directive/one_of.rb +24 -0
- data/lib/graphql/schema/directive/specified_by.rb +14 -0
- data/lib/graphql/schema/directive/transform.rb +1 -1
- data/lib/graphql/schema/directive.rb +47 -24
- data/lib/graphql/schema/enum.rb +137 -65
- data/lib/graphql/schema/enum_value.rb +11 -26
- data/lib/graphql/schema/field/connection_extension.rb +6 -16
- data/lib/graphql/schema/field/scope_extension.rb +8 -1
- data/lib/graphql/schema/field.rb +399 -404
- data/lib/graphql/schema/field_extension.rb +2 -5
- data/lib/graphql/schema/find_inherited_value.rb +2 -7
- data/lib/graphql/schema/has_single_input_argument.rb +160 -0
- data/lib/graphql/schema/input_object.rb +144 -99
- data/lib/graphql/schema/interface.rb +34 -51
- 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 +3 -9
- data/lib/graphql/schema/loader.rb +4 -6
- data/lib/graphql/schema/member/base_dsl_methods.rb +32 -18
- data/lib/graphql/schema/member/build_type.rb +15 -9
- data/lib/graphql/schema/member/has_arguments.rb +192 -96
- data/lib/graphql/schema/member/has_ast_node.rb +12 -0
- data/lib/graphql/schema/member/has_dataloader.rb +62 -0
- data/lib/graphql/schema/member/has_deprecation_reason.rb +18 -4
- data/lib/graphql/schema/member/has_directives.rb +81 -61
- data/lib/graphql/schema/member/has_fields.rb +119 -39
- data/lib/graphql/schema/member/has_interfaces.rb +66 -23
- 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 +32 -2
- data/lib/graphql/schema/member/validates_input.rb +4 -4
- data/lib/graphql/schema/member.rb +1 -6
- data/lib/graphql/schema/mutation.rb +7 -9
- data/lib/graphql/schema/non_null.rb +1 -7
- data/lib/graphql/schema/object.rb +42 -49
- data/lib/graphql/schema/printer.rb +12 -8
- data/lib/graphql/schema/ractor_shareable.rb +79 -0
- data/lib/graphql/schema/relay_classic_mutation.rb +12 -124
- data/lib/graphql/schema/resolver/has_payload_type.rb +20 -10
- data/lib/graphql/schema/resolver.rb +96 -81
- data/lib/graphql/schema/scalar.rb +10 -30
- data/lib/graphql/schema/subscription.rb +60 -14
- data/lib/graphql/schema/timeout.rb +44 -31
- data/lib/graphql/schema/type_expression.rb +2 -2
- data/lib/graphql/schema/type_membership.rb +3 -0
- data/lib/graphql/schema/union.rb +12 -19
- 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/required_validator.rb +60 -10
- data/lib/graphql/schema/validator.rb +5 -3
- 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 +318 -94
- data/lib/graphql/schema/wrapper.rb +0 -5
- data/lib/graphql/schema.rb +1148 -1085
- data/lib/graphql/static_validation/all_rules.rb +4 -3
- data/lib/graphql/static_validation/base_visitor.rb +11 -27
- data/lib/graphql/static_validation/definition_dependencies.rb +7 -1
- data/lib/graphql/static_validation/error.rb +2 -2
- 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 +3 -2
- data/lib/graphql/static_validation/rules/directives_are_defined.rb +13 -7
- data/lib/graphql/static_validation/rules/directives_are_in_valid_locations.rb +14 -12
- 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 +48 -6
- data/lib/graphql/static_validation/rules/fields_will_merge.rb +90 -27
- 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/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 +1 -1
- data/lib/graphql/static_validation/rules/required_arguments_are_present.rb +5 -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_and_single_subscription_selection.rb +26 -0
- data/lib/graphql/static_validation/rules/unique_directives_per_location.rb +19 -9
- 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 +21 -5
- data/lib/graphql/static_validation/validator.rb +12 -26
- data/lib/graphql/static_validation.rb +0 -3
- data/lib/graphql/subscriptions/action_cable_subscriptions.rb +14 -6
- 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 +24 -12
- data/lib/graphql/subscriptions/serialize.rb +3 -1
- data/lib/graphql/subscriptions.rb +48 -32
- data/lib/graphql/testing/helpers.rb +158 -0
- data/lib/graphql/testing.rb +2 -0
- data/lib/graphql/tracing/active_support_notifications_trace.rb +27 -0
- data/lib/graphql/tracing/active_support_notifications_tracing.rb +1 -1
- data/lib/graphql/tracing/appoptics_trace.rb +259 -0
- data/lib/graphql/tracing/appoptics_tracing.rb +9 -2
- data/lib/graphql/tracing/appsignal_trace.rb +54 -0
- 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 +71 -0
- data/lib/graphql/tracing/data_dog_tracing.rb +3 -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 +93 -0
- 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/monitor_trace.rb +283 -0
- data/lib/graphql/tracing/new_relic_trace.rb +68 -0
- data/lib/graphql/tracing/new_relic_tracing.rb +2 -0
- data/lib/graphql/tracing/notifications_trace.rb +195 -0
- 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 +734 -0
- data/lib/graphql/tracing/platform_trace.rb +123 -0
- data/lib/graphql/tracing/platform_tracing.rb +28 -41
- data/lib/graphql/tracing/{prometheus_tracing → prometheus_trace}/graphql_collector.rb +6 -2
- data/lib/graphql/tracing/prometheus_trace.rb +93 -0
- data/lib/graphql/tracing/prometheus_tracing.rb +5 -3
- data/lib/graphql/tracing/scout_trace.rb +49 -0
- data/lib/graphql/tracing/scout_tracing.rb +2 -0
- data/lib/graphql/tracing/sentry_trace.rb +80 -0
- data/lib/graphql/tracing/statsd_trace.rb +48 -0
- data/lib/graphql/tracing/statsd_tracing.rb +2 -0
- data/lib/graphql/tracing/trace.rb +186 -0
- data/lib/graphql/tracing.rb +32 -52
- data/lib/graphql/type_kinds.rb +8 -4
- data/lib/graphql/types/iso_8601_date.rb +4 -1
- data/lib/graphql/types/iso_8601_date_time.rb +4 -0
- 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 +65 -23
- data/lib/graphql/types/relay/edge_behaviors.rb +33 -5
- 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 +1 -1
- data/lib/graphql/types.rb +18 -10
- data/lib/graphql/unauthorized_enum_value_error.rb +13 -0
- data/lib/graphql/version.rb +1 -1
- data/lib/graphql.rb +76 -123
- data/readme.md +13 -3
- metadata +225 -142
- 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 -55
- 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 -230
- data/lib/graphql/analysis/ast/query_depth.rb +0 -56
- data/lib/graphql/analysis/ast/visitor.rb +0 -269
- 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/inspect_result.rb +0 -50
- data/lib/graphql/backtrace/legacy_tracer.rb +0 -56
- data/lib/graphql/backtrace/tracer.rb +0 -81
- data/lib/graphql/backwards_compatibility.rb +0 -61
- data/lib/graphql/base_type.rb +0 -232
- 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 -255
- 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 -55
- data/lib/graphql/deprecation.rb +0 -9
- 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 -107
- data/lib/graphql/enum_type.rb +0 -133
- 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 -260
- data/lib/graphql/language/parser.y +0 -550
- data/lib/graphql/language/token.rb +0 -34
- 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 -54
- 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 -39
- data/lib/graphql/relay/global_id_resolve.rb +0 -17
- 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 -164
- data/lib/graphql/schema/member/cached_graphql_definition.rb +0 -58
- data/lib/graphql/schema/member/instrumentation.rb +0 -131
- data/lib/graphql/schema/middleware_chain.rb +0 -82
- data/lib/graphql/schema/null_mask.rb +0 -11
- 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/rules/subscription_root_exists.rb +0 -17
- 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 -31
- data/lib/graphql/types/relay/node_field.rb +0 -24
- data/lib/graphql/types/relay/nodes_field.rb +0 -43
- 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
|
@@ -75,7 +83,11 @@ module GraphQL
|
|
75
83
|
|
76
84
|
def to_query_string(printer: GraphQL::Language::Printer.new)
|
77
85
|
if printer.is_a?(GraphQL::Language::Printer)
|
78
|
-
|
86
|
+
if frozen?
|
87
|
+
@query_string || printer.print(self)
|
88
|
+
else
|
89
|
+
@query_string ||= printer.print(self)
|
90
|
+
end
|
79
91
|
else
|
80
92
|
printer.print(self)
|
81
93
|
end
|
@@ -143,18 +155,26 @@ module GraphQL
|
|
143
155
|
.gsub(/([a-z])([A-Z])/,'\1_\2') # insert underscores
|
144
156
|
.downcase # remove caps
|
145
157
|
|
146
|
-
child_class.module_eval <<-RUBY
|
158
|
+
child_class.module_eval <<-RUBY, __FILE__, __LINE__
|
147
159
|
def visit_method
|
148
160
|
:on_#{name_underscored}
|
149
161
|
end
|
150
162
|
|
151
163
|
class << self
|
152
164
|
attr_accessor :children_method_name
|
165
|
+
|
166
|
+
def visit_method
|
167
|
+
:on_#{name_underscored}
|
168
|
+
end
|
153
169
|
end
|
154
170
|
self.children_method_name = :#{name_underscored}s
|
155
171
|
RUBY
|
156
172
|
end
|
157
173
|
|
174
|
+
def children_of_type
|
175
|
+
@children_methods
|
176
|
+
end
|
177
|
+
|
158
178
|
private
|
159
179
|
|
160
180
|
# Name accessors which return lists of nodes,
|
@@ -185,8 +205,8 @@ module GraphQL
|
|
185
205
|
module_eval <<-RUBY, __FILE__, __LINE__
|
186
206
|
# Singular method: create a node with these options
|
187
207
|
# and return a new `self` which includes that node in this list.
|
188
|
-
def merge_#{method_name.to_s.sub(/s$/, "")}(node_opts)
|
189
|
-
merge(#{method_name}: #{method_name} + [#{node_type.name}.new(node_opts)])
|
208
|
+
def merge_#{method_name.to_s.sub(/s$/, "")}(**node_opts)
|
209
|
+
merge(#{method_name}: #{method_name} + [#{node_type.name}.new(**node_opts)])
|
190
210
|
end
|
191
211
|
RUBY
|
192
212
|
end
|
@@ -215,13 +235,14 @@ module GraphQL
|
|
215
235
|
end
|
216
236
|
|
217
237
|
if defined?(@scalar_methods)
|
218
|
-
if
|
219
|
-
|
238
|
+
if !@initialize_was_generated
|
239
|
+
@initialize_was_generated = true
|
240
|
+
generate_initialize
|
220
241
|
else
|
221
242
|
# This method was defined manually
|
222
243
|
end
|
223
244
|
else
|
224
|
-
raise "Can't
|
245
|
+
raise "Can't generate_initialize because scalar_methods wasn't called; call it before children_methods"
|
225
246
|
end
|
226
247
|
end
|
227
248
|
|
@@ -250,31 +271,81 @@ module GraphQL
|
|
250
271
|
end
|
251
272
|
end
|
252
273
|
|
253
|
-
|
274
|
+
DEFAULT_INITIALIZE_OPTIONS = [
|
275
|
+
"line: nil",
|
276
|
+
"col: nil",
|
277
|
+
"pos: nil",
|
278
|
+
"filename: nil",
|
279
|
+
"source: nil"
|
280
|
+
]
|
281
|
+
|
282
|
+
IGNORED_MARSHALLING_KEYWORDS = [:comment]
|
283
|
+
|
284
|
+
def generate_initialize
|
285
|
+
return if method_defined?(:marshal_load, false) # checking for `:initialize` doesn't work right
|
286
|
+
|
254
287
|
scalar_method_names = @scalar_methods
|
255
288
|
# TODO: These probably should be scalar methods, but `types` returns an array
|
256
|
-
[:types, :description].each do |extra_method|
|
289
|
+
[:types, :description, :comment].each do |extra_method|
|
257
290
|
if method_defined?(extra_method)
|
258
291
|
scalar_method_names += [extra_method]
|
259
292
|
end
|
260
293
|
end
|
261
294
|
|
262
|
-
|
295
|
+
children_method_names = @children_methods.keys
|
296
|
+
|
297
|
+
all_method_names = scalar_method_names + children_method_names
|
263
298
|
if all_method_names.include?(:alias)
|
264
299
|
# Rather than complicating this special case,
|
265
300
|
# let it be overridden (in field)
|
266
301
|
return
|
267
302
|
else
|
268
303
|
arguments = scalar_method_names.map { |m| "#{m}: nil"} +
|
269
|
-
|
304
|
+
children_method_names.map { |m| "#{m}: NO_CHILDREN" } +
|
305
|
+
DEFAULT_INITIALIZE_OPTIONS
|
270
306
|
|
271
307
|
assignments = scalar_method_names.map { |m| "@#{m} = #{m}"} +
|
272
|
-
|
308
|
+
children_method_names.map { |m| "@#{m} = #{m}.freeze" }
|
309
|
+
|
310
|
+
if name.end_with?("Definition") && name != "FragmentDefinition"
|
311
|
+
arguments << "definition_pos: nil"
|
312
|
+
assignments << "@definition_pos = definition_pos"
|
313
|
+
end
|
314
|
+
|
315
|
+
keywords = scalar_method_names.map { |m| "#{m}: #{m}"} +
|
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
|
273
323
|
|
274
324
|
module_eval <<-RUBY, __FILE__, __LINE__
|
275
|
-
def
|
325
|
+
def initialize(#{arguments.join(", ")})
|
326
|
+
@line = line
|
327
|
+
@col = col
|
328
|
+
@pos = pos
|
329
|
+
@filename = filename
|
330
|
+
@source = source
|
276
331
|
#{assignments.join("\n")}
|
277
332
|
end
|
333
|
+
|
334
|
+
def self.from_a(filename, line, col, #{marshalling_method_names.join(", ")}, #{ignored_keywords.join(", ")})
|
335
|
+
self.new(filename: filename, line: line, col: col, #{keywords.join(", ")})
|
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
|
278
349
|
RUBY
|
279
350
|
end
|
280
351
|
end
|
@@ -303,10 +374,10 @@ module GraphQL
|
|
303
374
|
# @return [String] the key for this argument
|
304
375
|
|
305
376
|
# @!attribute value
|
306
|
-
# @return [String, Float, Integer, Boolean, Array, InputObject] The value passed for this key
|
377
|
+
# @return [String, Float, Integer, Boolean, Array, InputObject, VariableIdentifier] The value passed for this key
|
307
378
|
|
308
379
|
def children
|
309
|
-
@children ||= Array(value).flatten.select { |v| v.is_a?(AbstractNode) }
|
380
|
+
@children ||= Array(value).flatten.tap { _1.select! { |v| v.is_a?(AbstractNode) } }
|
310
381
|
end
|
311
382
|
end
|
312
383
|
|
@@ -319,42 +390,13 @@ module GraphQL
|
|
319
390
|
end
|
320
391
|
|
321
392
|
class DirectiveDefinition < AbstractNode
|
322
|
-
include DefinitionNode
|
323
393
|
attr_reader :description
|
324
394
|
scalar_methods :name, :repeatable
|
325
395
|
children_methods(
|
326
|
-
locations: Nodes::DirectiveLocation,
|
327
396
|
arguments: Nodes::Argument,
|
397
|
+
locations: Nodes::DirectiveLocation,
|
328
398
|
)
|
329
|
-
|
330
|
-
|
331
|
-
# This is the AST root for normal queries
|
332
|
-
#
|
333
|
-
# @example Deriving a document by parsing a string
|
334
|
-
# document = GraphQL.parse(query_string)
|
335
|
-
#
|
336
|
-
# @example Creating a string from a document
|
337
|
-
# document.to_query_string
|
338
|
-
# # { ... }
|
339
|
-
#
|
340
|
-
# @example Creating a custom string from a document
|
341
|
-
# class VariableScrubber < GraphQL::Language::Printer
|
342
|
-
# def print_argument(arg)
|
343
|
-
# "#{arg.name}: <HIDDEN>"
|
344
|
-
# end
|
345
|
-
# end
|
346
|
-
#
|
347
|
-
# document.to_query_string(printer: VariableScrubber.new)
|
348
|
-
#
|
349
|
-
class Document < AbstractNode
|
350
|
-
scalar_methods false
|
351
|
-
children_methods(definitions: nil)
|
352
|
-
# @!attribute definitions
|
353
|
-
# @return [Array<OperationDefinition, FragmentDefinition>] top-level GraphQL units: operations or fragments
|
354
|
-
|
355
|
-
def slice_definition(name)
|
356
|
-
GraphQL::Language::DefinitionSlice.slice(self, name)
|
357
|
-
end
|
399
|
+
self.children_method_name = :definitions
|
358
400
|
end
|
359
401
|
|
360
402
|
# An enum value. The string is available as {#name}.
|
@@ -367,7 +409,31 @@ module GraphQL
|
|
367
409
|
|
368
410
|
# A single selection in a GraphQL query.
|
369
411
|
class Field < AbstractNode
|
370
|
-
NONE
|
412
|
+
def initialize(name: nil, arguments: NONE, directives: NONE, selections: NONE, field_alias: nil, line: nil, col: nil, pos: nil, filename: nil, source: nil)
|
413
|
+
@name = name
|
414
|
+
@arguments = arguments || NONE
|
415
|
+
@directives = directives || NONE
|
416
|
+
@selections = selections || NONE
|
417
|
+
# oops, alias is a keyword:
|
418
|
+
@alias = field_alias
|
419
|
+
@line = line
|
420
|
+
@col = col
|
421
|
+
@pos = pos
|
422
|
+
@filename = filename
|
423
|
+
@source = source
|
424
|
+
end
|
425
|
+
|
426
|
+
def self.from_a(filename, line, col, field_alias, name, arguments, directives, selections) # rubocop:disable Metrics/ParameterLists
|
427
|
+
self.new(filename: filename, line: line, col: col, field_alias: field_alias, name: name, arguments: arguments, directives: directives, selections: selections)
|
428
|
+
end
|
429
|
+
|
430
|
+
def marshal_dump
|
431
|
+
[line, col, @filename, @name, @arguments, @directives, @selections, @alias]
|
432
|
+
end
|
433
|
+
|
434
|
+
def marshal_load(values)
|
435
|
+
@line, @col, @filename, @name, @arguments, @directives, @selections, @alias = values
|
436
|
+
end
|
371
437
|
|
372
438
|
scalar_methods :name, :alias
|
373
439
|
children_methods({
|
@@ -376,34 +442,34 @@ module GraphQL
|
|
376
442
|
directives: GraphQL::Language::Nodes::Directive,
|
377
443
|
})
|
378
444
|
|
379
|
-
# @!attribute selections
|
380
|
-
# @return [Array<Nodes::Field>] Selections on this object (or empty array if this is a scalar field)
|
381
|
-
|
382
|
-
def initialize_node(attributes)
|
383
|
-
@name = attributes[:name]
|
384
|
-
@arguments = attributes[:arguments] || NONE
|
385
|
-
@directives = attributes[:directives] || NONE
|
386
|
-
@selections = attributes[:selections] || NONE
|
387
|
-
# oops, alias is a keyword:
|
388
|
-
@alias = attributes[:alias]
|
389
|
-
end
|
390
|
-
|
391
445
|
# Override this because default is `:fields`
|
392
446
|
self.children_method_name = :selections
|
393
447
|
end
|
394
448
|
|
395
449
|
# A reusable fragment, defined at document-level.
|
396
450
|
class FragmentDefinition < AbstractNode
|
397
|
-
|
398
|
-
# @return [String] the identifier for this fragment, which may be applied with `...#{name}`
|
399
|
-
|
400
|
-
# @!attribute type
|
401
|
-
# @return [String] the type condition for this fragment (name of type which it may apply to)
|
402
|
-
def initialize_node(name: nil, type: nil, directives: [], selections: [])
|
451
|
+
def initialize(name: nil, type: nil, directives: NONE, selections: NONE, filename: nil, pos: nil, source: nil, line: nil, col: nil)
|
403
452
|
@name = name
|
404
453
|
@type = type
|
405
454
|
@directives = directives
|
406
455
|
@selections = selections
|
456
|
+
@filename = filename
|
457
|
+
@pos = pos
|
458
|
+
@source = source
|
459
|
+
@line = line
|
460
|
+
@col = col
|
461
|
+
end
|
462
|
+
|
463
|
+
def self.from_a(filename, line, col, name, type, directives, selections)
|
464
|
+
self.new(filename: filename, line: line, col: col, name: name, type: type, directives: directives, selections: selections)
|
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
|
407
473
|
end
|
408
474
|
|
409
475
|
scalar_methods :name, :type
|
@@ -430,8 +496,8 @@ module GraphQL
|
|
430
496
|
class InlineFragment < AbstractNode
|
431
497
|
scalar_methods :type
|
432
498
|
children_methods({
|
433
|
-
selections: GraphQL::Language::Nodes::Field,
|
434
499
|
directives: GraphQL::Language::Nodes::Directive,
|
500
|
+
selections: GraphQL::Language::Nodes::Field,
|
435
501
|
})
|
436
502
|
|
437
503
|
self.children_method_name = :selections
|
@@ -490,7 +556,7 @@ module GraphQL
|
|
490
556
|
# An operation-level query variable
|
491
557
|
class VariableDefinition < AbstractNode
|
492
558
|
scalar_methods :name, :type, :default_value
|
493
|
-
children_methods
|
559
|
+
children_methods(directives: Directive)
|
494
560
|
# @!attribute default_value
|
495
561
|
# @return [String, Integer, Float, Boolean, Array, NullValue] A Ruby value to use if no other value is provided
|
496
562
|
|
@@ -510,8 +576,8 @@ module GraphQL
|
|
510
576
|
scalar_methods :operation_type, :name
|
511
577
|
children_methods({
|
512
578
|
variables: GraphQL::Language::Nodes::VariableDefinition,
|
513
|
-
selections: GraphQL::Language::Nodes::Field,
|
514
579
|
directives: GraphQL::Language::Nodes::Directive,
|
580
|
+
selections: GraphQL::Language::Nodes::Field,
|
515
581
|
})
|
516
582
|
|
517
583
|
# @!attribute variables
|
@@ -529,6 +595,35 @@ module GraphQL
|
|
529
595
|
self.children_method_name = :definitions
|
530
596
|
end
|
531
597
|
|
598
|
+
# This is the AST root for normal queries
|
599
|
+
#
|
600
|
+
# @example Deriving a document by parsing a string
|
601
|
+
# document = GraphQL.parse(query_string)
|
602
|
+
#
|
603
|
+
# @example Creating a string from a document
|
604
|
+
# document.to_query_string
|
605
|
+
# # { ... }
|
606
|
+
#
|
607
|
+
# @example Creating a custom string from a document
|
608
|
+
# class VariableScrubber < GraphQL::Language::Printer
|
609
|
+
# def print_argument(arg)
|
610
|
+
# print_string("#{arg.name}: <HIDDEN>")
|
611
|
+
# end
|
612
|
+
# end
|
613
|
+
#
|
614
|
+
# document.to_query_string(printer: VariableScrubber.new)
|
615
|
+
#
|
616
|
+
class Document < AbstractNode
|
617
|
+
scalar_methods false
|
618
|
+
children_methods(definitions: nil)
|
619
|
+
# @!attribute definitions
|
620
|
+
# @return [Array<OperationDefinition, FragmentDefinition>] top-level GraphQL units: operations or fragments
|
621
|
+
|
622
|
+
def slice_definition(name)
|
623
|
+
GraphQL::Language::DefinitionSlice.slice(self, name)
|
624
|
+
end
|
625
|
+
end
|
626
|
+
|
532
627
|
# A type name, used for variable definitions
|
533
628
|
class TypeName < NameOnlyNode
|
534
629
|
end
|
@@ -539,7 +634,6 @@ module GraphQL
|
|
539
634
|
end
|
540
635
|
|
541
636
|
class SchemaDefinition < AbstractNode
|
542
|
-
include DefinitionNode
|
543
637
|
scalar_methods :query, :mutation, :subscription
|
544
638
|
children_methods({
|
545
639
|
directives: GraphQL::Language::Nodes::Directive,
|
@@ -556,8 +650,7 @@ module GraphQL
|
|
556
650
|
end
|
557
651
|
|
558
652
|
class ScalarTypeDefinition < AbstractNode
|
559
|
-
|
560
|
-
attr_reader :description
|
653
|
+
attr_reader :description, :comment
|
561
654
|
scalar_methods :name
|
562
655
|
children_methods({
|
563
656
|
directives: GraphQL::Language::Nodes::Directive,
|
@@ -574,8 +667,7 @@ module GraphQL
|
|
574
667
|
end
|
575
668
|
|
576
669
|
class InputValueDefinition < AbstractNode
|
577
|
-
|
578
|
-
attr_reader :description
|
670
|
+
attr_reader :description, :comment
|
579
671
|
scalar_methods :name, :type, :default_value
|
580
672
|
children_methods({
|
581
673
|
directives: GraphQL::Language::Nodes::Directive,
|
@@ -584,12 +676,11 @@ module GraphQL
|
|
584
676
|
end
|
585
677
|
|
586
678
|
class FieldDefinition < AbstractNode
|
587
|
-
|
588
|
-
attr_reader :description
|
679
|
+
attr_reader :description, :comment
|
589
680
|
scalar_methods :name, :type
|
590
681
|
children_methods({
|
591
|
-
directives: GraphQL::Language::Nodes::Directive,
|
592
682
|
arguments: GraphQL::Language::Nodes::InputValueDefinition,
|
683
|
+
directives: GraphQL::Language::Nodes::Directive,
|
593
684
|
})
|
594
685
|
self.children_method_name = :fields
|
595
686
|
|
@@ -605,8 +696,7 @@ module GraphQL
|
|
605
696
|
end
|
606
697
|
|
607
698
|
class ObjectTypeDefinition < AbstractNode
|
608
|
-
|
609
|
-
attr_reader :description
|
699
|
+
attr_reader :description, :comment
|
610
700
|
scalar_methods :name, :interfaces
|
611
701
|
children_methods({
|
612
702
|
directives: GraphQL::Language::Nodes::Directive,
|
@@ -625,8 +715,7 @@ module GraphQL
|
|
625
715
|
end
|
626
716
|
|
627
717
|
class InterfaceTypeDefinition < AbstractNode
|
628
|
-
|
629
|
-
attr_reader :description
|
718
|
+
attr_reader :description, :comment
|
630
719
|
scalar_methods :name
|
631
720
|
children_methods({
|
632
721
|
interfaces: GraphQL::Language::Nodes::TypeName,
|
@@ -647,8 +736,7 @@ module GraphQL
|
|
647
736
|
end
|
648
737
|
|
649
738
|
class UnionTypeDefinition < AbstractNode
|
650
|
-
|
651
|
-
attr_reader :description, :types
|
739
|
+
attr_reader :description, :comment, :types
|
652
740
|
scalar_methods :name
|
653
741
|
children_methods({
|
654
742
|
directives: GraphQL::Language::Nodes::Directive,
|
@@ -666,8 +754,7 @@ module GraphQL
|
|
666
754
|
end
|
667
755
|
|
668
756
|
class EnumValueDefinition < AbstractNode
|
669
|
-
|
670
|
-
attr_reader :description
|
757
|
+
attr_reader :description, :comment
|
671
758
|
scalar_methods :name
|
672
759
|
children_methods({
|
673
760
|
directives: GraphQL::Language::Nodes::Directive,
|
@@ -676,8 +763,7 @@ module GraphQL
|
|
676
763
|
end
|
677
764
|
|
678
765
|
class EnumTypeDefinition < AbstractNode
|
679
|
-
|
680
|
-
attr_reader :description
|
766
|
+
attr_reader :description, :comment
|
681
767
|
scalar_methods :name
|
682
768
|
children_methods({
|
683
769
|
directives: GraphQL::Language::Nodes::Directive,
|
@@ -696,8 +782,7 @@ module GraphQL
|
|
696
782
|
end
|
697
783
|
|
698
784
|
class InputObjectTypeDefinition < AbstractNode
|
699
|
-
|
700
|
-
attr_reader :description
|
785
|
+
attr_reader :description, :comment
|
701
786
|
scalar_methods :name
|
702
787
|
children_methods({
|
703
788
|
directives: GraphQL::Language::Nodes::Directive,
|