@graphql-tools/federation 4.3.0 → 4.3.1-alpha-bcdf6a1333a84f3ead114d676e66e609c350e084
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.
- package/CHANGELOG.md +12 -0
- package/dist/index.cjs +28 -21
- package/dist/index.js +28 -21
- package/package.json +4 -4
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,17 @@
|
|
|
1
1
|
# @graphql-tools/federation
|
|
2
2
|
|
|
3
|
+
## 4.3.1-alpha-bcdf6a1333a84f3ead114d676e66e609c350e084
|
|
4
|
+
### Patch Changes
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
- [#2106](https://github.com/graphql-hive/gateway/pull/2106) [`bcdf6a1`](https://github.com/graphql-hive/gateway/commit/bcdf6a1333a84f3ead114d676e66e609c350e084) Thanks [@ardatan](https://github.com/ardatan)! - - Optimizations to select ONLY required fields when fetching the missing fields from other subgraphs
|
|
9
|
+
- Do not try to resolve types from the subschemas which only have the stub types, for example if a subgraph only has `id` field as a stub, do not use that subgraph as a target subgraph for resolving the type, because it will not have any other fields than `id`.
|
|
10
|
+
- Updated dependencies [[`bcdf6a1`](https://github.com/graphql-hive/gateway/commit/bcdf6a1333a84f3ead114d676e66e609c350e084)]:
|
|
11
|
+
- @graphql-tools/delegate@12.0.12-alpha-bcdf6a1333a84f3ead114d676e66e609c350e084
|
|
12
|
+
- @graphql-tools/stitch@10.1.16-alpha-bcdf6a1333a84f3ead114d676e66e609c350e084
|
|
13
|
+
- @graphql-tools/wrap@11.1.12-alpha-bcdf6a1333a84f3ead114d676e66e609c350e084
|
|
14
|
+
|
|
3
15
|
## 4.3.0
|
|
4
16
|
### Minor Changes
|
|
5
17
|
|
package/dist/index.cjs
CHANGED
|
@@ -447,27 +447,6 @@ function getStitchingOptionsFromSupergraphSdl(opts) {
|
|
|
447
447
|
);
|
|
448
448
|
if (joinTypeGraphArgNode?.value?.kind === graphql.Kind.ENUM) {
|
|
449
449
|
const graphName = joinTypeGraphArgNode.value.value;
|
|
450
|
-
if (typeNode.kind === graphql.Kind.OBJECT_TYPE_DEFINITION || typeNode.kind === graphql.Kind.INTERFACE_TYPE_DEFINITION) {
|
|
451
|
-
const keyArgumentNode = directiveNode.arguments?.find(
|
|
452
|
-
(argumentNode) => argumentNode.name.value === "key"
|
|
453
|
-
);
|
|
454
|
-
const isResolvable = !directiveNode.arguments?.some(
|
|
455
|
-
(argumentNode) => argumentNode.name.value === "resolvable" && argumentNode.value?.kind === graphql.Kind.BOOLEAN && argumentNode.value.value === false
|
|
456
|
-
);
|
|
457
|
-
if (isResolvable && keyArgumentNode?.value?.kind === graphql.Kind.STRING) {
|
|
458
|
-
let typeNameKeysMap = typeNameKeysBySubgraphMap.get(graphName);
|
|
459
|
-
if (!typeNameKeysMap) {
|
|
460
|
-
typeNameKeysMap = /* @__PURE__ */ new Map();
|
|
461
|
-
typeNameKeysBySubgraphMap.set(graphName, typeNameKeysMap);
|
|
462
|
-
}
|
|
463
|
-
let keys = typeNameKeysMap.get(typeNode.name.value);
|
|
464
|
-
if (!keys) {
|
|
465
|
-
keys = [];
|
|
466
|
-
typeNameKeysMap.set(typeNode.name.value, keys);
|
|
467
|
-
}
|
|
468
|
-
keys.push(keyArgumentNode.value.value);
|
|
469
|
-
}
|
|
470
|
-
}
|
|
471
450
|
const fieldDefinitionNodesOfSubgraph = [];
|
|
472
451
|
typeNode.fields?.forEach((fieldNode) => {
|
|
473
452
|
const joinFieldDirectives = fieldNode.directives?.filter(
|
|
@@ -721,6 +700,34 @@ function getStitchingOptionsFromSupergraphSdl(opts) {
|
|
|
721
700
|
graphName,
|
|
722
701
|
fieldDefinitionNodesOfSubgraph
|
|
723
702
|
);
|
|
703
|
+
if (typeNode.kind === graphql.Kind.OBJECT_TYPE_DEFINITION || typeNode.kind === graphql.Kind.INTERFACE_TYPE_DEFINITION) {
|
|
704
|
+
const keyArgumentNode = directiveNode.arguments?.find(
|
|
705
|
+
(argumentNode) => argumentNode.name.value === "key"
|
|
706
|
+
);
|
|
707
|
+
const isResolvable = !directiveNode.arguments?.some(
|
|
708
|
+
(argumentNode) => argumentNode.name.value === "resolvable" && argumentNode.value?.kind === graphql.Kind.BOOLEAN && argumentNode.value.value === false
|
|
709
|
+
);
|
|
710
|
+
if (keyArgumentNode?.value?.kind === graphql.Kind.STRING) {
|
|
711
|
+
const keyArgVal = keyArgumentNode.value.value;
|
|
712
|
+
if (isResolvable) {
|
|
713
|
+
if (typeNode.kind !== graphql.Kind.OBJECT_TYPE_DEFINITION || !fieldDefinitionNodesOfSubgraph.every(
|
|
714
|
+
(fieldDefNode) => keyArgVal.includes(fieldDefNode.name.value)
|
|
715
|
+
)) {
|
|
716
|
+
let typeNameKeysMap = typeNameKeysBySubgraphMap.get(graphName);
|
|
717
|
+
if (!typeNameKeysMap) {
|
|
718
|
+
typeNameKeysMap = /* @__PURE__ */ new Map();
|
|
719
|
+
typeNameKeysBySubgraphMap.set(graphName, typeNameKeysMap);
|
|
720
|
+
}
|
|
721
|
+
let keys = typeNameKeysMap.get(typeNode.name.value);
|
|
722
|
+
if (!keys) {
|
|
723
|
+
keys = [];
|
|
724
|
+
typeNameKeysMap.set(typeNode.name.value, keys);
|
|
725
|
+
}
|
|
726
|
+
keys.push(keyArgVal);
|
|
727
|
+
}
|
|
728
|
+
}
|
|
729
|
+
}
|
|
730
|
+
}
|
|
724
731
|
}
|
|
725
732
|
}
|
|
726
733
|
});
|
package/dist/index.js
CHANGED
|
@@ -445,27 +445,6 @@ function getStitchingOptionsFromSupergraphSdl(opts) {
|
|
|
445
445
|
);
|
|
446
446
|
if (joinTypeGraphArgNode?.value?.kind === Kind.ENUM) {
|
|
447
447
|
const graphName = joinTypeGraphArgNode.value.value;
|
|
448
|
-
if (typeNode.kind === Kind.OBJECT_TYPE_DEFINITION || typeNode.kind === Kind.INTERFACE_TYPE_DEFINITION) {
|
|
449
|
-
const keyArgumentNode = directiveNode.arguments?.find(
|
|
450
|
-
(argumentNode) => argumentNode.name.value === "key"
|
|
451
|
-
);
|
|
452
|
-
const isResolvable = !directiveNode.arguments?.some(
|
|
453
|
-
(argumentNode) => argumentNode.name.value === "resolvable" && argumentNode.value?.kind === Kind.BOOLEAN && argumentNode.value.value === false
|
|
454
|
-
);
|
|
455
|
-
if (isResolvable && keyArgumentNode?.value?.kind === Kind.STRING) {
|
|
456
|
-
let typeNameKeysMap = typeNameKeysBySubgraphMap.get(graphName);
|
|
457
|
-
if (!typeNameKeysMap) {
|
|
458
|
-
typeNameKeysMap = /* @__PURE__ */ new Map();
|
|
459
|
-
typeNameKeysBySubgraphMap.set(graphName, typeNameKeysMap);
|
|
460
|
-
}
|
|
461
|
-
let keys = typeNameKeysMap.get(typeNode.name.value);
|
|
462
|
-
if (!keys) {
|
|
463
|
-
keys = [];
|
|
464
|
-
typeNameKeysMap.set(typeNode.name.value, keys);
|
|
465
|
-
}
|
|
466
|
-
keys.push(keyArgumentNode.value.value);
|
|
467
|
-
}
|
|
468
|
-
}
|
|
469
448
|
const fieldDefinitionNodesOfSubgraph = [];
|
|
470
449
|
typeNode.fields?.forEach((fieldNode) => {
|
|
471
450
|
const joinFieldDirectives = fieldNode.directives?.filter(
|
|
@@ -719,6 +698,34 @@ function getStitchingOptionsFromSupergraphSdl(opts) {
|
|
|
719
698
|
graphName,
|
|
720
699
|
fieldDefinitionNodesOfSubgraph
|
|
721
700
|
);
|
|
701
|
+
if (typeNode.kind === Kind.OBJECT_TYPE_DEFINITION || typeNode.kind === Kind.INTERFACE_TYPE_DEFINITION) {
|
|
702
|
+
const keyArgumentNode = directiveNode.arguments?.find(
|
|
703
|
+
(argumentNode) => argumentNode.name.value === "key"
|
|
704
|
+
);
|
|
705
|
+
const isResolvable = !directiveNode.arguments?.some(
|
|
706
|
+
(argumentNode) => argumentNode.name.value === "resolvable" && argumentNode.value?.kind === Kind.BOOLEAN && argumentNode.value.value === false
|
|
707
|
+
);
|
|
708
|
+
if (keyArgumentNode?.value?.kind === Kind.STRING) {
|
|
709
|
+
const keyArgVal = keyArgumentNode.value.value;
|
|
710
|
+
if (isResolvable) {
|
|
711
|
+
if (typeNode.kind !== Kind.OBJECT_TYPE_DEFINITION || !fieldDefinitionNodesOfSubgraph.every(
|
|
712
|
+
(fieldDefNode) => keyArgVal.includes(fieldDefNode.name.value)
|
|
713
|
+
)) {
|
|
714
|
+
let typeNameKeysMap = typeNameKeysBySubgraphMap.get(graphName);
|
|
715
|
+
if (!typeNameKeysMap) {
|
|
716
|
+
typeNameKeysMap = /* @__PURE__ */ new Map();
|
|
717
|
+
typeNameKeysBySubgraphMap.set(graphName, typeNameKeysMap);
|
|
718
|
+
}
|
|
719
|
+
let keys = typeNameKeysMap.get(typeNode.name.value);
|
|
720
|
+
if (!keys) {
|
|
721
|
+
keys = [];
|
|
722
|
+
typeNameKeysMap.set(typeNode.name.value, keys);
|
|
723
|
+
}
|
|
724
|
+
keys.push(keyArgVal);
|
|
725
|
+
}
|
|
726
|
+
}
|
|
727
|
+
}
|
|
728
|
+
}
|
|
722
729
|
}
|
|
723
730
|
}
|
|
724
731
|
});
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@graphql-tools/federation",
|
|
3
|
-
"version": "4.3.
|
|
3
|
+
"version": "4.3.1-alpha-bcdf6a1333a84f3ead114d676e66e609c350e084",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Useful tools to create and manipulate GraphQL schemas.",
|
|
6
6
|
"repository": {
|
|
@@ -38,14 +38,14 @@
|
|
|
38
38
|
"graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0"
|
|
39
39
|
},
|
|
40
40
|
"dependencies": {
|
|
41
|
-
"@graphql-tools/delegate": "
|
|
41
|
+
"@graphql-tools/delegate": "12.0.12-alpha-bcdf6a1333a84f3ead114d676e66e609c350e084",
|
|
42
42
|
"@graphql-tools/executor": "^1.4.13",
|
|
43
43
|
"@graphql-tools/executor-http": "^3.1.1",
|
|
44
44
|
"@graphql-tools/merge": "^9.1.5",
|
|
45
45
|
"@graphql-tools/schema": "^10.0.29",
|
|
46
|
-
"@graphql-tools/stitch": "
|
|
46
|
+
"@graphql-tools/stitch": "10.1.16-alpha-bcdf6a1333a84f3ead114d676e66e609c350e084",
|
|
47
47
|
"@graphql-tools/utils": "^11.0.0",
|
|
48
|
-
"@graphql-tools/wrap": "
|
|
48
|
+
"@graphql-tools/wrap": "11.1.12-alpha-bcdf6a1333a84f3ead114d676e66e609c350e084",
|
|
49
49
|
"@graphql-yoga/typed-event-target": "^3.0.2",
|
|
50
50
|
"@whatwg-node/disposablestack": "^0.0.6",
|
|
51
51
|
"@whatwg-node/events": "^0.1.2",
|