graphql 2.5.22 → 2.5.24
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/graphql/analysis.rb +20 -13
- data/lib/graphql/execution/field_resolve_step.rb +631 -0
- data/lib/graphql/execution/finalize.rb +217 -0
- data/lib/graphql/execution/input_values.rb +261 -0
- data/lib/graphql/execution/interpreter/handles_raw_value.rb +6 -0
- data/lib/graphql/execution/interpreter/runtime.rb +3 -2
- data/lib/graphql/execution/interpreter.rb +6 -9
- data/lib/graphql/execution/lazy.rb +1 -1
- data/lib/graphql/execution/load_argument_step.rb +64 -0
- data/lib/graphql/execution/next.rb +26 -6
- data/lib/graphql/execution/prepare_object_step.rb +128 -0
- data/lib/graphql/execution/runner.rb +410 -0
- data/lib/graphql/execution/selections_step.rb +91 -0
- data/lib/graphql/execution.rb +8 -5
- data/lib/graphql/execution_error.rb +5 -1
- data/lib/graphql/query/context.rb +7 -1
- data/lib/graphql/query/partial.rb +18 -3
- data/lib/graphql/query.rb +10 -1
- data/lib/graphql/runtime_error.rb +6 -0
- data/lib/graphql/schema/directive.rb +23 -9
- data/lib/graphql/schema/field/connection_extension.rb +2 -15
- data/lib/graphql/schema/field/scope_extension.rb +0 -4
- data/lib/graphql/schema/field.rb +23 -24
- data/lib/graphql/schema/field_extension.rb +11 -41
- data/lib/graphql/schema/interface.rb +26 -0
- data/lib/graphql/schema/list.rb +5 -1
- data/lib/graphql/schema/member/base_dsl_methods.rb +0 -10
- data/lib/graphql/schema/member/has_fields.rb +5 -1
- data/lib/graphql/schema/non_null.rb +1 -1
- data/lib/graphql/schema/resolver.rb +18 -3
- data/lib/graphql/schema/subscription.rb +0 -2
- data/lib/graphql/schema/visibility/profile.rb +68 -49
- data/lib/graphql/schema/wrapper.rb +7 -1
- data/lib/graphql/schema.rb +12 -10
- data/lib/graphql/static_validation/base_visitor.rb +90 -66
- data/lib/graphql/static_validation/rules/argument_literals_are_compatible.rb +1 -1
- data/lib/graphql/static_validation/rules/argument_names_are_unique.rb +18 -6
- data/lib/graphql/static_validation/rules/arguments_are_defined.rb +5 -2
- data/lib/graphql/static_validation/rules/directives_are_defined.rb +5 -2
- data/lib/graphql/static_validation/rules/fields_are_defined_on_type.rb +4 -3
- data/lib/graphql/static_validation/rules/fields_have_appropriate_selections.rb +12 -2
- data/lib/graphql/static_validation/rules/fields_will_merge.rb +322 -256
- data/lib/graphql/static_validation/rules/fields_will_merge_error.rb +4 -4
- data/lib/graphql/static_validation/rules/fragment_spreads_are_possible.rb +3 -3
- data/lib/graphql/static_validation/rules/fragment_types_exist.rb +10 -7
- data/lib/graphql/static_validation/rules/required_arguments_are_present.rb +27 -7
- data/lib/graphql/static_validation/rules/variables_are_input_types.rb +12 -9
- data/lib/graphql/static_validation/validation_context.rb +1 -1
- data/lib/graphql/subscriptions/default_subscription_resolve_extension.rb +34 -10
- data/lib/graphql/subscriptions/event.rb +1 -0
- data/lib/graphql/subscriptions.rb +35 -0
- data/lib/graphql/tracing/perfetto_trace.rb +2 -2
- data/lib/graphql/tracing/trace.rb +6 -0
- data/lib/graphql/unauthorized_error.rb +4 -0
- data/lib/graphql/version.rb +1 -1
- data/lib/graphql.rb +1 -3
- metadata +11 -8
- data/lib/graphql/execution/next/field_resolve_step.rb +0 -711
- data/lib/graphql/execution/next/load_argument_step.rb +0 -60
- data/lib/graphql/execution/next/prepare_object_step.rb +0 -129
- data/lib/graphql/execution/next/runner.rb +0 -389
- data/lib/graphql/execution/next/selections_step.rb +0 -37
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: edd07077eba1bb80e09f60cefbb284c8f3d520c89f515708e62a1ea63e10eeee
|
|
4
|
+
data.tar.gz: 921a1370ea598626b4248ea8723f0361550686d3eabd39b9fb8d234642c7b5dd
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 68dd9c0b0d92d1787dfc76a163d2a057377466246814e694c021cb2a9e994d04974369b74cdb591db7581cc2987e0527e86073554669a77cc9c3be07dfa4c68a
|
|
7
|
+
data.tar.gz: ab56518a1d21932d0a9026e76340e9fc4b5d3088c3e002ddc002c6afec4171a86b9778a0f82878ead52d57ac8ea950b0a7aa68cf67aa54a77b600f7cd45d1eca
|
data/lib/graphql/analysis.rb
CHANGED
|
@@ -40,13 +40,13 @@ module GraphQL
|
|
|
40
40
|
end
|
|
41
41
|
end
|
|
42
42
|
|
|
43
|
-
multiplex_results = multiplex_analyzers.map(&:result)
|
|
44
|
-
multiplex_errors = analysis_errors(multiplex_results)
|
|
45
43
|
|
|
44
|
+
multiplex_analyzers.map!(&:result)
|
|
45
|
+
multiplex_errors = analysis_errors(EmptyObjects::EMPTY_ARRAY, multiplex_analyzers)
|
|
46
46
|
multiplex.queries.each_with_index do |query, idx|
|
|
47
|
-
query.analysis_errors = multiplex_errors
|
|
47
|
+
query.analysis_errors = analysis_errors(multiplex_errors, query_results[idx])
|
|
48
48
|
end
|
|
49
|
-
|
|
49
|
+
multiplex_analyzers
|
|
50
50
|
end
|
|
51
51
|
end
|
|
52
52
|
|
|
@@ -55,13 +55,11 @@ module GraphQL
|
|
|
55
55
|
# @return [Array<Any>] Results from those analyzers
|
|
56
56
|
def analyze_query(query, analyzers, multiplex_analyzers: [])
|
|
57
57
|
query.current_trace.analyze_query(query: query) do
|
|
58
|
-
query_analyzers = analyzers
|
|
59
|
-
|
|
60
|
-
.tap { _1.select!(&:analyze?) }
|
|
61
|
-
|
|
58
|
+
query_analyzers = analyzers.map { |analyzer| analyzer.new(query) }
|
|
59
|
+
query_analyzers.select!(&:analyze?)
|
|
62
60
|
analyzers_to_run = query_analyzers + multiplex_analyzers
|
|
63
|
-
if !analyzers_to_run.empty?
|
|
64
61
|
|
|
62
|
+
if !analyzers_to_run.empty?
|
|
65
63
|
analyzers_to_run.select!(&:visit?)
|
|
66
64
|
if !analyzers_to_run.empty?
|
|
67
65
|
visitor = GraphQL::Analysis::Visitor.new(
|
|
@@ -79,18 +77,27 @@ module GraphQL
|
|
|
79
77
|
|
|
80
78
|
query_analyzers.map(&:result)
|
|
81
79
|
else
|
|
82
|
-
|
|
80
|
+
EmptyObjects::EMPTY_ARRAY
|
|
83
81
|
end
|
|
84
82
|
end
|
|
85
83
|
rescue TimeoutError => err
|
|
86
84
|
[err]
|
|
87
85
|
rescue GraphQL::UnauthorizedError, GraphQL::ExecutionError
|
|
88
86
|
# This error was raised during analysis and will be returned the client before execution
|
|
89
|
-
|
|
87
|
+
EmptyObjects::EMPTY_ARRAY
|
|
90
88
|
end
|
|
91
89
|
|
|
92
|
-
def analysis_errors(results)
|
|
93
|
-
|
|
90
|
+
def analysis_errors(parent_errors, results)
|
|
91
|
+
if !results.empty?
|
|
92
|
+
results = results.flatten
|
|
93
|
+
results.select! { |r| r.is_a?(GraphQL::AnalysisError) }
|
|
94
|
+
end
|
|
95
|
+
|
|
96
|
+
if parent_errors.empty?
|
|
97
|
+
results
|
|
98
|
+
else
|
|
99
|
+
parent_errors + results
|
|
100
|
+
end
|
|
94
101
|
end
|
|
95
102
|
end
|
|
96
103
|
end
|