graphql 2.6.11 → 2.6.13
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/.rdoc_options +4 -0
- data/lib/generators/graphql/core.rb +1 -0
- data/lib/generators/graphql/detailed_trace_generator.rb +1 -0
- data/lib/generators/graphql/enum_generator.rb +1 -0
- data/lib/generators/graphql/field_extractor.rb +1 -0
- data/lib/generators/graphql/input_generator.rb +1 -0
- data/lib/generators/graphql/install/mutation_root_generator.rb +1 -0
- data/lib/generators/graphql/install_generator.rb +1 -0
- data/lib/generators/graphql/interface_generator.rb +1 -0
- data/lib/generators/graphql/loader_generator.rb +8 -2
- data/lib/generators/graphql/mutation_create_generator.rb +8 -2
- data/lib/generators/graphql/mutation_delete_generator.rb +8 -2
- data/lib/generators/graphql/mutation_generator.rb +8 -2
- data/lib/generators/graphql/mutation_update_generator.rb +8 -2
- data/lib/generators/graphql/object_generator.rb +1 -0
- data/lib/generators/graphql/orm_mutations_base.rb +8 -2
- data/lib/generators/graphql/relay.rb +1 -0
- data/lib/generators/graphql/relay_generator.rb +1 -0
- data/lib/generators/graphql/scalar_generator.rb +1 -0
- data/lib/generators/graphql/type_generator.rb +38 -8
- data/lib/generators/graphql/union_generator.rb +1 -0
- data/lib/graphql/analysis/analyzer.rb +35 -9
- data/lib/graphql/analysis/field_usage.rb +1 -0
- data/lib/graphql/analysis/max_query_complexity.rb +2 -1
- data/lib/graphql/analysis/max_query_depth.rb +1 -0
- data/lib/graphql/analysis/query_complexity.rb +57 -20
- data/lib/graphql/analysis/query_depth.rb +17 -12
- data/lib/graphql/analysis/visitor.rb +79 -16
- data/lib/graphql/analysis.rb +23 -6
- data/lib/graphql/analysis_error.rb +1 -0
- data/lib/graphql/autoload.rb +30 -7
- data/lib/graphql/backtrace/table.rb +21 -5
- data/lib/graphql/backtrace/traced_error.rb +8 -3
- data/lib/graphql/backtrace.rb +14 -9
- data/lib/graphql/coercion_error.rb +1 -0
- data/lib/graphql/current.rb +44 -19
- data/lib/graphql/dashboard/application_controller.rb +1 -0
- data/lib/graphql/dashboard/detailed_traces.rb +1 -0
- data/lib/graphql/dashboard/installable.rb +1 -0
- data/lib/graphql/dashboard/landings_controller.rb +1 -0
- data/lib/graphql/dashboard/limiters.rb +1 -0
- data/lib/graphql/dashboard/operation_store.rb +1 -0
- data/lib/graphql/dashboard/statics_controller.rb +1 -0
- data/lib/graphql/dashboard/subscriptions.rb +1 -0
- data/lib/graphql/dashboard.rb +36 -22
- data/lib/graphql/dataloader/active_record_association_source.rb +1 -0
- data/lib/graphql/dataloader/active_record_source.rb +1 -0
- data/lib/graphql/dataloader/async_dataloader.rb +10 -7
- data/lib/graphql/dataloader/null_dataloader.rb +4 -3
- data/lib/graphql/dataloader/request.rb +8 -2
- data/lib/graphql/dataloader/request_all.rb +8 -2
- data/lib/graphql/dataloader/source.rb +127 -35
- data/lib/graphql/dataloader.rb +93 -42
- data/lib/graphql/date_encoding_error.rb +2 -1
- data/lib/graphql/dig.rb +12 -3
- data/lib/graphql/duration_encoding_error.rb +2 -1
- data/lib/graphql/execution/directive_checks.rb +8 -3
- data/lib/graphql/execution/errors.rb +20 -6
- data/lib/graphql/execution/field_resolve_step.rb +40 -13
- data/lib/graphql/execution/finalize.rb +12 -6
- data/lib/graphql/execution/input_values.rb +2 -1
- data/lib/graphql/execution/interpreter/argument_value.rb +17 -5
- data/lib/graphql/execution/interpreter/arguments.rb +24 -9
- data/lib/graphql/execution/interpreter/arguments_cache.rb +2 -1
- data/lib/graphql/execution/interpreter/execution_errors.rb +1 -0
- data/lib/graphql/execution/interpreter/handles_raw_value.rb +1 -0
- data/lib/graphql/execution/interpreter/resolve.rb +18 -8
- data/lib/graphql/execution/interpreter/runtime/graphql_result.rb +4 -1
- data/lib/graphql/execution/interpreter/runtime.rb +72 -25
- data/lib/graphql/execution/interpreter.rb +15 -6
- data/lib/graphql/execution/lazy/lazy_method_map.rb +21 -8
- data/lib/graphql/execution/lazy.rb +34 -10
- data/lib/graphql/execution/load_argument_step.rb +1 -0
- data/lib/graphql/execution/lookahead.rb +137 -54
- data/lib/graphql/execution/multiplex.rb +4 -4
- data/lib/graphql/execution/next.rb +7 -0
- data/lib/graphql/execution/prepare_object_step.rb +1 -0
- data/lib/graphql/execution/resolve_type_step.rb +2 -1
- data/lib/graphql/execution/runner.rb +9 -3
- data/lib/graphql/execution/selections_step.rb +3 -2
- data/lib/graphql/execution.rb +2 -2
- data/lib/graphql/execution_error.rb +19 -10
- data/lib/graphql/float_decoding_error.rb +1 -0
- data/lib/graphql/float_encoding_error.rb +7 -2
- data/lib/graphql/integer_decoding_error.rb +2 -1
- data/lib/graphql/integer_encoding_error.rb +8 -3
- data/lib/graphql/introspection/base_object.rb +3 -1
- data/lib/graphql/introspection/directive_location_enum.rb +1 -0
- data/lib/graphql/introspection/directive_type.rb +1 -0
- data/lib/graphql/introspection/dynamic_fields.rb +1 -0
- data/lib/graphql/introspection/entry_points.rb +1 -0
- data/lib/graphql/introspection/enum_value_type.rb +1 -0
- data/lib/graphql/introspection/field_type.rb +1 -0
- data/lib/graphql/introspection/input_value_type.rb +1 -0
- data/lib/graphql/introspection/introspection_query.rb +1 -0
- data/lib/graphql/introspection/schema_type.rb +1 -0
- data/lib/graphql/introspection/type_kind_enum.rb +1 -0
- data/lib/graphql/introspection/type_type.rb +1 -0
- data/lib/graphql/introspection.rb +1 -0
- data/lib/graphql/invalid_name_error.rb +1 -0
- data/lib/graphql/invalid_null_error.rb +19 -6
- data/lib/graphql/language/block_string.rb +2 -1
- data/lib/graphql/language/cache.rb +10 -4
- data/lib/graphql/language/comment.rb +1 -0
- data/lib/graphql/language/definition_slice.rb +1 -0
- data/lib/graphql/language/document_from_schema_definition.rb +9 -10
- data/lib/graphql/language/generation.rb +23 -9
- data/lib/graphql/language/lexer.rb +5 -0
- data/lib/graphql/language/nodes.rb +2094 -419
- data/lib/graphql/language/parser.rb +24 -17
- data/lib/graphql/language/printer.rb +31 -16
- data/lib/graphql/language/sanitized_printer.rb +16 -5
- data/lib/graphql/language/static_visitor.rb +19 -4
- data/lib/graphql/language/visitor.rb +51 -29
- data/lib/graphql/language.rb +13 -7
- data/lib/graphql/load_application_object_failed_error.rb +14 -5
- data/lib/graphql/name_validator.rb +1 -0
- data/lib/graphql/pagination/active_record_relation_connection.rb +1 -0
- data/lib/graphql/pagination/array_connection.rb +20 -6
- data/lib/graphql/pagination/connection.rb +178 -48
- data/lib/graphql/pagination/connections.rb +21 -14
- data/lib/graphql/pagination/mongoid_relation_connection.rb +1 -0
- data/lib/graphql/pagination/relation_connection.rb +123 -22
- data/lib/graphql/pagination/sequel_dataset_connection.rb +1 -0
- data/lib/graphql/pagination.rb +1 -0
- data/lib/graphql/parse_error.rb +1 -0
- data/lib/graphql/query/context/scoped_context.rb +2 -1
- data/lib/graphql/query/context.rb +106 -35
- data/lib/graphql/query/fingerprint.rb +15 -7
- data/lib/graphql/query/input_validation_result.rb +1 -0
- data/lib/graphql/query/null_context.rb +1 -0
- data/lib/graphql/query/partial.rb +28 -15
- data/lib/graphql/query/result.rb +15 -5
- data/lib/graphql/query/validation_pipeline.rb +16 -6
- data/lib/graphql/query/variable_validation_error.rb +1 -0
- data/lib/graphql/query/variables.rb +9 -2
- data/lib/graphql/query.rb +193 -49
- data/lib/graphql/railtie.rb +7 -3
- data/lib/graphql/rake_task/validate.rb +72 -17
- data/lib/graphql/rake_task.rb +55 -23
- data/lib/graphql/relay/range_add.rb +32 -21
- data/lib/graphql/relay.rb +1 -0
- data/lib/graphql/rubocop/graphql/base_cop.rb +1 -0
- data/lib/graphql/rubocop/graphql/default_null_true.rb +9 -6
- data/lib/graphql/rubocop/graphql/default_required_true.rb +9 -6
- data/lib/graphql/rubocop/graphql/field_type_in_block.rb +12 -8
- data/lib/graphql/rubocop/graphql/root_types_in_block.rb +9 -5
- data/lib/graphql/rubocop.rb +1 -0
- data/lib/graphql/runtime_error.rb +1 -0
- data/lib/graphql/runtime_type_error.rb +1 -0
- data/lib/graphql/schema/addition.rb +18 -6
- data/lib/graphql/schema/always_visible.rb +1 -0
- data/lib/graphql/schema/argument.rb +265 -42
- data/lib/graphql/schema/base_64_encoder.rb +2 -2
- data/lib/graphql/schema/build_from_definition/resolve_map/default_resolve.rb +1 -0
- data/lib/graphql/schema/build_from_definition/resolve_map.rb +2 -2
- data/lib/graphql/schema/build_from_definition.rb +94 -27
- data/lib/graphql/schema/built_in_types.rb +1 -0
- data/lib/graphql/schema/directive/deprecated.rb +1 -0
- data/lib/graphql/schema/directive/feature.rb +39 -22
- data/lib/graphql/schema/directive/flagged.rb +6 -1
- data/lib/graphql/schema/directive/include.rb +1 -0
- data/lib/graphql/schema/directive/one_of.rb +1 -0
- data/lib/graphql/schema/directive/skip.rb +1 -0
- data/lib/graphql/schema/directive/specified_by.rb +1 -0
- data/lib/graphql/schema/directive/transform.rb +17 -8
- data/lib/graphql/schema/directive.rb +12 -7
- data/lib/graphql/schema/enum.rb +99 -38
- data/lib/graphql/schema/enum_value.rb +21 -13
- data/lib/graphql/schema/field/connection_extension.rb +10 -2
- data/lib/graphql/schema/field/scope_extension.rb +1 -0
- data/lib/graphql/schema/field.rb +621 -109
- data/lib/graphql/schema/field_extension.rb +89 -34
- data/lib/graphql/schema/find_inherited_value.rb +5 -3
- data/lib/graphql/schema/finder.rb +22 -8
- data/lib/graphql/schema/has_single_input_argument.rb +39 -6
- data/lib/graphql/schema/input_object.rb +40 -13
- data/lib/graphql/schema/interface.rb +33 -17
- data/lib/graphql/schema/introspection_system.rb +7 -3
- data/lib/graphql/schema/late_bound_type.rb +2 -2
- data/lib/graphql/schema/list.rb +15 -4
- data/lib/graphql/schema/loader.rb +23 -12
- data/lib/graphql/schema/member/base_dsl_methods.rb +58 -12
- data/lib/graphql/schema/member/build_type.rb +16 -5
- data/lib/graphql/schema/member/graphql_type_names.rb +10 -6
- data/lib/graphql/schema/member/has_arguments.rb +115 -48
- data/lib/graphql/schema/member/has_ast_node.rb +1 -0
- data/lib/graphql/schema/member/has_authorization.rb +5 -0
- data/lib/graphql/schema/member/has_dataloader.rb +91 -34
- data/lib/graphql/schema/member/has_deprecation_reason.rb +15 -2
- data/lib/graphql/schema/member/has_directives.rb +38 -10
- data/lib/graphql/schema/member/has_fields.rb +151 -70
- data/lib/graphql/schema/member/has_interfaces.rb +10 -2
- data/lib/graphql/schema/member/has_path.rb +14 -5
- data/lib/graphql/schema/member/has_unresolved_type_error.rb +1 -0
- data/lib/graphql/schema/member/has_validators.rb +19 -4
- data/lib/graphql/schema/member/relay_shortcuts.rb +10 -2
- data/lib/graphql/schema/member/scoped.rb +14 -3
- data/lib/graphql/schema/member/type_system_helpers.rb +36 -6
- data/lib/graphql/schema/member/validates_input.rb +1 -0
- data/lib/graphql/schema/member.rb +9 -2
- data/lib/graphql/schema/mutation.rb +50 -46
- data/lib/graphql/schema/non_null.rb +21 -5
- data/lib/graphql/schema/object.rb +33 -12
- data/lib/graphql/schema/printer.rb +52 -31
- data/lib/graphql/schema/ractor_shareable.rb +6 -2
- data/lib/graphql/schema/relay_classic_mutation.rb +3 -3
- data/lib/graphql/schema/resolver/has_payload_type.rb +29 -7
- data/lib/graphql/schema/resolver.rb +156 -45
- data/lib/graphql/schema/scalar.rb +1 -0
- data/lib/graphql/schema/subscription.rb +67 -28
- data/lib/graphql/schema/timeout.rb +65 -25
- data/lib/graphql/schema/type_expression.rb +14 -5
- data/lib/graphql/schema/type_membership.rb +29 -10
- data/lib/graphql/schema/union.rb +4 -2
- data/lib/graphql/schema/unique_within_type.rb +24 -5
- data/lib/graphql/schema/validator/all_validator.rb +17 -9
- data/lib/graphql/schema/validator/allow_blank_validator.rb +8 -2
- data/lib/graphql/schema/validator/allow_null_validator.rb +8 -2
- data/lib/graphql/schema/validator/exclusion_validator.rb +14 -5
- data/lib/graphql/schema/validator/format_validator.rb +21 -10
- data/lib/graphql/schema/validator/inclusion_validator.rb +15 -6
- data/lib/graphql/schema/validator/length_validator.rb +23 -12
- data/lib/graphql/schema/validator/numericality_validator.rb +29 -16
- data/lib/graphql/schema/validator/required_validator.rb +45 -31
- data/lib/graphql/schema/validator.rb +89 -25
- data/lib/graphql/schema/visibility/migration.rb +14 -7
- data/lib/graphql/schema/visibility/profile.rb +65 -20
- data/lib/graphql/schema/visibility/visit.rb +12 -10
- data/lib/graphql/schema/visibility.rb +24 -20
- data/lib/graphql/schema/warden.rb +117 -31
- data/lib/graphql/schema/wrapper.rb +4 -1
- data/lib/graphql/schema.rb +1046 -300
- data/lib/graphql/static_validation/all_rules.rb +2 -1
- data/lib/graphql/static_validation/base_visitor.rb +59 -9
- data/lib/graphql/static_validation/definition_dependencies.rb +27 -7
- data/lib/graphql/static_validation/error.rb +3 -0
- data/lib/graphql/static_validation/interpreter_visitor.rb +1 -0
- data/lib/graphql/static_validation/literal_validator.rb +1 -0
- data/lib/graphql/static_validation/rules/argument_literals_are_compatible.rb +4 -0
- data/lib/graphql/static_validation/rules/argument_literals_are_compatible_error.rb +1 -0
- data/lib/graphql/static_validation/rules/argument_names_are_unique.rb +3 -0
- data/lib/graphql/static_validation/rules/argument_names_are_unique_error.rb +1 -0
- data/lib/graphql/static_validation/rules/arguments_are_defined.rb +3 -0
- data/lib/graphql/static_validation/rules/arguments_are_defined_error.rb +1 -0
- data/lib/graphql/static_validation/rules/directives_are_defined.rb +3 -0
- data/lib/graphql/static_validation/rules/directives_are_defined_error.rb +1 -0
- data/lib/graphql/static_validation/rules/directives_are_in_valid_locations.rb +3 -0
- data/lib/graphql/static_validation/rules/directives_are_in_valid_locations_error.rb +1 -0
- data/lib/graphql/static_validation/rules/fields_are_defined_on_type.rb +3 -0
- data/lib/graphql/static_validation/rules/fields_are_defined_on_type_error.rb +1 -0
- data/lib/graphql/static_validation/rules/fields_have_appropriate_selections.rb +9 -1
- data/lib/graphql/static_validation/rules/fields_have_appropriate_selections_error.rb +1 -0
- data/lib/graphql/static_validation/rules/fields_will_merge.rb +295 -134
- data/lib/graphql/static_validation/rules/fields_will_merge_error.rb +14 -2
- data/lib/graphql/static_validation/rules/fragment_names_are_unique.rb +3 -0
- data/lib/graphql/static_validation/rules/fragment_names_are_unique_error.rb +1 -0
- data/lib/graphql/static_validation/rules/fragment_spreads_are_possible.rb +3 -0
- data/lib/graphql/static_validation/rules/fragment_spreads_are_possible_error.rb +1 -0
- data/lib/graphql/static_validation/rules/fragment_types_exist.rb +3 -0
- data/lib/graphql/static_validation/rules/fragment_types_exist_error.rb +1 -0
- data/lib/graphql/static_validation/rules/fragments_are_finite.rb +3 -0
- data/lib/graphql/static_validation/rules/fragments_are_finite_error.rb +1 -0
- data/lib/graphql/static_validation/rules/fragments_are_named.rb +3 -0
- data/lib/graphql/static_validation/rules/fragments_are_named_error.rb +1 -0
- data/lib/graphql/static_validation/rules/fragments_are_on_composite_types.rb +3 -0
- data/lib/graphql/static_validation/rules/fragments_are_on_composite_types_error.rb +1 -0
- data/lib/graphql/static_validation/rules/fragments_are_used.rb +3 -0
- data/lib/graphql/static_validation/rules/fragments_are_used_error.rb +1 -0
- data/lib/graphql/static_validation/rules/input_object_names_are_unique.rb +3 -0
- data/lib/graphql/static_validation/rules/input_object_names_are_unique_error.rb +1 -0
- data/lib/graphql/static_validation/rules/mutation_root_exists.rb +3 -0
- data/lib/graphql/static_validation/rules/mutation_root_exists_error.rb +1 -0
- data/lib/graphql/static_validation/rules/no_definitions_are_present.rb +3 -0
- data/lib/graphql/static_validation/rules/no_definitions_are_present_error.rb +1 -0
- data/lib/graphql/static_validation/rules/not_single_subscription_error.rb +1 -0
- data/lib/graphql/static_validation/rules/one_of_input_objects_are_valid.rb +4 -0
- data/lib/graphql/static_validation/rules/one_of_input_objects_are_valid_error.rb +1 -0
- data/lib/graphql/static_validation/rules/operation_names_are_valid.rb +3 -0
- data/lib/graphql/static_validation/rules/operation_names_are_valid_error.rb +1 -0
- data/lib/graphql/static_validation/rules/query_root_exists.rb +3 -0
- data/lib/graphql/static_validation/rules/query_root_exists_error.rb +1 -0
- data/lib/graphql/static_validation/rules/required_arguments_are_present.rb +4 -1
- data/lib/graphql/static_validation/rules/required_arguments_are_present_error.rb +1 -0
- data/lib/graphql/static_validation/rules/required_input_object_attributes_are_present.rb +4 -0
- data/lib/graphql/static_validation/rules/required_input_object_attributes_are_present_error.rb +1 -0
- data/lib/graphql/static_validation/rules/subscription_root_exists_and_single_subscription_selection.rb +43 -5
- data/lib/graphql/static_validation/rules/subscription_root_exists_error.rb +1 -0
- data/lib/graphql/static_validation/rules/unique_directives_per_location.rb +3 -0
- data/lib/graphql/static_validation/rules/unique_directives_per_location_error.rb +1 -0
- data/lib/graphql/static_validation/rules/variable_default_values_are_correctly_typed.rb +3 -0
- data/lib/graphql/static_validation/rules/variable_default_values_are_correctly_typed_error.rb +1 -0
- data/lib/graphql/static_validation/rules/variable_names_are_unique.rb +3 -0
- data/lib/graphql/static_validation/rules/variable_names_are_unique_error.rb +1 -0
- data/lib/graphql/static_validation/rules/variable_usages_are_allowed.rb +207 -51
- data/lib/graphql/static_validation/rules/variable_usages_are_allowed_error.rb +1 -0
- data/lib/graphql/static_validation/rules/variables_are_input_types.rb +3 -0
- data/lib/graphql/static_validation/rules/variables_are_input_types_error.rb +1 -0
- data/lib/graphql/static_validation/rules/variables_are_used_and_defined.rb +6 -3
- data/lib/graphql/static_validation/rules/variables_are_used_and_defined_error.rb +1 -0
- data/lib/graphql/static_validation/validation_context.rb +3 -2
- data/lib/graphql/static_validation/validation_timeout_error.rb +1 -0
- data/lib/graphql/static_validation/validator.rb +41 -16
- data/lib/graphql/static_validation.rb +1 -0
- data/lib/graphql/string_encoding_error.rb +1 -0
- data/lib/graphql/subscriptions/action_cable_subscriptions.rb +85 -65
- data/lib/graphql/subscriptions/broadcast_analyzer.rb +10 -4
- data/lib/graphql/subscriptions/default_subscription_resolve_extension.rb +1 -0
- data/lib/graphql/subscriptions/event.rb +25 -6
- data/lib/graphql/subscriptions/serialize.rb +58 -19
- data/lib/graphql/subscriptions.rb +172 -46
- data/lib/graphql/testing/helpers.rb +17 -4
- data/lib/graphql/testing/mock_action_cable.rb +55 -33
- data/lib/graphql/testing.rb +1 -0
- data/lib/graphql/tracing/active_support_notifications_trace.rb +17 -9
- data/lib/graphql/tracing/active_support_notifications_tracing.rb +2 -1
- data/lib/graphql/tracing/appoptics_trace.rb +2 -1
- data/lib/graphql/tracing/appoptics_tracing.rb +2 -1
- data/lib/graphql/tracing/appsignal_trace.rb +16 -7
- data/lib/graphql/tracing/appsignal_tracing.rb +7 -3
- data/lib/graphql/tracing/call_legacy_tracers.rb +1 -0
- data/lib/graphql/tracing/data_dog_trace.rb +17 -6
- data/lib/graphql/tracing/data_dog_tracing.rb +10 -3
- data/lib/graphql/tracing/detailed_trace/active_record_backend.rb +1 -0
- data/lib/graphql/tracing/detailed_trace/memory_backend.rb +1 -0
- data/lib/graphql/tracing/detailed_trace/redis_backend.rb +1 -0
- data/lib/graphql/tracing/detailed_trace.rb +105 -42
- data/lib/graphql/tracing/legacy_hooks_trace.rb +5 -0
- data/lib/graphql/tracing/legacy_trace.rb +1 -0
- data/lib/graphql/tracing/monitor_trace.rb +17 -11
- data/lib/graphql/tracing/new_relic_trace.rb +17 -8
- data/lib/graphql/tracing/new_relic_tracing.rb +7 -3
- data/lib/graphql/tracing/notifications_trace.rb +11 -8
- data/lib/graphql/tracing/notifications_tracing.rb +23 -7
- data/lib/graphql/tracing/null_trace.rb +1 -0
- data/lib/graphql/tracing/perfetto_trace/trace_pb.rb +1 -0
- data/lib/graphql/tracing/perfetto_trace.rb +41 -19
- data/lib/graphql/tracing/platform_trace.rb +3 -1
- data/lib/graphql/tracing/platform_tracing.rb +16 -7
- data/lib/graphql/tracing/prometheus_trace/graphql_collector.rb +1 -0
- data/lib/graphql/tracing/prometheus_trace.rb +22 -13
- data/lib/graphql/tracing/prometheus_tracing.rb +1 -0
- data/lib/graphql/tracing/scout_trace.rb +10 -4
- data/lib/graphql/tracing/scout_tracing.rb +7 -3
- data/lib/graphql/tracing/sentry_trace.rb +12 -5
- data/lib/graphql/tracing/statsd_trace.rb +12 -6
- data/lib/graphql/tracing/statsd_tracing.rb +7 -1
- data/lib/graphql/tracing/trace.rb +231 -58
- data/lib/graphql/tracing.rb +25 -9
- data/lib/graphql/type_kinds.rb +2 -1
- data/lib/graphql/types/big_int.rb +1 -0
- data/lib/graphql/types/boolean.rb +1 -0
- data/lib/graphql/types/float.rb +1 -0
- data/lib/graphql/types/id.rb +1 -0
- data/lib/graphql/types/int.rb +2 -1
- data/lib/graphql/types/iso_8601_date.rb +21 -4
- data/lib/graphql/types/iso_8601_date_time.rb +33 -6
- data/lib/graphql/types/iso_8601_duration.rb +42 -9
- data/lib/graphql/types/json.rb +1 -0
- data/lib/graphql/types/relay/base_connection.rb +38 -32
- data/lib/graphql/types/relay/base_edge.rb +15 -9
- data/lib/graphql/types/relay/connection_behaviors.rb +19 -3
- data/lib/graphql/types/relay/edge_behaviors.rb +17 -4
- data/lib/graphql/types/relay/has_node_field.rb +6 -1
- data/lib/graphql/types/relay/has_nodes_field.rb +6 -1
- data/lib/graphql/types/relay/node.rb +1 -0
- data/lib/graphql/types/relay/node_behaviors.rb +5 -1
- data/lib/graphql/types/relay/page_info.rb +1 -0
- data/lib/graphql/types/relay/page_info_behaviors.rb +1 -0
- data/lib/graphql/types/relay.rb +4 -3
- data/lib/graphql/types/string.rb +1 -0
- data/lib/graphql/types.rb +1 -0
- data/lib/graphql/unauthorized_enum_value_error.rb +4 -1
- data/lib/graphql/unauthorized_error.rb +11 -4
- data/lib/graphql/unauthorized_field_error.rb +4 -1
- data/lib/graphql/unresolved_type_error.rb +16 -5
- data/lib/graphql/version.rb +2 -1
- data/lib/graphql.rb +37 -9
- data/readme.md +1 -1
- metadata +89 -5
- data/.yardopts +0 -5
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
|
+
# typed: true
|
|
2
3
|
module GraphQL
|
|
3
4
|
# This error is raised when `Types::ISO8601Date` is asked to return a value
|
|
4
5
|
# that cannot be parsed to a Ruby Date.
|
|
5
6
|
#
|
|
6
|
-
#
|
|
7
|
+
# See [GraphQL::Types::ISO8601Date](rdoc-ref:GraphQL::Types::ISO8601Date) which raises this error
|
|
7
8
|
class DateEncodingError < GraphQL::RuntimeTypeError
|
|
8
9
|
# The value which couldn't be encoded
|
|
9
10
|
attr_reader :date_value
|
data/lib/graphql/dig.rb
CHANGED
|
@@ -1,13 +1,22 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
|
+
# typed: true
|
|
2
3
|
module GraphQL
|
|
3
4
|
module Dig
|
|
4
5
|
# implemented using the old activesupport #dig instead of the ruby built-in
|
|
5
6
|
# so we can use some of the magic in Schema::InputObject and Interpreter::Arguments
|
|
6
7
|
# to handle stringified/symbolized keys.
|
|
7
8
|
#
|
|
8
|
-
#
|
|
9
|
-
#
|
|
10
|
-
#
|
|
9
|
+
# **Parameters**
|
|
10
|
+
#
|
|
11
|
+
# - `own_key` (`String, Symbol`) — A key to retrieve
|
|
12
|
+
# - `rest_keys` (`Array<[String, Symbol]>`) — Keys to use for retrieving nested values
|
|
13
|
+
#
|
|
14
|
+
# **Returns**
|
|
15
|
+
#
|
|
16
|
+
# - `Object`
|
|
17
|
+
#
|
|
18
|
+
# :call-seq:
|
|
19
|
+
# dig(String | Symbol own_key, Array[[String, Symbol]] *rest_keys) -> Object
|
|
11
20
|
def dig(own_key, *rest_keys)
|
|
12
21
|
val = self[own_key]
|
|
13
22
|
if val.nil? || rest_keys.empty?
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
|
+
# typed: true
|
|
2
3
|
module GraphQL
|
|
3
4
|
# This error is raised when `Types::ISO8601Duration` is asked to return a value
|
|
4
5
|
# that cannot be parsed as an ISO8601-formatted duration by ActiveSupport::Duration.
|
|
5
6
|
#
|
|
6
|
-
#
|
|
7
|
+
# See [GraphQL::Types::ISO8601Duration](rdoc-ref:GraphQL::Types::ISO8601Duration) which raises this error
|
|
7
8
|
class DurationEncodingError < GraphQL::RuntimeTypeError
|
|
8
9
|
# The value which couldn't be encoded
|
|
9
10
|
attr_reader :duration_value
|
|
@@ -1,16 +1,21 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
|
+
# typed: true
|
|
2
3
|
module GraphQL
|
|
3
4
|
module Execution
|
|
4
5
|
# Boolean checks for how an AST node's directives should
|
|
5
6
|
# influence its execution
|
|
6
|
-
#
|
|
7
|
-
module DirectiveChecks
|
|
7
|
+
module DirectiveChecks # :nodoc:
|
|
8
8
|
SKIP = "skip"
|
|
9
9
|
INCLUDE = "include"
|
|
10
10
|
|
|
11
11
|
module_function
|
|
12
12
|
|
|
13
|
-
#
|
|
13
|
+
# **Returns**
|
|
14
|
+
#
|
|
15
|
+
# - `Boolean` — Should this node be included in the query?
|
|
16
|
+
#
|
|
17
|
+
# :call-seq:
|
|
18
|
+
# include?(directive_ast_nodes, query) -> bool
|
|
14
19
|
def include?(directive_ast_nodes, query)
|
|
15
20
|
directive_ast_nodes.each do |directive_ast_node|
|
|
16
21
|
name = directive_ast_node.name
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
|
+
# typed: true
|
|
2
3
|
|
|
3
4
|
module GraphQL
|
|
4
5
|
module Execution
|
|
@@ -6,10 +7,18 @@ module GraphQL
|
|
|
6
7
|
# Register this handler, updating the
|
|
7
8
|
# internal handler index to maintain least-to-most specific.
|
|
8
9
|
#
|
|
9
|
-
#
|
|
10
|
-
#
|
|
11
|
-
#
|
|
12
|
-
#
|
|
10
|
+
# **Parameters**
|
|
11
|
+
#
|
|
12
|
+
# - `error_class` (`Class<Exception>`)
|
|
13
|
+
# - `error_handlers` (`Hash`)
|
|
14
|
+
# - `error_handler` (`Proc`)
|
|
15
|
+
#
|
|
16
|
+
# **Returns**
|
|
17
|
+
#
|
|
18
|
+
# - `void`
|
|
19
|
+
#
|
|
20
|
+
# :call-seq:
|
|
21
|
+
# register_rescue_from(Class[Exception] error_class, Hash error_handlers, Proc error_handler) -> void
|
|
13
22
|
def self.register_rescue_from(error_class, error_handlers, error_handler)
|
|
14
23
|
subclasses_handlers = {}
|
|
15
24
|
this_level_subclasses = []
|
|
@@ -52,10 +61,15 @@ module GraphQL
|
|
|
52
61
|
nil
|
|
53
62
|
end
|
|
54
63
|
|
|
55
|
-
#
|
|
64
|
+
# **Returns**
|
|
65
|
+
#
|
|
66
|
+
# - `Proc, nil` — The handler for `error_class`, if one was registered on this schema or inherited
|
|
67
|
+
#
|
|
68
|
+
# :call-seq:
|
|
69
|
+
# find_handler_for(schema, error_class) -> Proc | nil
|
|
56
70
|
def self.find_handler_for(schema, error_class)
|
|
57
71
|
handlers = schema.error_handlers[:subclass_handlers]
|
|
58
|
-
handler = nil
|
|
72
|
+
handler = nil #: untyped
|
|
59
73
|
while (handlers) do
|
|
60
74
|
_err_class, next_handler = handlers.find { |err_class, handler| error_class <= err_class }
|
|
61
75
|
if next_handler
|
|
@@ -1,7 +1,12 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
|
+
# typed: false
|
|
2
3
|
module GraphQL
|
|
3
4
|
module Execution
|
|
4
5
|
class FieldResolveStep
|
|
6
|
+
# Only these built-in fields on Relay connection and edge types return already-scoped items.
|
|
7
|
+
# Custom fields on those types must still be authorized normally.
|
|
8
|
+
SCOPED_RELAY_FIELD_NAMES = [:node, :nodes, :edges].freeze
|
|
9
|
+
|
|
5
10
|
def initialize(parent_type:, runner:, key:, selections_step:)
|
|
6
11
|
@selections_step = selections_step
|
|
7
12
|
@key = key
|
|
@@ -283,7 +288,7 @@ module GraphQL
|
|
|
283
288
|
authorized_objects = objects
|
|
284
289
|
end
|
|
285
290
|
|
|
286
|
-
if @parent_type.default_relay? && authorized_objects.all? { |o| o.respond_to?(:was_authorized_by_scope_items?) && o.was_authorized_by_scope_items? }
|
|
291
|
+
if @parent_type.default_relay? && SCOPED_RELAY_FIELD_NAMES.include?(@field_definition.original_name) && authorized_objects.all? { |o| o.respond_to?(:was_authorized_by_scope_items?) && o.was_authorized_by_scope_items? }
|
|
287
292
|
@was_scoped = true
|
|
288
293
|
end
|
|
289
294
|
|
|
@@ -414,11 +419,15 @@ module GraphQL
|
|
|
414
419
|
case ext
|
|
415
420
|
when Schema::Field::ConnectionExtension
|
|
416
421
|
conns = ctx.schema.connections
|
|
422
|
+
lookahead = @arguments[:lookahead]
|
|
423
|
+
# The memo omits the extension's extras (`:lookahead`)
|
|
424
|
+
conn_arguments = memos[@finish_extension_idx] || @arguments
|
|
417
425
|
@field_results.map!.each_with_index do |value, idx|
|
|
418
426
|
object = @extended.object[idx]
|
|
419
|
-
conn = conns.populate_connection(@field_definition, object, value,
|
|
427
|
+
conn = conns.populate_connection(@field_definition, object, value, conn_arguments, ctx)
|
|
420
428
|
if conn
|
|
421
429
|
conn.was_authorized_by_scope_items = @was_scoped
|
|
430
|
+
conn.lookahead ||= lookahead
|
|
422
431
|
end
|
|
423
432
|
conn
|
|
424
433
|
rescue GraphQL::RuntimeError => err
|
|
@@ -510,7 +519,7 @@ module GraphQL
|
|
|
510
519
|
def build_leaf_result(result_h, result_key, field_result, return_type, ctx, is_from_array)
|
|
511
520
|
if field_result.nil?
|
|
512
521
|
if return_type.non_null?
|
|
513
|
-
add_non_null_error(is_from_array)
|
|
522
|
+
add_non_null_error(is_from_array, return_type: return_type)
|
|
514
523
|
else
|
|
515
524
|
nil
|
|
516
525
|
end
|
|
@@ -527,7 +536,7 @@ module GraphQL
|
|
|
527
536
|
end
|
|
528
537
|
|
|
529
538
|
inner_type = return_type.of_type
|
|
530
|
-
result_a = Array.new(field_result.size)
|
|
539
|
+
result_a = field_result.is_a?(Array) ? Array.new(field_result.size) : []
|
|
531
540
|
field_result.each_with_index do |item, idx|
|
|
532
541
|
result_a[idx] = build_leaf_result(result_a, idx, item, inner_type, ctx, true)
|
|
533
542
|
end
|
|
@@ -605,8 +614,14 @@ module GraphQL
|
|
|
605
614
|
end
|
|
606
615
|
end
|
|
607
616
|
|
|
608
|
-
def add_non_null_error(is_from_array)
|
|
609
|
-
|
|
617
|
+
def add_non_null_error(is_from_array, return_type: nil)
|
|
618
|
+
if is_from_array && return_type
|
|
619
|
+
list_type = @field_definition.type
|
|
620
|
+
list_type = list_type.of_type if list_type.non_null?
|
|
621
|
+
# Preserve existing messages for single-level lists.
|
|
622
|
+
element_type = return_type.of_type if list_type.of_type.list?
|
|
623
|
+
end
|
|
624
|
+
err = @parent_type::InvalidNullError.new(@parent_type, @field_definition, ast_nodes, is_from_array: is_from_array, path: path, element_type: element_type)
|
|
610
625
|
nn_result = @runner.schema.type_error(err, @selections_step.query.context)
|
|
611
626
|
if nn_result.nil?
|
|
612
627
|
propagate_nulls
|
|
@@ -645,11 +660,18 @@ module GraphQL
|
|
|
645
660
|
list_result = graphql_result[key] = []
|
|
646
661
|
@directive_finalizers&.each { |f| @runner.add_finalizer(@selections_step.query, list_result, nil, f) }
|
|
647
662
|
i = 0
|
|
648
|
-
|
|
649
|
-
|
|
650
|
-
|
|
651
|
-
|
|
652
|
-
|
|
663
|
+
if field_result.is_a?(Array)
|
|
664
|
+
s = field_result.size
|
|
665
|
+
while i < s
|
|
666
|
+
inner_f_r = field_result[i]
|
|
667
|
+
build_graphql_result(list_result, i, inner_f_r, inner_type, inner_type_nn, inner_type_l, true)
|
|
668
|
+
i += 1
|
|
669
|
+
end
|
|
670
|
+
else
|
|
671
|
+
field_result.each do |inner_f_r|
|
|
672
|
+
build_graphql_result(list_result, i, inner_f_r, inner_type, inner_type_nn, inner_type_l, true)
|
|
673
|
+
i += 1
|
|
674
|
+
end
|
|
653
675
|
end
|
|
654
676
|
elsif @runner.resolves_lazies || (
|
|
655
677
|
@static_type.kind.object? ?
|
|
@@ -786,8 +808,13 @@ module GraphQL
|
|
|
786
808
|
end
|
|
787
809
|
results
|
|
788
810
|
when :resolve_legacy_instance_method
|
|
789
|
-
@selections_step.
|
|
790
|
-
|
|
811
|
+
graphql_objects = if objects.equal?(@selections_step.objects)
|
|
812
|
+
@selections_step.graphql_objects
|
|
813
|
+
else
|
|
814
|
+
objects.map { |object| @parent_type.scoped_new(object, context) }
|
|
815
|
+
end
|
|
816
|
+
graphql_objects.map do |graphql_object|
|
|
817
|
+
graphql_object.public_send(@field_definition.execution_mode_key, **args_hash)
|
|
791
818
|
rescue GraphQL::ExecutionError => exec_err
|
|
792
819
|
exec_err
|
|
793
820
|
end
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
|
+
# typed: true
|
|
2
3
|
module GraphQL
|
|
3
4
|
module Execution
|
|
4
5
|
class Finalize
|
|
@@ -39,11 +40,16 @@ module GraphQL
|
|
|
39
40
|
tf[key] = err
|
|
40
41
|
@finalizers_count += 1
|
|
41
42
|
elsif value_at_key.is_a?(Array)
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
43
|
+
pending_arrays = [value_at_key]
|
|
44
|
+
while (array = pending_arrays.pop)
|
|
45
|
+
array.each_with_index do |el, idx|
|
|
46
|
+
if el.equal?(err)
|
|
47
|
+
array_tf = @finalizers[array] ||= {}.compare_by_identity
|
|
48
|
+
array_tf[idx] = err
|
|
49
|
+
@finalizers_count += 1
|
|
50
|
+
elsif el.is_a?(Array)
|
|
51
|
+
pending_arrays << el
|
|
52
|
+
end
|
|
47
53
|
end
|
|
48
54
|
end
|
|
49
55
|
end
|
|
@@ -175,7 +181,7 @@ module GraphQL
|
|
|
175
181
|
inner_type = inner_type.of_type
|
|
176
182
|
end
|
|
177
183
|
|
|
178
|
-
new_invalid_null = false
|
|
184
|
+
new_invalid_null = false #: bool
|
|
179
185
|
|
|
180
186
|
if (f = finalizers(result_arr, nil))
|
|
181
187
|
run_finalizers(@current_result_path.dup, f, result_arr, nil)
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
|
+
# typed: true
|
|
2
3
|
module GraphQL
|
|
3
4
|
module Execution
|
|
4
5
|
class InputValues
|
|
@@ -38,7 +39,7 @@ module GraphQL
|
|
|
38
39
|
def argument_values(owner_defn, argument_nodes, field_resolve_step)
|
|
39
40
|
arg_defns = @query.types.arguments(owner_defn)
|
|
40
41
|
argument_values = {}
|
|
41
|
-
errors = nil
|
|
42
|
+
errors = nil #: untyped
|
|
42
43
|
|
|
43
44
|
arg_defns.each do |argument_definition|
|
|
44
45
|
arg_ruby_key = argument_definition.keyword
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
|
+
# typed: true
|
|
2
3
|
|
|
3
4
|
module GraphQL
|
|
4
5
|
module Execution
|
|
5
6
|
class Interpreter
|
|
6
7
|
# A container for metadata regarding arguments present in a GraphQL query.
|
|
7
|
-
#
|
|
8
|
+
# See [Interpreter::Arguments#argument_values](rdoc-ref:Interpreter::Arguments#argument_values) for a hash of these objects.
|
|
8
9
|
class ArgumentValue
|
|
9
10
|
def initialize(definition:, value:, original_value:, default_used:)
|
|
10
11
|
@definition = definition
|
|
@@ -13,16 +14,27 @@ module GraphQL
|
|
|
13
14
|
@default_used = default_used
|
|
14
15
|
end
|
|
15
16
|
|
|
16
|
-
#
|
|
17
|
+
# **Returns**
|
|
18
|
+
#
|
|
19
|
+
# - `Object` — The Ruby-ready value for this Argument
|
|
17
20
|
attr_reader :value
|
|
18
21
|
|
|
19
|
-
#
|
|
22
|
+
# **Returns**
|
|
23
|
+
#
|
|
24
|
+
# - `Object` — The value of this argument _before_ `prepare` is applied.
|
|
20
25
|
attr_reader :original_value
|
|
21
26
|
|
|
22
|
-
#
|
|
27
|
+
# **Returns**
|
|
28
|
+
#
|
|
29
|
+
# - `GraphQL::Schema::Argument` — The definition instance for this argument
|
|
23
30
|
attr_reader :definition
|
|
24
31
|
|
|
25
|
-
#
|
|
32
|
+
# **Returns**
|
|
33
|
+
#
|
|
34
|
+
# - `Boolean` — `true` if the schema-defined `default_value:` was applied in this case. (No client-provided value was present.)
|
|
35
|
+
#
|
|
36
|
+
# :call-seq:
|
|
37
|
+
# default_used?() -> bool
|
|
26
38
|
def default_used?
|
|
27
39
|
@default_used
|
|
28
40
|
end
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
|
+
# typed: true
|
|
2
3
|
|
|
3
4
|
module GraphQL
|
|
4
5
|
module Execution
|
|
@@ -8,7 +9,7 @@ module GraphQL
|
|
|
8
9
|
# This object is immutable so that the runtime code can be sure that
|
|
9
10
|
# modifications don't leak from one use to another
|
|
10
11
|
#
|
|
11
|
-
#
|
|
12
|
+
# See [GraphQL::Query#arguments_for](rdoc-ref:GraphQL::Query#arguments_for) to get access to these objects.
|
|
12
13
|
class Arguments
|
|
13
14
|
extend Forwardable
|
|
14
15
|
include GraphQL::Dig
|
|
@@ -16,11 +17,18 @@ module GraphQL
|
|
|
16
17
|
# The Ruby-style arguments hash, ready for a resolver.
|
|
17
18
|
# This hash is the one used at runtime.
|
|
18
19
|
#
|
|
19
|
-
#
|
|
20
|
+
# **Returns**
|
|
21
|
+
#
|
|
22
|
+
# - `Hash<Symbol, Object>`
|
|
20
23
|
attr_reader :keyword_arguments
|
|
21
24
|
|
|
22
|
-
#
|
|
23
|
-
#
|
|
25
|
+
# **Parameters**
|
|
26
|
+
#
|
|
27
|
+
# - `argument_values` (`nil, Hash{Symbol => ArgumentValue}`)
|
|
28
|
+
# - `keyword_arguments` (`nil, Hash{Symbol => Object}`)
|
|
29
|
+
#
|
|
30
|
+
# :call-seq:
|
|
31
|
+
# initialize(nil | Hash[Symbol, Object] keyword_arguments:, nil | Hash[Symbol, ArgumentValue] argument_values:)
|
|
24
32
|
def initialize(keyword_arguments: nil, argument_values:)
|
|
25
33
|
@empty = argument_values.nil? || argument_values.empty?
|
|
26
34
|
# This is only present when `extras` have been merged in:
|
|
@@ -52,7 +60,9 @@ module GraphQL
|
|
|
52
60
|
freeze
|
|
53
61
|
end
|
|
54
62
|
|
|
55
|
-
#
|
|
63
|
+
# **Returns**
|
|
64
|
+
#
|
|
65
|
+
# - `Hash{Symbol => ArgumentValue}`
|
|
56
66
|
attr_reader :argument_values
|
|
57
67
|
|
|
58
68
|
def empty?
|
|
@@ -70,10 +80,15 @@ module GraphQL
|
|
|
70
80
|
#
|
|
71
81
|
# This is called by the runtime to implement field `extras: [...]`
|
|
72
82
|
#
|
|
73
|
-
#
|
|
74
|
-
#
|
|
75
|
-
#
|
|
76
|
-
|
|
83
|
+
#
|
|
84
|
+
# **Parameters**
|
|
85
|
+
#
|
|
86
|
+
# - `extra_args` (`Hash<Symbol => Object>`)
|
|
87
|
+
#
|
|
88
|
+
# **Returns**
|
|
89
|
+
#
|
|
90
|
+
# - `Interpreter::Arguments`
|
|
91
|
+
def merge_extras(extra_args) # :nodoc:
|
|
77
92
|
self.class.new(
|
|
78
93
|
argument_values: argument_values,
|
|
79
94
|
keyword_arguments: keyword_arguments.merge(extra_args)
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
|
+
# typed: true
|
|
2
3
|
|
|
3
4
|
module GraphQL
|
|
4
5
|
module Execution
|
|
@@ -36,7 +37,7 @@ module GraphQL
|
|
|
36
37
|
@storage[argument_owner][nil][ast_node]
|
|
37
38
|
end
|
|
38
39
|
|
|
39
|
-
#
|
|
40
|
+
# **Yields:** [Interpreter::Arguments, Lazy<Interpreter::Arguments>] The finally-loaded arguments
|
|
40
41
|
def dataload_for(ast_node, argument_owner, parent_object, &block)
|
|
41
42
|
# First, normalize all AST or Ruby values to a plain Ruby hash
|
|
42
43
|
arg_storage = @storage[argument_owner][parent_object]
|
|
@@ -1,23 +1,32 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
|
+
# typed: true
|
|
2
3
|
|
|
3
4
|
module GraphQL
|
|
4
5
|
module Execution
|
|
5
6
|
class Interpreter
|
|
6
7
|
module Resolve
|
|
7
8
|
# Continue field results in `results` until there's nothing else to continue.
|
|
8
|
-
#
|
|
9
|
-
#
|
|
9
|
+
# **Deprecated:** Call `dataloader.run` instead
|
|
10
|
+
#
|
|
11
|
+
# **Returns**
|
|
12
|
+
#
|
|
13
|
+
# - `void`
|
|
14
|
+
#
|
|
15
|
+
# :call-seq:
|
|
16
|
+
# resolve_all(results, dataloader) -> void
|
|
10
17
|
def self.resolve_all(results, dataloader)
|
|
11
|
-
|
|
18
|
+
backtrace = caller(1, 5) #: as !nil
|
|
19
|
+
warn "#{self}.#{__method__} is deprecated; Use `dataloader.run` instead.#{backtrace.map { |l| "\n #{l}"}.join}"
|
|
12
20
|
dataloader.append_job { resolve(results, dataloader) }
|
|
13
21
|
nil
|
|
14
22
|
end
|
|
15
23
|
|
|
16
|
-
#
|
|
24
|
+
# **Deprecated:** Call `dataloader.run` instead
|
|
17
25
|
def self.resolve_each_depth(lazies_at_depth, dataloader)
|
|
18
|
-
|
|
26
|
+
backtrace = caller(1, 5) #: as !nil
|
|
27
|
+
warn "#{self}.#{__method__} is deprecated; Use `dataloader.run` instead.#{backtrace.map { |l| "\n #{l}"}.join}"
|
|
19
28
|
|
|
20
|
-
smallest_depth = nil
|
|
29
|
+
smallest_depth = nil #: Integer?
|
|
21
30
|
lazies_at_depth.each_key do |depth_key|
|
|
22
31
|
smallest_depth ||= depth_key
|
|
23
32
|
if depth_key < smallest_depth
|
|
@@ -39,9 +48,10 @@ module GraphQL
|
|
|
39
48
|
nil
|
|
40
49
|
end
|
|
41
50
|
|
|
42
|
-
#
|
|
51
|
+
# **Deprecated:** Call `dataloader.run` instead
|
|
43
52
|
def self.resolve(results, dataloader)
|
|
44
|
-
|
|
53
|
+
backtrace = caller(1, 5) #: as !nil
|
|
54
|
+
warn "#{self}.#{__method__} is deprecated; Use `dataloader.run` instead.#{backtrace.map { |l| "\n #{l}"}.join}"
|
|
45
55
|
# There might be pending jobs here that _will_ write lazies
|
|
46
56
|
# into the result hash. We should run them out, so we
|
|
47
57
|
# can be sure that all lazies will be present in the result hashes.
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
|
+
# typed: true
|
|
2
3
|
|
|
3
4
|
module GraphQL
|
|
4
5
|
module Execution
|
|
@@ -54,7 +55,9 @@ module GraphQL
|
|
|
54
55
|
attr_reader :graphql_parent, :graphql_result_name, :graphql_is_non_null_in_parent,
|
|
55
56
|
:graphql_application_value, :graphql_result_type, :graphql_selections, :graphql_is_eager, :ast_node, :graphql_arguments, :graphql_field
|
|
56
57
|
|
|
57
|
-
#
|
|
58
|
+
# **Returns**
|
|
59
|
+
#
|
|
60
|
+
# - `Hash` — Plain-Ruby result data (`@graphql_metadata` contains Result wrapper objects)
|
|
58
61
|
attr_accessor :graphql_result_data
|
|
59
62
|
end
|
|
60
63
|
|