Skip to content

Commit b6d6ecf

Browse files
committed
feat(federation): Update Apollo Federation v2.3 @link imports
Adds following Apollo Federation imports: * [`@composeDirective`](https://www.apollographql.com/docs/federation/federated-types/federated-directives#composedirective) * [`@interfaceObject`](https://www.apollographql.com/docs/federation/federated-types/federated-directives#interfaceobject) Resolves: #2659 BREAKING CHANGE: While this PR does not change any API it could be considered a breaking change as code-first users will be automatically upgraded to the latest version of the federation spec (`v2.3`) which requires usage of a compatible composition version and Gateway/Router.
1 parent 1a507c0 commit b6d6ecf

File tree

2 files changed

+10
-8
lines changed

2 files changed

+10
-8
lines changed

packages/graphql/lib/federation/type-defs-federation2.decorator.ts

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,17 +6,19 @@ export class TypeDefsFederation2Decorator {
66
decorate(typeDefs: string, config: Federation2Config = { version: 2 }) {
77
const {
88
directives = [
9-
'@key',
10-
'@shareable',
9+
'@composeDirective',
10+
'@extends',
1111
'@external',
12+
'@inaccessible',
13+
'@interfaceObject',
14+
'@key',
1215
'@override',
16+
'@provides',
1317
'@requires',
18+
'@shareable',
1419
'@tag',
15-
'@inaccessible',
16-
'@extends',
17-
'@provides',
1820
],
19-
importUrl = 'https://specs.apollo.dev/federation/v2.0',
21+
importUrl = 'https://specs.apollo.dev/federation/v2.3',
2022
} = config;
2123
const mappedDirectives = directives
2224
.map((directive) => {

packages/graphql/lib/interfaces/schema-file-config.interface.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,12 +10,12 @@ export interface Federation2Config {
1010
version: 2;
1111
/**
1212
* The imported directives
13-
* @default ['@key', '@shareable', '@external', '@override', '@requires', '@tag', '@inaccessible', '@extends', '@provides']
13+
* @default ['@composeDirective', '@extends', '@external', '@inaccessible', '@interfaceObject', '@key', '@override', '@provides', '@requires', '@shareable', '@tag']
1414
*/
1515
directives?: (string | AliasDirectiveImport)[];
1616
/**
1717
* The import link
18-
* @default 'https://specs.apollo.dev/federation/v2.0'
18+
* @default 'https://specs.apollo.dev/federation/v2.3'
1919
*/
2020
importUrl?: string;
2121
}

0 commit comments

Comments
 (0)