graphql 2.0.20 → 2.0.21
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/graphql/backtrace/trace.rb +96 -0
- data/lib/graphql/backtrace.rb +6 -1
- data/lib/graphql/execution/interpreter/arguments.rb +1 -1
- data/lib/graphql/execution/interpreter/arguments_cache.rb +2 -3
- data/lib/graphql/execution/interpreter/runtime.rb +200 -161
- data/lib/graphql/execution/interpreter.rb +1 -1
- data/lib/graphql/filter.rb +7 -2
- data/lib/graphql/language/document_from_schema_definition.rb +25 -9
- data/lib/graphql/language/nodes.rb +2 -2
- data/lib/graphql/language/parser.rb +475 -458
- data/lib/graphql/language/parser.y +5 -1
- data/lib/graphql/pagination/connection.rb +5 -5
- data/lib/graphql/query/context.rb +13 -12
- data/lib/graphql/query/null_context.rb +1 -1
- data/lib/graphql/query.rb +9 -5
- data/lib/graphql/schema/argument.rb +7 -9
- data/lib/graphql/schema/build_from_definition.rb +15 -3
- data/lib/graphql/schema/enum_value.rb +2 -5
- data/lib/graphql/schema/field.rb +14 -13
- data/lib/graphql/schema/field_extension.rb +1 -4
- data/lib/graphql/schema/find_inherited_value.rb +2 -7
- data/lib/graphql/schema/member/has_arguments.rb +1 -1
- data/lib/graphql/schema/member/has_directives.rb +4 -6
- data/lib/graphql/schema/member/has_fields.rb +80 -36
- data/lib/graphql/schema/member/has_validators.rb +2 -2
- data/lib/graphql/schema/resolver.rb +4 -4
- data/lib/graphql/schema/validator.rb +1 -1
- data/lib/graphql/schema/warden.rb +3 -1
- data/lib/graphql/schema.rb +40 -11
- data/lib/graphql/static_validation/rules/fields_have_appropriate_selections.rb +12 -4
- data/lib/graphql/static_validation/rules/fields_will_merge.rb +2 -2
- data/lib/graphql/tracing/appsignal_trace.rb +6 -0
- data/lib/graphql/tracing/legacy_trace.rb +65 -0
- data/lib/graphql/tracing/notifications_trace.rb +2 -1
- data/lib/graphql/tracing/platform_trace.rb +21 -19
- data/lib/graphql/tracing/prometheus_tracing/graphql_collector.rb +1 -1
- data/lib/graphql/tracing/trace.rb +75 -0
- data/lib/graphql/tracing.rb +3 -123
- data/lib/graphql/version.rb +1 -1
- data/lib/graphql.rb +4 -0
- metadata +5 -2
@@ -22,8 +22,9 @@ module GraphQL
|
|
22
22
|
@include_introspection_types = include_introspection_types
|
23
23
|
@include_built_in_scalars = include_built_in_scalars
|
24
24
|
@include_built_in_directives = include_built_in_directives
|
25
|
+
@include_one_of = false
|
25
26
|
|
26
|
-
filter = GraphQL::Filter.new(only: only, except: except)
|
27
|
+
filter = GraphQL::Filter.new(only: only, except: except, silence_deprecation_warning: true)
|
27
28
|
if @schema.respond_to?(:visible?)
|
28
29
|
filter = filter.merge(only: @schema.method(:visible?))
|
29
30
|
end
|
@@ -245,20 +246,30 @@ module GraphQL
|
|
245
246
|
end
|
246
247
|
|
247
248
|
def build_directive_nodes(directives)
|
248
|
-
if !include_built_in_directives
|
249
|
-
directives = directives.reject { |directive| directive.default_directive? }
|
250
|
-
end
|
251
|
-
|
252
249
|
directives
|
253
250
|
.map { |directive| build_directive_node(directive) }
|
254
251
|
.sort_by(&:name)
|
255
252
|
end
|
256
253
|
|
257
254
|
def build_definition_nodes
|
258
|
-
|
259
|
-
|
260
|
-
|
261
|
-
|
255
|
+
dirs_to_build = warden.directives
|
256
|
+
if !include_built_in_directives
|
257
|
+
dirs_to_build = dirs_to_build.reject { |directive| directive.default_directive? }
|
258
|
+
end
|
259
|
+
dir_nodes = build_directive_nodes(dirs_to_build)
|
260
|
+
|
261
|
+
type_nodes = build_type_definition_nodes(warden.reachable_types)
|
262
|
+
|
263
|
+
if @include_one_of
|
264
|
+
# This may have been set to true when iterating over all types
|
265
|
+
dir_nodes.concat(build_directive_nodes([GraphQL::Schema::Directive::OneOf]))
|
266
|
+
end
|
267
|
+
|
268
|
+
definitions = [*dir_nodes, *type_nodes]
|
269
|
+
if include_schema_node?
|
270
|
+
definitions.unshift(build_schema_node)
|
271
|
+
end
|
272
|
+
|
262
273
|
definitions
|
263
274
|
end
|
264
275
|
|
@@ -318,6 +329,11 @@ module GraphQL
|
|
318
329
|
)
|
319
330
|
end
|
320
331
|
end
|
332
|
+
|
333
|
+
# If this schema uses this built-in directive definition,
|
334
|
+
# include it in the print-out since it's not part of the spec yet.
|
335
|
+
@include_one_of ||= dir.class == GraphQL::Schema::Directive::OneOf
|
336
|
+
|
321
337
|
GraphQL::Language::Nodes::Directive.new(
|
322
338
|
name: dir.class.graphql_name,
|
323
339
|
arguments: args
|
@@ -2,7 +2,7 @@
|
|
2
2
|
module GraphQL
|
3
3
|
module Language
|
4
4
|
module Nodes
|
5
|
-
NONE =
|
5
|
+
NONE = GraphQL::EmptyObjects::EMPTY_ARRAY
|
6
6
|
# {AbstractNode} is the base class for all nodes in a GraphQL AST.
|
7
7
|
#
|
8
8
|
# It provides some APIs for working with ASTs:
|
@@ -51,7 +51,7 @@ module GraphQL
|
|
51
51
|
other.children == self.children
|
52
52
|
end
|
53
53
|
|
54
|
-
NO_CHILDREN =
|
54
|
+
NO_CHILDREN = GraphQL::EmptyObjects::EMPTY_ARRAY
|
55
55
|
|
56
56
|
# @return [Array<GraphQL::Language::Nodes::AbstractNode>] all nodes in the tree below this one
|
57
57
|
def children
|