graphql-stitching 1.0.2 → 1.0.3

Sign up to get free protection for your applications and to get access to all the features.
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