Skip to content

Commit 696f9c7

Browse files
committed
fix(federation): do not import @link from spec
1 parent db11a7d commit 696f9c7

File tree

3 files changed

+13
-5
lines changed

3 files changed

+13
-5
lines changed

.changeset/lemon-comics-brake.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
'@graphql-mesh/transform-federation': patch
3+
---
4+
5+
Do not import @link from the spec

packages/transforms/federation/src/index.ts

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -194,16 +194,19 @@ export default class FederationTransform implements MeshTransform {
194194
schemaWithUnionType.extensions = schemaWithUnionType.extensions || {};
195195
const directivesObj: any = ((schemaWithUnionType.extensions as any).directives =
196196
schemaWithUnionType.extensions.directives || {});
197-
directivesObj.link = {
198-
url: 'https://specs.apollo.dev/federation/' + (this.config.version || 'v2.0'),
199-
import: federationDirectives.filter(name => name !== 'link').map(dirName => `@${dirName}`),
200-
};
201197

202198
const existingDirectives = schemaWithUnionType.getDirectives();
203199
const filteredDirectives = existingDirectives.filter(directive =>
204200
federationDirectives.includes(directive.name),
205201
);
206202

203+
directivesObj.link = {
204+
url: 'https://specs.apollo.dev/federation/' + (this.config.version || 'v2.0'),
205+
import: filteredDirectives
206+
.filter(({ name }) => name !== 'link')
207+
.map(dirName => `@${dirName.name}`),
208+
};
209+
207210
if (existingDirectives.length === filteredDirectives.length) {
208211
return schemaWithUnionType;
209212
}

packages/transforms/federation/test/federation.spec.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ describe('transform-federation', () => {
3838
schema,
3939
});
4040
expect(printSchemaWithDirectives(transformedSchema)).toMatchInlineSnapshot(`
41-
"schema @link(url: "https://specs.apollo.dev/federation/v2.0", import: ["@extends", "@external", "@inaccessible", "@key", "@override", "@provides", "@requires", "@shareable", "@tag"]) {
41+
"schema @link(url: "https://specs.apollo.dev/federation/v2.0", import: []) {
4242
query: Query
4343
}
4444

0 commit comments

Comments
 (0)