graphql 1.9.21 → 2.0.16
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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 +21 -10
- 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 +45 -8
- data/lib/generators/graphql/interface_generator.rb +7 -7
- data/lib/generators/graphql/loader_generator.rb +1 -0
- 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 +6 -30
- data/lib/generators/graphql/mutation_update_generator.rb +22 -0
- data/lib/generators/graphql/object_generator.rb +28 -12
- data/lib/generators/graphql/orm_mutations_base.rb +40 -0
- data/lib/generators/graphql/relay.rb +49 -0
- data/lib/generators/graphql/relay_generator.rb +21 -0
- 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 +8 -0
- data/lib/generators/graphql/templates/base_edge.erb +8 -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_scalar.erb +2 -0
- data/lib/generators/graphql/templates/base_union.erb +2 -0
- data/lib/generators/graphql/templates/enum.erb +7 -1
- data/lib/generators/graphql/templates/graphql_controller.erb +16 -12
- data/lib/generators/graphql/templates/input.erb +9 -0
- data/lib/generators/graphql/templates/interface.erb +6 -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 +9 -0
- data/lib/generators/graphql/templates/object.erb +7 -3
- data/lib/generators/graphql/templates/query_type.erb +3 -3
- data/lib/generators/graphql/templates/scalar.erb +5 -1
- data/lib/generators/graphql/templates/schema.erb +25 -27
- data/lib/generators/graphql/templates/union.erb +6 -2
- data/lib/generators/graphql/type_generator.rb +47 -10
- data/lib/generators/graphql/union_generator.rb +5 -5
- data/lib/graphql/analysis/ast/field_usage.rb +31 -2
- data/lib/graphql/analysis/ast/max_query_complexity.rb +0 -1
- data/lib/graphql/analysis/ast/query_complexity.rb +175 -68
- data/lib/graphql/analysis/ast/query_depth.rb +0 -1
- data/lib/graphql/analysis/ast/visitor.rb +17 -8
- data/lib/graphql/analysis/ast.rb +14 -14
- data/lib/graphql/analysis.rb +0 -7
- data/lib/graphql/backtrace/inspect_result.rb +0 -1
- data/lib/graphql/backtrace/table.rb +37 -16
- data/lib/graphql/backtrace/traced_error.rb +0 -1
- data/lib/graphql/backtrace/tracer.rb +39 -9
- data/lib/graphql/backtrace.rb +20 -17
- data/lib/graphql/dataloader/null_dataloader.rb +24 -0
- data/lib/graphql/dataloader/request.rb +19 -0
- data/lib/graphql/dataloader/request_all.rb +19 -0
- data/lib/graphql/dataloader/source.rb +164 -0
- data/lib/graphql/dataloader.rb +311 -0
- data/lib/graphql/date_encoding_error.rb +16 -0
- data/lib/graphql/deprecation.rb +9 -0
- data/lib/graphql/dig.rb +1 -1
- data/lib/graphql/execution/directive_checks.rb +2 -2
- data/lib/graphql/execution/errors.rb +77 -45
- data/lib/graphql/execution/interpreter/argument_value.rb +28 -0
- data/lib/graphql/execution/interpreter/arguments.rb +88 -0
- data/lib/graphql/execution/interpreter/arguments_cache.rb +105 -0
- data/lib/graphql/execution/interpreter/handles_raw_value.rb +18 -0
- data/lib/graphql/execution/interpreter/resolve.rb +44 -25
- data/lib/graphql/execution/interpreter/runtime.rb +755 -395
- data/lib/graphql/execution/interpreter.rb +201 -74
- data/lib/graphql/execution/lazy/lazy_method_map.rb +4 -0
- data/lib/graphql/execution/lazy.rb +5 -9
- data/lib/graphql/execution/lookahead.rb +65 -136
- data/lib/graphql/execution/multiplex.rb +5 -152
- data/lib/graphql/execution.rb +11 -4
- data/lib/graphql/filter.rb +1 -1
- data/lib/graphql/integer_decoding_error.rb +17 -0
- data/lib/graphql/integer_encoding_error.rb +18 -2
- data/lib/graphql/introspection/base_object.rb +2 -5
- data/lib/graphql/introspection/directive_location_enum.rb +2 -2
- data/lib/graphql/introspection/directive_type.rb +11 -5
- data/lib/graphql/introspection/dynamic_fields.rb +3 -8
- data/lib/graphql/introspection/entry_points.rb +5 -18
- data/lib/graphql/introspection/enum_value_type.rb +2 -2
- data/lib/graphql/introspection/field_type.rb +9 -5
- data/lib/graphql/introspection/input_value_type.rb +41 -11
- data/lib/graphql/introspection/introspection_query.rb +6 -92
- data/lib/graphql/introspection/schema_type.rb +10 -10
- data/lib/graphql/introspection/type_type.rb +34 -17
- data/lib/graphql/introspection.rb +100 -0
- data/lib/graphql/invalid_null_error.rb +18 -0
- data/lib/graphql/language/block_string.rb +20 -5
- data/lib/graphql/language/cache.rb +37 -0
- data/lib/graphql/language/definition_slice.rb +21 -10
- data/lib/graphql/language/document_from_schema_definition.rb +104 -68
- data/lib/graphql/language/lexer.rb +83 -40
- data/lib/graphql/language/lexer.rl +31 -9
- data/lib/graphql/language/nodes.rb +64 -93
- data/lib/graphql/language/parser.rb +940 -896
- data/lib/graphql/language/parser.y +130 -103
- data/lib/graphql/language/printer.rb +48 -23
- data/lib/graphql/language/sanitized_printer.rb +222 -0
- data/lib/graphql/language/token.rb +0 -4
- data/lib/graphql/language/visitor.rb +2 -2
- data/lib/graphql/language.rb +3 -1
- data/lib/graphql/name_validator.rb +2 -7
- data/lib/graphql/pagination/active_record_relation_connection.rb +85 -0
- data/lib/graphql/pagination/array_connection.rb +79 -0
- data/lib/graphql/pagination/connection.rb +253 -0
- data/lib/graphql/pagination/connections.rb +135 -0
- data/lib/graphql/pagination/mongoid_relation_connection.rb +25 -0
- data/lib/graphql/pagination/relation_connection.rb +228 -0
- data/lib/graphql/pagination/sequel_dataset_connection.rb +28 -0
- data/lib/graphql/pagination.rb +6 -0
- data/lib/graphql/parse_error.rb +0 -1
- data/lib/graphql/query/context.rb +172 -198
- data/lib/graphql/query/fingerprint.rb +26 -0
- data/lib/graphql/query/input_validation_result.rb +33 -7
- data/lib/graphql/query/null_context.rb +21 -8
- data/lib/graphql/query/validation_pipeline.rb +16 -38
- data/lib/graphql/query/variable_validation_error.rb +3 -3
- data/lib/graphql/query/variables.rb +39 -12
- data/lib/graphql/query.rb +74 -38
- data/lib/graphql/railtie.rb +6 -102
- data/lib/graphql/rake_task/validate.rb +4 -1
- data/lib/graphql/rake_task.rb +41 -10
- data/lib/graphql/relay/range_add.rb +17 -10
- 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.rb +4 -0
- data/lib/graphql/schema/addition.rb +245 -0
- data/lib/graphql/schema/argument.rb +286 -31
- data/lib/graphql/schema/base_64_encoder.rb +2 -0
- data/lib/graphql/schema/build_from_definition/resolve_map/default_resolve.rb +1 -1
- data/lib/graphql/schema/build_from_definition/resolve_map.rb +13 -5
- data/lib/graphql/schema/build_from_definition.rb +334 -220
- data/lib/graphql/schema/built_in_types.rb +5 -5
- data/lib/graphql/schema/directive/deprecated.rb +18 -0
- data/lib/graphql/schema/directive/feature.rb +1 -1
- data/lib/graphql/schema/directive/flagged.rb +57 -0
- data/lib/graphql/schema/directive/include.rb +2 -2
- data/lib/graphql/schema/directive/one_of.rb +12 -0
- data/lib/graphql/schema/directive/skip.rb +2 -2
- data/lib/graphql/schema/directive/transform.rb +14 -2
- data/lib/graphql/schema/directive.rb +117 -14
- data/lib/graphql/schema/enum.rb +113 -22
- data/lib/graphql/schema/enum_value.rb +16 -21
- data/lib/graphql/schema/field/connection_extension.rb +50 -20
- data/lib/graphql/schema/field/scope_extension.rb +1 -1
- data/lib/graphql/schema/field.rb +491 -329
- data/lib/graphql/schema/field_extension.rb +89 -2
- data/lib/graphql/schema/find_inherited_value.rb +17 -1
- data/lib/graphql/schema/finder.rb +16 -14
- data/lib/graphql/schema/input_object.rb +182 -60
- data/lib/graphql/schema/interface.rb +28 -43
- data/lib/graphql/schema/introspection_system.rb +101 -38
- data/lib/graphql/schema/late_bound_type.rb +7 -2
- data/lib/graphql/schema/list.rb +61 -3
- data/lib/graphql/schema/loader.rb +144 -102
- data/lib/graphql/schema/member/base_dsl_methods.rb +33 -32
- data/lib/graphql/schema/member/build_type.rb +24 -15
- data/lib/graphql/schema/member/has_arguments.rb +261 -24
- data/lib/graphql/schema/member/has_ast_node.rb +20 -0
- data/lib/graphql/schema/member/has_deprecation_reason.rb +25 -0
- data/lib/graphql/schema/member/has_directives.rb +113 -0
- data/lib/graphql/schema/member/has_fields.rb +99 -34
- data/lib/graphql/schema/member/has_interfaces.rb +88 -0
- data/lib/graphql/schema/member/has_unresolved_type_error.rb +15 -0
- data/lib/graphql/schema/member/has_validators.rb +31 -0
- data/lib/graphql/schema/member/relay_shortcuts.rb +28 -2
- data/lib/graphql/schema/member/type_system_helpers.rb +3 -3
- data/lib/graphql/schema/member/validates_input.rb +33 -0
- data/lib/graphql/schema/member.rb +11 -6
- data/lib/graphql/schema/mutation.rb +4 -9
- data/lib/graphql/schema/non_null.rb +34 -4
- data/lib/graphql/schema/object.rb +38 -60
- data/lib/graphql/schema/printer.rb +16 -35
- data/lib/graphql/schema/relay_classic_mutation.rb +90 -43
- data/lib/graphql/schema/resolver/has_payload_type.rb +46 -6
- data/lib/graphql/schema/resolver.rb +146 -93
- data/lib/graphql/schema/scalar.rb +40 -15
- data/lib/graphql/schema/subscription.rb +55 -26
- data/lib/graphql/schema/timeout.rb +29 -15
- data/lib/graphql/schema/type_expression.rb +21 -13
- data/lib/graphql/schema/type_membership.rb +22 -5
- data/lib/graphql/schema/union.rb +48 -14
- data/lib/graphql/schema/unique_within_type.rb +1 -2
- 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 +33 -0
- data/lib/graphql/schema/validator/format_validator.rb +48 -0
- data/lib/graphql/schema/validator/inclusion_validator.rb +35 -0
- data/lib/graphql/schema/validator/length_validator.rb +59 -0
- data/lib/graphql/schema/validator/numericality_validator.rb +82 -0
- data/lib/graphql/schema/validator/required_validator.rb +82 -0
- data/lib/graphql/schema/validator.rb +171 -0
- data/lib/graphql/schema/warden.rb +187 -33
- data/lib/graphql/schema/wrapper.rb +0 -5
- data/lib/graphql/schema.rb +773 -892
- data/lib/graphql/static_validation/all_rules.rb +3 -0
- data/lib/graphql/static_validation/base_visitor.rb +21 -31
- 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 +55 -26
- data/lib/graphql/static_validation/rules/argument_literals_are_compatible.rb +45 -83
- data/lib/graphql/static_validation/rules/argument_literals_are_compatible_error.rb +22 -6
- data/lib/graphql/static_validation/rules/arguments_are_defined.rb +35 -26
- data/lib/graphql/static_validation/rules/arguments_are_defined_error.rb +4 -2
- data/lib/graphql/static_validation/rules/directives_are_defined.rb +12 -6
- data/lib/graphql/static_validation/rules/directives_are_in_valid_locations.rb +14 -14
- data/lib/graphql/static_validation/rules/fields_are_defined_on_type.rb +4 -4
- data/lib/graphql/static_validation/rules/fields_have_appropriate_selections.rb +5 -5
- data/lib/graphql/static_validation/rules/fields_will_merge.rb +94 -51
- 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/fragments_are_finite.rb +2 -2
- data/lib/graphql/static_validation/rules/input_object_names_are_unique.rb +30 -0
- data/lib/graphql/static_validation/rules/input_object_names_are_unique_error.rb +30 -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 +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 +4 -2
- data/lib/graphql/static_validation/rules/required_input_object_attributes_are_present.rb +9 -10
- data/lib/graphql/static_validation/rules/unique_directives_per_location.rb +13 -7
- data/lib/graphql/static_validation/rules/variable_default_values_are_correctly_typed.rb +12 -13
- data/lib/graphql/static_validation/rules/variable_usages_are_allowed.rb +19 -14
- data/lib/graphql/static_validation/rules/variables_are_input_types.rb +1 -1
- data/lib/graphql/static_validation/rules/variables_are_used_and_defined.rb +5 -3
- data/lib/graphql/static_validation/type_stack.rb +2 -2
- data/lib/graphql/static_validation/validation_context.rb +13 -3
- data/lib/graphql/static_validation/validation_timeout_error.rb +25 -0
- data/lib/graphql/static_validation/validator.rb +31 -19
- data/lib/graphql/static_validation.rb +1 -2
- data/lib/graphql/string_encoding_error.rb +13 -3
- data/lib/graphql/subscriptions/action_cable_subscriptions.rb +129 -22
- data/lib/graphql/subscriptions/broadcast_analyzer.rb +81 -0
- data/lib/graphql/subscriptions/default_subscription_resolve_extension.rb +58 -0
- data/lib/graphql/subscriptions/event.rb +85 -31
- data/lib/graphql/subscriptions/instrumentation.rb +0 -47
- data/lib/graphql/subscriptions/serialize.rb +53 -6
- data/lib/graphql/subscriptions.rb +137 -57
- data/lib/graphql/tracing/active_support_notifications_tracing.rb +8 -17
- data/lib/graphql/tracing/appoptics_tracing.rb +173 -0
- data/lib/graphql/tracing/appsignal_tracing.rb +23 -0
- data/lib/graphql/tracing/data_dog_tracing.rb +34 -2
- data/lib/graphql/tracing/new_relic_tracing.rb +9 -12
- data/lib/graphql/tracing/notifications_tracing.rb +59 -0
- data/lib/graphql/tracing/platform_tracing.rb +67 -38
- data/lib/graphql/tracing/prometheus_tracing/graphql_collector.rb +4 -1
- data/lib/graphql/tracing/prometheus_tracing.rb +8 -0
- data/lib/graphql/tracing/scout_tracing.rb +19 -0
- data/lib/graphql/tracing/statsd_tracing.rb +42 -0
- data/lib/graphql/tracing.rb +15 -36
- data/lib/graphql/types/big_int.rb +5 -1
- data/lib/graphql/types/int.rb +10 -3
- data/lib/graphql/types/iso_8601_date.rb +20 -9
- data/lib/graphql/types/iso_8601_date_time.rb +36 -10
- data/lib/graphql/types/relay/base_connection.rb +18 -90
- data/lib/graphql/types/relay/base_edge.rb +2 -34
- data/lib/graphql/types/relay/connection_behaviors.rb +158 -0
- data/lib/graphql/types/relay/default_relay.rb +27 -0
- data/lib/graphql/types/relay/edge_behaviors.rb +65 -0
- data/lib/graphql/types/relay/has_node_field.rb +41 -0
- data/lib/graphql/types/relay/has_nodes_field.rb +41 -0
- data/lib/graphql/types/relay/node.rb +2 -4
- data/lib/graphql/types/relay/node_behaviors.rb +19 -0
- data/lib/graphql/types/relay/page_info.rb +2 -14
- data/lib/graphql/types/relay/page_info_behaviors.rb +25 -0
- data/lib/graphql/types/relay.rb +11 -5
- data/lib/graphql/types/string.rb +8 -2
- data/lib/graphql/unauthorized_error.rb +2 -2
- data/lib/graphql/unresolved_type_error.rb +2 -2
- data/lib/graphql/version.rb +1 -1
- data/lib/graphql.rb +41 -58
- data/readme.md +3 -6
- metadata +103 -237
- data/lib/graphql/analysis/analyze_query.rb +0 -91
- data/lib/graphql/analysis/field_usage.rb +0 -45
- data/lib/graphql/analysis/max_query_complexity.rb +0 -26
- data/lib/graphql/analysis/max_query_depth.rb +0 -26
- data/lib/graphql/analysis/query_complexity.rb +0 -88
- data/lib/graphql/analysis/query_depth.rb +0 -43
- data/lib/graphql/analysis/reducer_state.rb +0 -48
- data/lib/graphql/argument.rb +0 -159
- data/lib/graphql/authorization.rb +0 -82
- data/lib/graphql/backwards_compatibility.rb +0 -60
- data/lib/graphql/base_type.rb +0 -226
- 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 -435
- data/lib/graphql/compatibility/lazy_execution_specification/lazy_schema.rb +0 -111
- data/lib/graphql/compatibility/lazy_execution_specification.rb +0 -213
- data/lib/graphql/compatibility/query_parser_specification/parse_error_specification.rb +0 -91
- data/lib/graphql/compatibility/query_parser_specification/query_assertions.rb +0 -79
- data/lib/graphql/compatibility/query_parser_specification.rb +0 -264
- data/lib/graphql/compatibility/schema_parser_specification.rb +0 -680
- 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 -311
- 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 -42
- data/lib/graphql/directive/deprecated_directive.rb +0 -13
- data/lib/graphql/directive/include_directive.rb +0 -2
- data/lib/graphql/directive/skip_directive.rb +0 -2
- data/lib/graphql/directive.rb +0 -104
- data/lib/graphql/enum_type.rb +0 -193
- data/lib/graphql/execution/execute.rb +0 -326
- data/lib/graphql/execution/flatten.rb +0 -40
- data/lib/graphql/execution/instrumentation.rb +0 -92
- data/lib/graphql/execution/interpreter/hash_response.rb +0 -46
- 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 -330
- data/lib/graphql/float_type.rb +0 -2
- data/lib/graphql/function.rb +0 -153
- data/lib/graphql/id_type.rb +0 -2
- data/lib/graphql/input_object_type.rb +0 -154
- data/lib/graphql/int_type.rb +0 -2
- data/lib/graphql/interface_type.rb +0 -86
- 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/list_type.rb +0 -80
- data/lib/graphql/literal_validation_error.rb +0 -6
- data/lib/graphql/non_null_type.rb +0 -81
- data/lib/graphql/object_type.rb +0 -141
- data/lib/graphql/query/arguments.rb +0 -187
- data/lib/graphql/query/arguments_cache.rb +0 -25
- data/lib/graphql/query/executor.rb +0 -53
- data/lib/graphql/query/literal_input.rb +0 -116
- 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 -39
- data/lib/graphql/relay/array_connection.rb +0 -85
- data/lib/graphql/relay/base_connection.rb +0 -172
- 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 -40
- data/lib/graphql/relay/edge.rb +0 -27
- data/lib/graphql/relay/edge_type.rb +0 -18
- 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 -190
- data/lib/graphql/relay/node.rb +0 -36
- data/lib/graphql/relay/page_info.rb +0 -7
- data/lib/graphql/relay/relation_connection.rb +0 -190
- data/lib/graphql/relay/type_extensions.rb +0 -30
- data/lib/graphql/scalar_type.rb +0 -133
- 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 -15
- data/lib/graphql/schema/member/accepts_definition.rb +0 -152
- data/lib/graphql/schema/member/cached_graphql_definition.rb +0 -26
- data/lib/graphql/schema/member/instrumentation.rb +0 -132
- data/lib/graphql/schema/middleware_chain.rb +0 -82
- data/lib/graphql/schema/possible_types.rb +0 -39
- data/lib/graphql/schema/rescue_middleware.rb +0 -60
- data/lib/graphql/schema/timeout_middleware.rb +0 -86
- data/lib/graphql/schema/traversal.rb +0 -228
- data/lib/graphql/schema/validation.rb +0 -303
- data/lib/graphql/static_validation/default_visitor.rb +0 -15
- data/lib/graphql/static_validation/no_validate_visitor.rb +0 -10
- data/lib/graphql/string_type.rb +0 -2
- data/lib/graphql/subscriptions/subscription_root.rb +0 -74
- data/lib/graphql/tracing/skylight_tracing.rb +0 -62
- data/lib/graphql/types/relay/base_field.rb +0 -22
- data/lib/graphql/types/relay/base_interface.rb +0 -29
- data/lib/graphql/types/relay/base_object.rb +0 -26
- data/lib/graphql/types/relay/node_field.rb +0 -43
- data/lib/graphql/types/relay/nodes_field.rb +0 -45
- data/lib/graphql/union_type.rb +0 -135
- data/lib/graphql/upgrader/member.rb +0 -936
- data/lib/graphql/upgrader/schema.rb +0 -37
@@ -39,11 +39,11 @@ module GraphQL
|
|
39
39
|
|
40
40
|
# Value equality
|
41
41
|
# @return [Boolean] True if `self` is equivalent to `other`
|
42
|
-
def
|
42
|
+
def ==(other)
|
43
43
|
return true if equal?(other)
|
44
|
-
other.
|
45
|
-
other.scalars
|
46
|
-
other.children
|
44
|
+
other.kind_of?(self.class) &&
|
45
|
+
other.scalars == self.scalars &&
|
46
|
+
other.children == self.children
|
47
47
|
end
|
48
48
|
|
49
49
|
NO_CHILDREN = [].freeze
|
@@ -65,9 +65,8 @@ module GraphQL
|
|
65
65
|
@query_string = nil
|
66
66
|
end
|
67
67
|
|
68
|
-
|
69
|
-
|
70
|
-
raise GraphQL::RequiredImplementationMissingError, "#{self.class.name}#visit_method shold return a symbol"
|
68
|
+
def children_method_name
|
69
|
+
self.class.children_method_name
|
71
70
|
end
|
72
71
|
|
73
72
|
def position
|
@@ -147,9 +146,10 @@ module GraphQL
|
|
147
146
|
:on_#{name_underscored}
|
148
147
|
end
|
149
148
|
|
150
|
-
|
151
|
-
|
149
|
+
class << self
|
150
|
+
attr_accessor :children_method_name
|
152
151
|
end
|
152
|
+
self.children_method_name = :#{name_underscored}s
|
153
153
|
RUBY
|
154
154
|
end
|
155
155
|
|
@@ -161,7 +161,7 @@ module GraphQL
|
|
161
161
|
# - Add a persistent update method to add a child
|
162
162
|
# - Generate a `#children` method
|
163
163
|
def children_methods(children_of_type)
|
164
|
-
if @children_methods
|
164
|
+
if defined?(@children_methods)
|
165
165
|
raise "Can't re-call .children_methods for #{self} (already have: #{@children_methods})"
|
166
166
|
else
|
167
167
|
@children_methods = children_of_type
|
@@ -197,14 +197,27 @@ module GraphQL
|
|
197
197
|
else
|
198
198
|
module_eval <<-RUBY, __FILE__, __LINE__
|
199
199
|
def children
|
200
|
-
@children ||=
|
200
|
+
@children ||= begin
|
201
|
+
if #{children_of_type.keys.map { |k| "@#{k}.any?" }.join(" || ")}
|
202
|
+
new_children = []
|
203
|
+
#{children_of_type.keys.map { |k| "new_children.concat(@#{k})" }.join("; ")}
|
204
|
+
new_children.freeze
|
205
|
+
new_children
|
206
|
+
else
|
207
|
+
NO_CHILDREN
|
208
|
+
end
|
209
|
+
end
|
201
210
|
end
|
202
211
|
RUBY
|
203
212
|
end
|
204
213
|
end
|
205
214
|
|
206
215
|
if defined?(@scalar_methods)
|
207
|
-
|
216
|
+
if !method_defined?(:initialize_node)
|
217
|
+
generate_initialize_node
|
218
|
+
else
|
219
|
+
# This method was defined manually
|
220
|
+
end
|
208
221
|
else
|
209
222
|
raise "Can't generate_initialize_node because scalar_methods wasn't called; call it before children_methods"
|
210
223
|
end
|
@@ -214,7 +227,7 @@ module GraphQL
|
|
214
227
|
# - Add reader methods
|
215
228
|
# - Add a `#scalars` method
|
216
229
|
def scalar_methods(*method_names)
|
217
|
-
if @scalar_methods
|
230
|
+
if defined?(@scalar_methods)
|
218
231
|
raise "Can't re-call .scalar_methods for #{self} (already have: #{@scalar_methods})"
|
219
232
|
else
|
220
233
|
@scalar_methods = method_names
|
@@ -251,7 +264,7 @@ module GraphQL
|
|
251
264
|
return
|
252
265
|
else
|
253
266
|
arguments = scalar_method_names.map { |m| "#{m}: nil"} +
|
254
|
-
@children_methods.keys.map { |m| "#{m}:
|
267
|
+
@children_methods.keys.map { |m| "#{m}: NO_CHILDREN" }
|
255
268
|
|
256
269
|
assignments = scalar_method_names.map { |m| "@#{m} = #{m}"} +
|
257
270
|
@children_methods.keys.map { |m| "@#{m} = #{m}.freeze" }
|
@@ -305,7 +318,7 @@ module GraphQL
|
|
305
318
|
class DirectiveDefinition < AbstractNode
|
306
319
|
include DefinitionNode
|
307
320
|
attr_reader :description
|
308
|
-
scalar_methods :name
|
321
|
+
scalar_methods :name, :repeatable
|
309
322
|
children_methods(
|
310
323
|
locations: Nodes::DirectiveLocation,
|
311
324
|
arguments: Nodes::Argument,
|
@@ -328,7 +341,7 @@ module GraphQL
|
|
328
341
|
# end
|
329
342
|
# end
|
330
343
|
#
|
331
|
-
# document.to_query_string(printer:
|
344
|
+
# document.to_query_string(printer: VariableScrubber.new)
|
332
345
|
#
|
333
346
|
class Document < AbstractNode
|
334
347
|
scalar_methods false
|
@@ -373,19 +386,11 @@ module GraphQL
|
|
373
386
|
end
|
374
387
|
|
375
388
|
# Override this because default is `:fields`
|
376
|
-
|
377
|
-
:selections
|
378
|
-
end
|
389
|
+
self.children_method_name = :selections
|
379
390
|
end
|
380
391
|
|
381
392
|
# A reusable fragment, defined at document-level.
|
382
393
|
class FragmentDefinition < AbstractNode
|
383
|
-
scalar_methods :name, :type
|
384
|
-
children_methods({
|
385
|
-
selections: GraphQL::Language::Nodes::Field,
|
386
|
-
directives: GraphQL::Language::Nodes::Directive,
|
387
|
-
})
|
388
|
-
|
389
394
|
# @!attribute name
|
390
395
|
# @return [String] the identifier for this fragment, which may be applied with `...#{name}`
|
391
396
|
|
@@ -398,9 +403,13 @@ module GraphQL
|
|
398
403
|
@selections = selections
|
399
404
|
end
|
400
405
|
|
401
|
-
|
402
|
-
|
403
|
-
|
406
|
+
scalar_methods :name, :type
|
407
|
+
children_methods({
|
408
|
+
selections: GraphQL::Language::Nodes::Field,
|
409
|
+
directives: GraphQL::Language::Nodes::Directive,
|
410
|
+
})
|
411
|
+
|
412
|
+
self.children_method_name = :definitions
|
404
413
|
end
|
405
414
|
|
406
415
|
# Application of a named fragment in a selection
|
@@ -408,9 +417,7 @@ module GraphQL
|
|
408
417
|
scalar_methods :name
|
409
418
|
children_methods(directives: GraphQL::Language::Nodes::Directive)
|
410
419
|
|
411
|
-
|
412
|
-
:selections
|
413
|
-
end
|
420
|
+
self.children_method_name = :selections
|
414
421
|
|
415
422
|
# @!attribute name
|
416
423
|
# @return [String] The identifier of the fragment to apply, corresponds with {FragmentDefinition#name}
|
@@ -424,9 +431,7 @@ module GraphQL
|
|
424
431
|
directives: GraphQL::Language::Nodes::Directive,
|
425
432
|
})
|
426
433
|
|
427
|
-
|
428
|
-
:selections
|
429
|
-
end
|
434
|
+
self.children_method_name = :selections
|
430
435
|
|
431
436
|
# @!attribute type
|
432
437
|
# @return [String, nil] Name of the type this fragment applies to, or `nil` if this fragment applies to any type
|
@@ -449,9 +454,7 @@ module GraphQL
|
|
449
454
|
end
|
450
455
|
end
|
451
456
|
|
452
|
-
|
453
|
-
:value
|
454
|
-
end
|
457
|
+
self.children_method_name = :value
|
455
458
|
|
456
459
|
private
|
457
460
|
|
@@ -473,7 +476,6 @@ module GraphQL
|
|
473
476
|
end
|
474
477
|
end
|
475
478
|
|
476
|
-
|
477
479
|
# A list type definition, denoted with `[...]` (used for variable type definitions)
|
478
480
|
class ListType < WrapperType
|
479
481
|
end
|
@@ -494,6 +496,8 @@ module GraphQL
|
|
494
496
|
|
495
497
|
# @!attribute name
|
496
498
|
# @return [String] The identifier for this variable, _without_ `$`
|
499
|
+
|
500
|
+
self.children_method_name = :variables
|
497
501
|
end
|
498
502
|
|
499
503
|
# A query, mutation or subscription.
|
@@ -508,7 +512,7 @@ module GraphQL
|
|
508
512
|
})
|
509
513
|
|
510
514
|
# @!attribute variables
|
511
|
-
# @return [Array<VariableDefinition>] Variable definitions for this operation
|
515
|
+
# @return [Array<VariableDefinition>] Variable $definitions for this operation
|
512
516
|
|
513
517
|
# @!attribute selections
|
514
518
|
# @return [Array<Field>] Root-level fields on this operation
|
@@ -519,9 +523,7 @@ module GraphQL
|
|
519
523
|
# @!attribute name
|
520
524
|
# @return [String, nil] The name for this operation, or `nil` if unnamed
|
521
525
|
|
522
|
-
|
523
|
-
:definitions
|
524
|
-
end
|
526
|
+
self.children_method_name = :definitions
|
525
527
|
end
|
526
528
|
|
527
529
|
# A type name, used for variable definitions
|
@@ -530,6 +532,7 @@ module GraphQL
|
|
530
532
|
|
531
533
|
# Usage of a variable in a query. Name does _not_ include `$`.
|
532
534
|
class VariableIdentifier < NameOnlyNode
|
535
|
+
self.children_method_name = :value
|
533
536
|
end
|
534
537
|
|
535
538
|
class SchemaDefinition < AbstractNode
|
@@ -538,9 +541,7 @@ module GraphQL
|
|
538
541
|
children_methods({
|
539
542
|
directives: GraphQL::Language::Nodes::Directive,
|
540
543
|
})
|
541
|
-
|
542
|
-
:definitions
|
543
|
-
end
|
544
|
+
self.children_method_name = :definitions
|
544
545
|
end
|
545
546
|
|
546
547
|
class SchemaExtension < AbstractNode
|
@@ -548,9 +549,7 @@ module GraphQL
|
|
548
549
|
children_methods({
|
549
550
|
directives: GraphQL::Language::Nodes::Directive,
|
550
551
|
})
|
551
|
-
|
552
|
-
:definitions
|
553
|
-
end
|
552
|
+
self.children_method_name = :definitions
|
554
553
|
end
|
555
554
|
|
556
555
|
class ScalarTypeDefinition < AbstractNode
|
@@ -560,9 +559,7 @@ module GraphQL
|
|
560
559
|
children_methods({
|
561
560
|
directives: GraphQL::Language::Nodes::Directive,
|
562
561
|
})
|
563
|
-
|
564
|
-
:definitions
|
565
|
-
end
|
562
|
+
self.children_method_name = :definitions
|
566
563
|
end
|
567
564
|
|
568
565
|
class ScalarTypeExtension < AbstractNode
|
@@ -570,9 +567,7 @@ module GraphQL
|
|
570
567
|
children_methods({
|
571
568
|
directives: GraphQL::Language::Nodes::Directive,
|
572
569
|
})
|
573
|
-
|
574
|
-
:definitions
|
575
|
-
end
|
570
|
+
self.children_method_name = :definitions
|
576
571
|
end
|
577
572
|
|
578
573
|
class InputValueDefinition < AbstractNode
|
@@ -582,9 +577,7 @@ module GraphQL
|
|
582
577
|
children_methods({
|
583
578
|
directives: GraphQL::Language::Nodes::Directive,
|
584
579
|
})
|
585
|
-
|
586
|
-
:fields
|
587
|
-
end
|
580
|
+
self.children_method_name = :fields
|
588
581
|
end
|
589
582
|
|
590
583
|
class FieldDefinition < AbstractNode
|
@@ -595,9 +588,7 @@ module GraphQL
|
|
595
588
|
directives: GraphQL::Language::Nodes::Directive,
|
596
589
|
arguments: GraphQL::Language::Nodes::InputValueDefinition,
|
597
590
|
})
|
598
|
-
|
599
|
-
:fields
|
600
|
-
end
|
591
|
+
self.children_method_name = :fields
|
601
592
|
|
602
593
|
# this is so that `children_method_name` of `InputValueDefinition` works properly
|
603
594
|
# with `#replace_child`
|
@@ -618,9 +609,7 @@ module GraphQL
|
|
618
609
|
directives: GraphQL::Language::Nodes::Directive,
|
619
610
|
fields: GraphQL::Language::Nodes::FieldDefinition,
|
620
611
|
})
|
621
|
-
|
622
|
-
:definitions
|
623
|
-
end
|
612
|
+
self.children_method_name = :definitions
|
624
613
|
end
|
625
614
|
|
626
615
|
class ObjectTypeExtension < AbstractNode
|
@@ -629,9 +618,7 @@ module GraphQL
|
|
629
618
|
directives: GraphQL::Language::Nodes::Directive,
|
630
619
|
fields: GraphQL::Language::Nodes::FieldDefinition,
|
631
620
|
})
|
632
|
-
|
633
|
-
:definitions
|
634
|
-
end
|
621
|
+
self.children_method_name = :definitions
|
635
622
|
end
|
636
623
|
|
637
624
|
class InterfaceTypeDefinition < AbstractNode
|
@@ -639,23 +626,21 @@ module GraphQL
|
|
639
626
|
attr_reader :description
|
640
627
|
scalar_methods :name
|
641
628
|
children_methods({
|
629
|
+
interfaces: GraphQL::Language::Nodes::TypeName,
|
642
630
|
directives: GraphQL::Language::Nodes::Directive,
|
643
631
|
fields: GraphQL::Language::Nodes::FieldDefinition,
|
644
632
|
})
|
645
|
-
|
646
|
-
:definitions
|
647
|
-
end
|
633
|
+
self.children_method_name = :definitions
|
648
634
|
end
|
649
635
|
|
650
636
|
class InterfaceTypeExtension < AbstractNode
|
651
637
|
scalar_methods :name
|
652
638
|
children_methods({
|
639
|
+
interfaces: GraphQL::Language::Nodes::TypeName,
|
653
640
|
directives: GraphQL::Language::Nodes::Directive,
|
654
641
|
fields: GraphQL::Language::Nodes::FieldDefinition,
|
655
642
|
})
|
656
|
-
|
657
|
-
:definitions
|
658
|
-
end
|
643
|
+
self.children_method_name = :definitions
|
659
644
|
end
|
660
645
|
|
661
646
|
class UnionTypeDefinition < AbstractNode
|
@@ -665,9 +650,7 @@ module GraphQL
|
|
665
650
|
children_methods({
|
666
651
|
directives: GraphQL::Language::Nodes::Directive,
|
667
652
|
})
|
668
|
-
|
669
|
-
:definitions
|
670
|
-
end
|
653
|
+
self.children_method_name = :definitions
|
671
654
|
end
|
672
655
|
|
673
656
|
class UnionTypeExtension < AbstractNode
|
@@ -676,9 +659,7 @@ module GraphQL
|
|
676
659
|
children_methods({
|
677
660
|
directives: GraphQL::Language::Nodes::Directive,
|
678
661
|
})
|
679
|
-
|
680
|
-
:definitions
|
681
|
-
end
|
662
|
+
self.children_method_name = :definitions
|
682
663
|
end
|
683
664
|
|
684
665
|
class EnumValueDefinition < AbstractNode
|
@@ -688,9 +669,7 @@ module GraphQL
|
|
688
669
|
children_methods({
|
689
670
|
directives: GraphQL::Language::Nodes::Directive,
|
690
671
|
})
|
691
|
-
|
692
|
-
:values
|
693
|
-
end
|
672
|
+
self.children_method_name = :values
|
694
673
|
end
|
695
674
|
|
696
675
|
class EnumTypeDefinition < AbstractNode
|
@@ -701,9 +680,7 @@ module GraphQL
|
|
701
680
|
directives: GraphQL::Language::Nodes::Directive,
|
702
681
|
values: GraphQL::Language::Nodes::EnumValueDefinition,
|
703
682
|
})
|
704
|
-
|
705
|
-
:definitions
|
706
|
-
end
|
683
|
+
self.children_method_name = :definitions
|
707
684
|
end
|
708
685
|
|
709
686
|
class EnumTypeExtension < AbstractNode
|
@@ -712,9 +689,7 @@ module GraphQL
|
|
712
689
|
directives: GraphQL::Language::Nodes::Directive,
|
713
690
|
values: GraphQL::Language::Nodes::EnumValueDefinition,
|
714
691
|
})
|
715
|
-
|
716
|
-
:definitions
|
717
|
-
end
|
692
|
+
self.children_method_name = :definitions
|
718
693
|
end
|
719
694
|
|
720
695
|
class InputObjectTypeDefinition < AbstractNode
|
@@ -725,9 +700,7 @@ module GraphQL
|
|
725
700
|
directives: GraphQL::Language::Nodes::Directive,
|
726
701
|
fields: GraphQL::Language::Nodes::InputValueDefinition,
|
727
702
|
})
|
728
|
-
|
729
|
-
:definitions
|
730
|
-
end
|
703
|
+
self.children_method_name = :definitions
|
731
704
|
end
|
732
705
|
|
733
706
|
class InputObjectTypeExtension < AbstractNode
|
@@ -736,9 +709,7 @@ module GraphQL
|
|
736
709
|
directives: GraphQL::Language::Nodes::Directive,
|
737
710
|
fields: GraphQL::Language::Nodes::InputValueDefinition,
|
738
711
|
})
|
739
|
-
|
740
|
-
:definitions
|
741
|
-
end
|
712
|
+
self.children_method_name = :definitions
|
742
713
|
end
|
743
714
|
end
|
744
715
|
end
|