apollo-federation 3.1.0 → 3.2.0

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: 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