graphql-stitching 1.0.2 → 1.0.3
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/stitching/composer.rb +25 -8
- data/lib/graphql/stitching/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 665232d15bf3a10517a645afee2c74823221dd848d188681a86a482975031189
|
|
4
|
+
data.tar.gz: 746ee25d066ff080f7b63320aa2c0d5de4162c1a2119120db811f4f6acfc20dc
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 704cbc2753e452d2aa6fa5ec9bd55231754ee0c21cbd581b01d91d2af7f68c192a570922676e07143202b71564db674f6d5b8078ba276340c4863621547c7372
|
|
7
|
+
data.tar.gz: 255a20c78357854973e5d5818e4bbbcf8eb6f89bf01bc6ad9185306948a6e643dafe713e0943811d4e5841f3289b5fe7c9033683dd0ab97db282721e9d892109
|
|
@@ -8,8 +8,8 @@ module GraphQL
|
|
|
8
8
|
|
|
9
9
|
attr_reader :query_name, :mutation_name, :candidate_types_by_name_and_location, :schema_directives
|
|
10
10
|
|
|
11
|
-
|
|
12
|
-
|
|
11
|
+
BASIC_VALUE_MERGER = ->(values_by_location, _info) { values_by_location.values.find { !_1.nil? } }
|
|
12
|
+
BASIC_ROOT_FIELD_LOCATION_SELECTOR = ->(locations, _info) { locations.last }
|
|
13
13
|
|
|
14
14
|
VALIDATORS = [
|
|
15
15
|
"ValidateInterfaces",
|
|
@@ -21,15 +21,17 @@ module GraphQL
|
|
|
21
21
|
mutation_name: "Mutation",
|
|
22
22
|
description_merger: nil,
|
|
23
23
|
deprecation_merger: nil,
|
|
24
|
+
default_value_merger: nil,
|
|
24
25
|
directive_kwarg_merger: nil,
|
|
25
26
|
root_field_location_selector: nil
|
|
26
27
|
)
|
|
27
28
|
@query_name = query_name
|
|
28
29
|
@mutation_name = mutation_name
|
|
29
|
-
@description_merger = description_merger ||
|
|
30
|
-
@deprecation_merger = deprecation_merger ||
|
|
31
|
-
@
|
|
32
|
-
@
|
|
30
|
+
@description_merger = description_merger || BASIC_VALUE_MERGER
|
|
31
|
+
@deprecation_merger = deprecation_merger || BASIC_VALUE_MERGER
|
|
32
|
+
@default_value_merger = default_value_merger || BASIC_VALUE_MERGER
|
|
33
|
+
@directive_kwarg_merger = directive_kwarg_merger || BASIC_VALUE_MERGER
|
|
34
|
+
@root_field_location_selector = root_field_location_selector || BASIC_ROOT_FIELD_LOCATION_SELECTOR
|
|
33
35
|
@stitch_directives = {}
|
|
34
36
|
end
|
|
35
37
|
|
|
@@ -362,8 +364,22 @@ module GraphQL
|
|
|
362
364
|
next
|
|
363
365
|
end
|
|
364
366
|
|
|
365
|
-
# Getting double args sometimes... why?
|
|
366
|
-
|
|
367
|
+
# Getting double args sometimes on auto-generated connection types... why?
|
|
368
|
+
next if owner.arguments.any? { _1.first == argument_name }
|
|
369
|
+
|
|
370
|
+
kwargs = {}
|
|
371
|
+
default_values_by_location = arguments_by_location.each_with_object({}) do |(location, argument), memo|
|
|
372
|
+
next if argument.default_value.class == Object # << pass on NOT_CONFIGURED (todo: improve this check)
|
|
373
|
+
memo[location] = argument.default_value
|
|
374
|
+
end
|
|
375
|
+
|
|
376
|
+
if default_values_by_location.any?
|
|
377
|
+
kwargs[:default_value] = @default_value_merger.call(default_values_by_location, {
|
|
378
|
+
type_name: type_name,
|
|
379
|
+
field_name: field_name,
|
|
380
|
+
argument_name: argument_name,
|
|
381
|
+
})
|
|
382
|
+
end
|
|
367
383
|
|
|
368
384
|
type = merge_value_types(type_name, value_types, argument_name: argument_name, field_name: field_name)
|
|
369
385
|
schema_argument = owner.argument(
|
|
@@ -373,6 +389,7 @@ module GraphQL
|
|
|
373
389
|
type: Util.unwrap_non_null(type),
|
|
374
390
|
required: type.non_null?,
|
|
375
391
|
camelize: false,
|
|
392
|
+
**kwargs,
|
|
376
393
|
)
|
|
377
394
|
|
|
378
395
|
build_merged_directives(type_name, arguments_by_location, schema_argument, field_name: field_name, argument_name: argument_name)
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: graphql-stitching
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.0.
|
|
4
|
+
version: 1.0.3
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Greg MacWilliam
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2023-
|
|
11
|
+
date: 2023-11-02 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: graphql
|