graphql 2.0.26 → 2.0.27
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/generators/graphql/relay.rb +18 -1
- data/lib/graphql/language/lexer.rb +86 -56
- data/lib/graphql/language/parser.rb +706 -691
- data/lib/graphql/language/parser.y +1 -0
- data/lib/graphql/schema/addition.rb +6 -0
- data/lib/graphql/schema/field.rb +1 -1
- data/lib/graphql/schema/resolver.rb +10 -8
- data/lib/graphql/schema/validator.rb +1 -1
- data/lib/graphql/version.rb +1 -1
- metadata +2 -2
data/lib/graphql/schema/field.rb
CHANGED
@@ -92,7 +92,7 @@ module GraphQL
|
|
92
92
|
# @param resolver [Class] A {GraphQL::Schema::Resolver} class to use for field configuration
|
93
93
|
# @param mutation [Class] A {GraphQL::Schema::Mutation} class to use for field configuration
|
94
94
|
# @param subscription [Class] A {GraphQL::Schema::Subscription} class to use for field configuration
|
95
|
-
# @return [GraphQL::Schema:Field] an instance of `self
|
95
|
+
# @return [GraphQL::Schema:Field] an instance of `self`
|
96
96
|
# @see {.initialize} for other options
|
97
97
|
def self.from_options(name = nil, type = nil, desc = nil, resolver: nil, mutation: nil, subscription: nil,**kwargs, &block)
|
98
98
|
if (resolver_class = resolver || mutation || subscription)
|
@@ -65,19 +65,20 @@ module GraphQL
|
|
65
65
|
# @api private
|
66
66
|
def resolve_with_support(**args)
|
67
67
|
# First call the ready? hook which may raise
|
68
|
-
|
68
|
+
raw_ready_val = if args.any?
|
69
69
|
ready?(**args)
|
70
70
|
else
|
71
71
|
ready?
|
72
72
|
end
|
73
|
-
context.query.after_lazy(
|
74
|
-
if
|
73
|
+
context.query.after_lazy(raw_ready_val) do |ready_val|
|
74
|
+
if ready_val.is_a?(Array)
|
75
|
+
is_ready, ready_early_return = ready_val
|
75
76
|
if is_ready != false
|
76
77
|
raise "Unexpected result from #ready? (expected `true`, `false` or `[false, {...}]`): [#{is_ready.inspect}, #{ready_early_return.inspect}]"
|
77
78
|
else
|
78
79
|
ready_early_return
|
79
80
|
end
|
80
|
-
elsif
|
81
|
+
elsif ready_val
|
81
82
|
# Then call each prepare hook, which may return a different value
|
82
83
|
# for that argument, or may return a lazy object
|
83
84
|
load_arguments_val = load_arguments(args)
|
@@ -85,21 +86,22 @@ module GraphQL
|
|
85
86
|
@prepared_arguments = loaded_args
|
86
87
|
Schema::Validator.validate!(self.class.validators, object, context, loaded_args, as: @field)
|
87
88
|
# Then call `authorized?`, which may raise or may return a lazy object
|
88
|
-
|
89
|
+
raw_authorized_val = if loaded_args.any?
|
89
90
|
authorized?(**loaded_args)
|
90
91
|
else
|
91
92
|
authorized?
|
92
93
|
end
|
93
|
-
context.query.after_lazy(
|
94
|
+
context.query.after_lazy(raw_authorized_val) do |authorized_val|
|
94
95
|
# If the `authorized?` returned two values, `false, early_return`,
|
95
96
|
# then use the early return value instead of continuing
|
96
|
-
if
|
97
|
+
if authorized_val.is_a?(Array)
|
98
|
+
authorized_result, early_return = authorized_val
|
97
99
|
if authorized_result == false
|
98
100
|
early_return
|
99
101
|
else
|
100
102
|
raise "Unexpected result from #authorized? (expected `true`, `false` or `[false, {...}]`): [#{authorized_result.inspect}, #{early_return.inspect}]"
|
101
103
|
end
|
102
|
-
elsif
|
104
|
+
elsif authorized_val
|
103
105
|
# Finally, all the hooks have passed, so resolve it
|
104
106
|
if loaded_args.any?
|
105
107
|
public_send(self.class.resolve_method, **loaded_args)
|
@@ -133,7 +133,7 @@ module GraphQL
|
|
133
133
|
if all_errors.frozen? # It's empty
|
134
134
|
all_errors = []
|
135
135
|
end
|
136
|
-
interpolation_vars = { validated: validated.graphql_name }
|
136
|
+
interpolation_vars = { validated: validated.graphql_name, value: value.inspect }
|
137
137
|
if errors.is_a?(String)
|
138
138
|
all_errors << (errors % interpolation_vars)
|
139
139
|
else
|
data/lib/graphql/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: graphql
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.0.
|
4
|
+
version: 2.0.27
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Robert Mosolgo
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-08-
|
11
|
+
date: 2023-08-30 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: benchmark-ips
|