graphql 2.0.20 → 2.0.21
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/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
|