apollo-federation 3.1.0 → 3.2.0

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: c726579bc9db4355491490baae944a9827535beec26b27c7f2800944243f312b
4
- data.tar.gz: 578373ded7eecce3f8484530efc7778940605226bf055bc871940266f915ec26
3
+ metadata.gz: fe0ae888b83a68558821badedaaacc8c2e175dbf1aff918f347ec7ca797d8c0a
4
+ data.tar.gz: ceae483d68658009536a64de692473cebad87d0810027c7c80219df52b7d8cfc
5
5
  SHA512:
6
- metadata.gz: 3489a6047e4f225b376adf87a0fa4aad1e0f0c2c34100891df526fea337e75e183e0b3d0a3f63d23881384e9628e0e7ec65f34bc822a610c7285a6c30d6052a8
7
- data.tar.gz: be8473595a04f6baa232d7f57c88f0d15a152ce5f8199cdae92b35328032d471545bd0b3d4e5a2cbc91d8a922d5dab9a5afd397f431702d12ad83947bc649fe1
6
+ metadata.gz: d3aaba325f9d53ceef358dc287963afe2374ca75d9a6cd3e2b988c9e008e47496238b81eb59c538d4bbb2693a967a52ce72c8efb8c643321480692b3b7666d6c
7
+ data.tar.gz: 8ed45a0a43cf239ddbb6dbdd8f4375f209efec48f5d9f17282b83b564e9d98c6b41bab51bbaf622b57265ed2d1a93bacacf9e71da54b1205b07c9a3fa762f56a
data/CHANGELOG.md CHANGED
@@ -1,3 +1,10 @@
1
+ # [3.2.0](https://github.com/Gusto/apollo-federation-ruby/compare/v3.1.0...v3.2.0) (2022-08-15)
2
+
3
+
4
+ ### Features
5
+
6
+ * allow custom namespace for linked directives ([03fdfea](https://github.com/Gusto/apollo-federation-ruby/commit/03fdfeafaaea3c98ca4b7a734ce760ea08410530))
7
+
1
8
  # [3.1.0](https://github.com/Gusto/apollo-federation-ruby/compare/v3.0.0...v3.1.0) (2022-06-21)
2
9
 
3
10
 
@@ -62,13 +62,21 @@ module ApolloFederation
62
62
 
63
63
  directives.each do |directive|
64
64
  node = node.merge_directive(
65
- name: schema.federation_2? ? "federation__#{directive[:name]}" : directive[:name],
65
+ name: directive_name(directive),
66
66
  arguments: build_arguments_node(directive[:arguments]),
67
67
  )
68
68
  end
69
69
  node
70
70
  end
71
71
 
72
+ def directive_name(directive)
73
+ if schema.federation_2?
74
+ "#{schema.link_namespace}__#{directive[:name]}"
75
+ else
76
+ directive[:name]
77
+ end
78
+ end
79
+
72
80
  def build_arguments_node(arguments)
73
81
  (arguments || []).map do |arg|
74
82
  GraphQL::Language::Nodes::Argument.new(name: arg[:name], value: arg[:values])
@@ -18,8 +18,9 @@ module ApolloFederation
18
18
 
19
19
  SCHEMA
20
20
 
21
- def federation(version: '1.0')
21
+ def federation(version: '1.0', link: {})
22
22
  @federation_version = version
23
+ @link = { as: 'federation' }.merge(link)
23
24
  end
24
25
 
25
26
  def federation_version
@@ -38,6 +39,10 @@ module ApolloFederation
38
39
  output
39
40
  end
40
41
 
42
+ def link_namespace
43
+ @link[:as]
44
+ end
45
+
41
46
  def query(new_query_object = nil)
42
47
  if new_query_object
43
48
  @orig_query_object = new_query_object
@@ -55,6 +60,14 @@ module ApolloFederation
55
60
 
56
61
  private
57
62
 
63
+ def federation_2_prefix
64
+ <<~SCHEMA
65
+ extend schema
66
+ @link(url: "https://specs.apollo.dev/federation/v2.0", as: "#{link_namespace}")
67
+
68
+ SCHEMA
69
+ end
70
+
58
71
  def schema_entities
59
72
  # Create a temporary schema that inherits from this one to extract the types
60
73
  types_schema = Class.new(self)
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module ApolloFederation
4
- VERSION = '3.1.0'
4
+ VERSION = '3.2.0'
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: apollo-federation
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.1.0
4
+ version: 3.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Noa Elad
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2022-06-21 00:00:00.000000000 Z
12
+ date: 2022-08-15 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: graphql