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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 4a0b6a79a253614edadb1151490e42e32164e9f10c8e110806978160efd8b482
4
- data.tar.gz: ff9d5a50b4bc41392a2777fc7bbdf401820a0fea899ef43736047f0efb196742
3
+ metadata.gz: 665232d15bf3a10517a645afee2c74823221dd848d188681a86a482975031189
4
+ data.tar.gz: 746ee25d066ff080f7b63320aa2c0d5de4162c1a2119120db811f4f6acfc20dc
5
5
  SHA512:
6
- metadata.gz: ffb8d232df37ff5b858f95344566774c314132c89bd4353b84ad603d54f1242581df452aef50db0ec4193428a6de72179063bf1213cd74ce0038b0a5cd5aad9b
7
- data.tar.gz: 585e94aaaf146a642f36cb184c91e69aacd8ed9988fd4c4cfc350feb83662b4955cb72d5efe2bdf7606f198a5f03b51d0f809fade8ba8e25367479d3d5902c44
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
- DEFAULT_VALUE_MERGER = ->(values_by_location, _info) { values_by_location.values.find { !_1.nil? } }
12
- DEFAULT_ROOT_FIELD_LOCATION_SELECTOR = ->(locations, _info) { locations.last }
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 || DEFAULT_VALUE_MERGER
30
- @deprecation_merger = deprecation_merger || DEFAULT_VALUE_MERGER
31
- @directive_kwarg_merger = directive_kwarg_merger || DEFAULT_VALUE_MERGER
32
- @root_field_location_selector = root_field_location_selector || DEFAULT_ROOT_FIELD_LOCATION_SELECTOR
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
- return if owner.arguments.any? { _1.first == argument_name }
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)
@@ -2,6 +2,6 @@
2
2
 
3
3
  module GraphQL
4
4
  module Stitching
5
- VERSION = "1.0.2"
5
+ VERSION = "1.0.3"
6
6
  end
7
7
  end
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.2
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-10-16 00:00:00.000000000 Z
11
+ date: 2023-11-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: graphql