Skip to content

Commit 4b96787

Browse files
authored
feat: support mercurius v12 (#13)
* support mervurius v12 * fix test * pnpmp * remove .idea * .gitignore * sort import * sort import * run prettier * fix readme
1 parent 9a1dbc3 commit 4b96787

File tree

5 files changed

+111
-31
lines changed

5 files changed

+111
-31
lines changed

.gitignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -102,3 +102,6 @@ dist
102102

103103
# TernJS port file
104104
.tern-port
105+
106+
.idea/
107+
.vscode/

README.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -313,6 +313,8 @@ In a federated service it's useful to test if a service is extending the entity
313313
An entity can be federated on a single field:
314314

315315
```ts
316+
import { mercuriusFederationPlugin } from '@mercuriusjs/federation'
317+
316318
const schema = `
317319
type Post @key(fields: "id") {
318320
id: ID! @external
@@ -326,14 +328,13 @@ const schema = `
326328
`
327329

328330
const app = fastify()
329-
app.register(mercurius, {
331+
app.register(mercuriusFederationPlugin, {
330332
schema,
331333
resolvers: {
332334
User: {
333335
posts: () => [{ id: 'post-id', description: 'Post description' }],
334336
},
335337
},
336-
federationMetadata: true,
337338
})
338339

339340
const client = createMercuriusTestClient(app)
@@ -379,14 +380,13 @@ const schema = `
379380
`
380381

381382
const app = fastify()
382-
app.register(mercurius, {
383+
app.register(mercuriusFederationPlugin, {
383384
schema,
384385
resolvers: {
385386
Product: {
386387
category: () => ({ id: 'product-category', name: 'Stub category' }),
387388
},
388389
},
389-
federationMetadata: true,
390390
})
391391

392392
const client = createMercuriusTestClient(app)

package.json

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,8 @@
3636
},
3737
"devDependencies": {
3838
"@fastify/cookie": "^8.3.0",
39+
"@mercuriusjs/federation": "^1.0.1",
40+
"@mercuriusjs/gateway": "^1.2.0",
3941
"@types/cookie": "^0.5.1",
4042
"@types/node": "^14.18.32",
4143
"@types/readable-stream": "^2.3.14",
@@ -47,7 +49,7 @@
4749
"graphql": "^16.6.0",
4850
"graphql-tag": "^2.12.6",
4951
"husky": "^8.0.1",
50-
"mercurius": "^11.0.1",
52+
"mercurius": "^12.0.0",
5153
"mqemitter": "^5.0.0",
5254
"prettier": "^2.7.1",
5355
"pretty-quick": "^3.1.3",
@@ -58,7 +60,9 @@
5860
"peerDependencies": {
5961
"fastify": "^4.0.0",
6062
"graphql": "*",
61-
"mercurius": "^11.0.0"
63+
"@mercuriusjs/federation": "^1.0.1",
64+
"@mercuriusjs/gateway": "^1.2.0",
65+
"mercurius": "^12.0.0"
6266
},
6367
"engines": {
6468
"node": ">=14"

pnpm-lock.yaml

Lines changed: 94 additions & 18 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

test/federated-entity.test.ts

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import { mercuriusFederationPlugin } from '@mercuriusjs/federation'
12
import { fastify } from 'fastify'
23
import mercurius from 'mercurius'
34
import tap from 'tap'
@@ -18,14 +19,13 @@ tap.test('returns single-key federated entity', async (t) => {
1819
`
1920

2021
const app = fastify()
21-
app.register(mercurius, {
22+
app.register(mercuriusFederationPlugin, {
2223
schema,
2324
resolvers: {
2425
User: {
2526
posts: () => [{ id: 'post-id', description: 'Post description' }],
2627
},
2728
},
28-
federationMetadata: true,
2929
})
3030

3131
const client = createMercuriusTestClient(app)
@@ -71,14 +71,13 @@ tap.test('returns multi-key federated entity', async (t) => {
7171
`
7272

7373
const app = fastify()
74-
app.register(mercurius, {
74+
app.register(mercuriusFederationPlugin, {
7575
schema,
7676
resolvers: {
7777
Product: {
7878
category: () => ({ id: 'product-category', name: 'Stub category' }),
7979
},
8080
},
81-
federationMetadata: true,
8281
})
8382

8483
const client = createMercuriusTestClient(app)
@@ -130,7 +129,6 @@ tap.test('throws if service is not federated', async (t) => {
130129
posts: () => [{ id: 'post-id', description: 'Post description' }],
131130
},
132131
},
133-
federationMetadata: false,
134132
})
135133

136134
const client = createMercuriusTestClient(app)
@@ -166,14 +164,13 @@ tap.test('throws if entity is not federated', async (t) => {
166164
`
167165

168166
const app = fastify()
169-
app.register(mercurius, {
167+
app.register(mercuriusFederationPlugin, {
170168
schema,
171169
resolvers: {
172170
User: {
173171
posts: () => [{ id: 'post-id', description: 'Post description' }],
174172
},
175173
},
176-
federationMetadata: true,
177174
})
178175

179176
const client = createMercuriusTestClient(app)

0 commit comments

Comments
 (0)