apollo-federation 1.0.3 → 1.0.4
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/CHANGELOG.md +7 -0
- data/lib/apollo-federation/schema.rb +20 -16
- data/lib/apollo-federation/version.rb +1 -1
- metadata +4 -4
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 9162a13344ba2374500711c42e7a3ae210bc12ba29747ab421e7b8bb2a8c36e4
|
|
4
|
+
data.tar.gz: 963f3b9efabca3efb67617598be416b6a0f6aa15bd630b25749093bf40b0bd6e
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 7a6a6ed04335cf873ba2a8589058d6960a4e1be29cc97deafab809c6bce682d7c66256290d56663b2e2f7bd5215e405f3c1a655f723494dfd1e39a9b97ded380
|
|
7
|
+
data.tar.gz: 0bcceb1c673ecbb8c1d934219f29364433b7bd4208bf6b9a69bfe465f732cb531680637dd7258f7e6f948527f5c8f8cd24b6a75f6f49d75918013db4e9ec929d
|
data/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,10 @@
|
|
|
1
|
+
## [1.0.4](https://github.com/Gusto/apollo-federation-ruby/compare/v1.0.3...v1.0.4) (2020-04-06)
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
### Bug Fixes
|
|
5
|
+
|
|
6
|
+
* Fix spec to account for breaking change to graphql-ruby 1.10.0 ([#62](https://github.com/Gusto/apollo-federation-ruby/issues/62)) ([a631441](https://github.com/Gusto/apollo-federation-ruby/commit/a631441))
|
|
7
|
+
|
|
1
8
|
## [1.0.3](https://github.com/Gusto/apollo-federation-ruby/compare/v1.0.2...v1.0.3) (2020-03-25)
|
|
2
9
|
|
|
3
10
|
|
|
@@ -15,38 +15,42 @@ module ApolloFederation
|
|
|
15
15
|
def to_graphql
|
|
16
16
|
orig_defn = super
|
|
17
17
|
|
|
18
|
-
if query.nil?
|
|
19
|
-
base = GraphQL::Schema::Object
|
|
20
|
-
else
|
|
21
|
-
base = query.metadata[:type_class]
|
|
22
|
-
end
|
|
23
|
-
|
|
24
|
-
federation_query = Class.new(base) do
|
|
25
|
-
graphql_name 'Query'
|
|
26
|
-
|
|
27
|
-
include EntitiesField
|
|
28
|
-
include ServiceField
|
|
29
|
-
end
|
|
30
|
-
|
|
31
18
|
possible_entities = orig_defn.types.values.select do |type|
|
|
32
19
|
!type.introspection? && !type.default_scalar? && type.is_a?(GraphQL::ObjectType) &&
|
|
33
20
|
type.metadata[:federation_directives]&.any? { |directive| directive[:name] == 'key' }
|
|
34
21
|
end
|
|
35
22
|
|
|
23
|
+
@query_object = federation_query
|
|
24
|
+
|
|
36
25
|
if !possible_entities.empty?
|
|
37
26
|
entity_type = Class.new(Entity) do
|
|
38
27
|
possible_types(*possible_entities)
|
|
39
28
|
end
|
|
40
29
|
# TODO: Should/can we encapsulate all of this inside the module? What's the best/most Ruby
|
|
41
30
|
# way to split this out?
|
|
42
|
-
|
|
31
|
+
@query_object.define_entities_field(entity_type)
|
|
43
32
|
end
|
|
44
33
|
|
|
45
|
-
query(federation_query)
|
|
46
|
-
|
|
47
34
|
super
|
|
48
35
|
end
|
|
49
36
|
|
|
37
|
+
def federation_query
|
|
38
|
+
if query.nil?
|
|
39
|
+
base = GraphQL::Schema::Object
|
|
40
|
+
elsif Gem::Version.new(GraphQL::VERSION) >= Gem::Version.new('1.10.0')
|
|
41
|
+
base = query
|
|
42
|
+
else
|
|
43
|
+
base = query.metadata[:type_class]
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
Class.new(base) do
|
|
47
|
+
graphql_name 'Query'
|
|
48
|
+
|
|
49
|
+
include EntitiesField
|
|
50
|
+
include ServiceField
|
|
51
|
+
end
|
|
52
|
+
end
|
|
53
|
+
|
|
50
54
|
def federation_sdl(context: nil)
|
|
51
55
|
document_from_schema = FederatedDocumentFromSchemaDefinition.new(self, context: context)
|
|
52
56
|
GraphQL::Language::Printer.new.print(document_from_schema.document)
|
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: 1.0.
|
|
4
|
+
version: 1.0.4
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Noa Elad
|
|
@@ -9,20 +9,20 @@ authors:
|
|
|
9
9
|
autorequire:
|
|
10
10
|
bindir: bin
|
|
11
11
|
cert_chain: []
|
|
12
|
-
date: 2020-
|
|
12
|
+
date: 2020-04-06 00:00:00.000000000 Z
|
|
13
13
|
dependencies:
|
|
14
14
|
- !ruby/object:Gem::Dependency
|
|
15
15
|
name: graphql
|
|
16
16
|
requirement: !ruby/object:Gem::Requirement
|
|
17
17
|
requirements:
|
|
18
|
-
- - "
|
|
18
|
+
- - ">="
|
|
19
19
|
- !ruby/object:Gem::Version
|
|
20
20
|
version: 1.9.8
|
|
21
21
|
type: :runtime
|
|
22
22
|
prerelease: false
|
|
23
23
|
version_requirements: !ruby/object:Gem::Requirement
|
|
24
24
|
requirements:
|
|
25
|
-
- - "
|
|
25
|
+
- - ">="
|
|
26
26
|
- !ruby/object:Gem::Version
|
|
27
27
|
version: 1.9.8
|
|
28
28
|
- !ruby/object:Gem::Dependency
|