Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
123 commits
Select commit Hold shift + click to select a range
203a033
upgrade executor to non-duplicating incremental delivery format
yaacovCR Jul 2, 2024
2c6fb0f
chore(dependencies): updated changesets for modified dependencies
github-actions[bot] Aug 13, 2024
d43cfd2
Cleanup
ardatan Nov 14, 2024
efb1c85
Cleanup
ardatan Nov 14, 2024
56cd782
chore(deps): update dependency eslint-plugin-n to v17.13.2 (#6685)
renovate[bot] Nov 15, 2024
a162484
Cleanup
ardatan Nov 15, 2024
7b24e0a
Fix build
ardatan Nov 15, 2024
230f8e9
Remove extra alpha
ardatan Nov 15, 2024
85fa6f3
Remove extra reference
ardatan Nov 15, 2024
0e73be7
chore(config): migrate config renovate.json (#6687)
renovate[bot] Nov 15, 2024
f7a2c13
chore(deps): update dependency svelte2tsx to v0.7.25 (#6686)
renovate[bot] Nov 15, 2024
ed7a654
Revert "chore(deps): update dependency svelte2tsx to v0.7.25 (#6686)"…
ardatan Nov 15, 2024
2f4b11b
chore(deps): update dependency typedoc-plugin-rename-defaults to v0.7…
renovate[bot] Nov 15, 2024
3b76acf
fix(deps): update dependency next to v15.0.3 (#6657)
renovate[bot] Nov 15, 2024
5313228
chore(deps): update all non-major dependencies (#6689)
renovate[bot] Nov 15, 2024
c7b6b6d
chore(deps): update dependency eslint to v9.15.0 (#6690)
renovate[bot] Nov 15, 2024
b83297e
chore(deps): update dependency svelte to v5.2.1 (#6692)
renovate[bot] Nov 16, 2024
6d9d9c4
chore(deps): update all non-major dependencies (#6693)
renovate[bot] Nov 16, 2024
7af806c
chore(deps): lock file maintenance (#6694)
renovate[bot] Nov 18, 2024
2a0dd3a
chore(deps): update dependency husky to v9.1.7 (#6695)
renovate[bot] Nov 18, 2024
cf586df
chore(deps): update dependency svelte to v5.2.3 (#6696)
renovate[bot] Nov 18, 2024
fc0eb20
chore(deps): update typescript-eslint monorepo to v8.15.0 (#6697)
renovate[bot] Nov 19, 2024
37d7b8c
fix(deps): update all non-major dependencies (#6698)
renovate[bot] Nov 19, 2024
577a3d8
chore(deps): update dependency svelte to v5.2.4 (#6699)
renovate[bot] Nov 19, 2024
6c1a257
chore(deps): update dependency @changesets/cli to v2.27.10 (#6700)
renovate[bot] Nov 20, 2024
66b6a98
chore(deps): update all non-major dependencies (#6701)
renovate[bot] Nov 20, 2024
9b17bf7
fix(deps): update all non-major dependencies (#6702)
renovate[bot] Nov 20, 2024
7c32099
chore(deps): update dependency svelte to v5.2.7 (#6703)
renovate[bot] Nov 21, 2024
6cb7e00
chore(deps): update dependency puppeteer to v23.9.0 (#6704)
renovate[bot] Nov 21, 2024
4ce2e24
chore(deps): update dependency eslint-plugin-n to v17.14.0 (#6705)
renovate[bot] Nov 22, 2024
414e404
feat(utils): new helpers for promises
ardatan Nov 22, 2024
def796f
Faster CI
ardatan Nov 22, 2024
3326645
chore(release): update monorepo packages versions (#6706)
theguild-bot Nov 22, 2024
8c713e3
chore(deps): update dependency @graphql-tools/stitch to v9.4.1 (#6707)
renovate[bot] Nov 22, 2024
7e52162
chore(deps): update dependency svelte2tsx to v0.7.28 (#6710)
renovate[bot] Nov 22, 2024
47e4f13
chore(deps): update dependency @types/node to v22.9.3 (#6712)
renovate[bot] Nov 23, 2024
bf5444a
chore(deps): update all non-major dependencies (#6714)
renovate[bot] Nov 25, 2024
d38ee1c
chore(deps): update dependency @types/node to v22.9.4 (#6716)
renovate[bot] Nov 25, 2024
3644f90
chore(deps): update typescript-eslint monorepo to v8.16.0 (#6715)
renovate[bot] Nov 26, 2024
0ff6470
chore(deps): update all non-major dependencies (#6717)
renovate[bot] Nov 26, 2024
9a3dc1b
chore(deps): update dependency prettier to v3.4.1 (#6718)
renovate[bot] Nov 26, 2024
6990194
chore(deps): update dependency svelte to v5.2.9 (#6719)
renovate[bot] Nov 27, 2024
4b86908
chore(deps): update dependency eslint-plugin-promise to v7.2.1 (#6720)
renovate[bot] Nov 27, 2024
b656f66
chore(deps): update dependency typedoc-plugin-rename-defaults to v0.7…
renovate[bot] Nov 27, 2024
a9dbd3b
fix(deps): update all non-major dependencies (#6722)
renovate[bot] Nov 27, 2024
1e02935
fix(load): handle parse errors correctly when it gets a string
ardatan Nov 27, 2024
d75b5c6
chore(deps): lock file maintenance (#6713)
renovate[bot] Nov 27, 2024
c0c5979
Fix lint
ardatan Nov 27, 2024
c506052
chore(release): update monorepo packages versions (#6709)
theguild-bot Nov 27, 2024
b3ce7e8
chore(deps): update dependency svelte to v5.2.10 (#6723)
renovate[bot] Nov 28, 2024
07be752
chore(deps): update dependency @types/node to v22.10.1 (#6724)
renovate[bot] Nov 28, 2024
27efe7c
chore(deps): update dependency graphql-scalars to v1.24.0 (#6725)
renovate[bot] Nov 28, 2024
dd11248
fix(deps): update all non-major dependencies (#6726)
renovate[bot] Dec 2, 2024
c99d37e
chore(deps): lock file maintenance (#6727)
renovate[bot] Dec 2, 2024
b62660b
fix(deps): update all non-major dependencies (#6728)
renovate[bot] Dec 2, 2024
7ef3b68
chore(deps): update typescript-eslint monorepo to v8.17.0 (#6729)
renovate[bot] Dec 2, 2024
15eef1a
chore(deps): update dependency @graphql-tools/stitch to v9.4.6 (#6730)
renovate[bot] Dec 3, 2024
ea91d21
fix(deps): update all non-major dependencies (#6731)
renovate[bot] Dec 3, 2024
e2a7e79
chore(deps): update all non-major dependencies (#6732)
renovate[bot] Dec 3, 2024
81ebdac
chore(deps): update all non-major dependencies (#6733)
renovate[bot] Dec 3, 2024
f4d5d6f
chore(deps): update dependency svelte to v5.5.3 (#6734)
renovate[bot] Dec 4, 2024
4fd0d3a
chore(deps): update dependency content-tag to v3 (#6667)
renovate[bot] Dec 4, 2024
b43a59f
chore(deps): update dependency prettier to v3.4.2 (#6735)
renovate[bot] Dec 4, 2024
696a0d5
chore(deps): update dependency @theguild/prettier-config to v3 (#6662)
renovate[bot] Dec 4, 2024
1b24656
fix(utils): handle array of primitives correctly (#6737)
ardatan Dec 4, 2024
ab4c37c
chore(release): update monorepo packages versions (#6736)
theguild-bot Dec 4, 2024
97767ff
chore(deps): update all non-major dependencies (#6738)
renovate[bot] Dec 4, 2024
1004574
chore(deps): update all non-major dependencies (#6739)
renovate[bot] Dec 4, 2024
f967edb
chore(deps): update all non-major dependencies (#6740)
renovate[bot] Dec 5, 2024
6870c04
fix(deps): update dependency @graphql-tools/executor-http to v1.1.13 …
renovate[bot] Dec 5, 2024
1e1d59f
chore(deps): update all non-major dependencies (#6742)
renovate[bot] Dec 5, 2024
46a7eda
chore(deps): update dependency express to v4.21.2 (#6744)
renovate[bot] Dec 5, 2024
37b9ef6
chore(deps): update react monorepo to v19 (#6743)
renovate[bot] Dec 5, 2024
df4bf22
fix(deps): update dependency next to v15.0.4 (#6745)
renovate[bot] Dec 6, 2024
4f294d9
fix(deps): update all non-major dependencies (#6746)
renovate[bot] Dec 6, 2024
c722c5b
chore(deps): update dependency svelte to v5.8.1 (#6747)
renovate[bot] Dec 7, 2024
69f0c82
chore(deps): update dependency svelte to v5.9.0 (#6748)
renovate[bot] Dec 8, 2024
d4e0187
chore(deps): lock file maintenance (#6749)
renovate[bot] Dec 9, 2024
000a320
Update TypeScript (#6750)
ardatan Dec 9, 2024
f1b5092
chore(deps): update dependency typedoc to v0.27.4 (#6284)
renovate[bot] Dec 9, 2024
5ac65d4
chore(deps): update dependency chalk to v5 (#6684)
renovate[bot] Dec 9, 2024
9998a18
chore(deps): update dependency typedoc-plugin-rename-defaults to v0.7…
renovate[bot] Dec 9, 2024
109e222
chore(deps): update dependency typedoc-plugin-markdown to v3.17.1 (#5…
renovate[bot] Dec 9, 2024
09bb0fe
chore(deps): update typescript-eslint monorepo to v8.18.0 (#6755)
renovate[bot] Dec 9, 2024
307fa06
chore(deps): update all non-major dependencies (#6754)
renovate[bot] Dec 10, 2024
bb90a03
chore(deps): update dependency eslint-plugin-n to v17.15.0 (#6756)
renovate[bot] Dec 10, 2024
426bcc2
fix(deps): update @theguild/components + nextra (#6661)
renovate[bot] Dec 10, 2024
e6a997d
chore(deps): update all non-major dependencies (#6757)
renovate[bot] Dec 10, 2024
3f6e9fa
fix(deps): update dependency next to v15.1.0 (#6758)
renovate[bot] Dec 10, 2024
2d91788
chore(deps): update dependency @types/node to v22.10.2 (#6759)
renovate[bot] Dec 11, 2024
6e95bc6
chore(release): update monorepo packages versions (#6751)
theguild-bot Dec 11, 2024
41104fb
chore(deps): update dependency svelte to v5.11.0 (#6760)
renovate[bot] Dec 11, 2024
1c808d0
chore(deps): update dependency svelte to v5.11.2 (#6761)
renovate[bot] Dec 12, 2024
b703662
fix(deps): update dependency @graphql-tools/executor-http to v1.2.0 (…
renovate[bot] Dec 12, 2024
05f563f
chore(deps): update dependency puppeteer to v23.10.4 (#6763)
renovate[bot] Dec 12, 2024
3e94491
chore(deps): update dependency @apollo/client to v3.12.3 (#6764)
renovate[bot] Dec 12, 2024
aeee7db
chore(deps): update dependency svelte to v5.12.0 (#6765)
renovate[bot] Dec 13, 2024
020b9e4
enhance: `AbortSignal` in `GraphQLResolveInfo`, and `AbortSignal` in …
ardatan Dec 13, 2024
f5b83d8
chore(release): update monorepo packages versions (#6766)
theguild-bot Dec 13, 2024
6e154ba
fix(deps): update dependency @theguild/components to v7.4.0 (#6768)
renovate[bot] Dec 13, 2024
8e2f782
fix(deps): update all non-major dependencies (#6767)
renovate[bot] Dec 14, 2024
613b2f8
chore(deps): update dependency svelte to v5.13.0 (#6770)
renovate[bot] Dec 14, 2024
b1146e6
chore(deps): update all non-major dependencies (#6771)
renovate[bot] Dec 14, 2024
6a8123b
Simplify CI (#6769)
ardatan Dec 14, 2024
f52dd96
chore(release): update monorepo packages versions (#6772)
theguild-bot Dec 14, 2024
680efda
chore(deps): update all non-major dependencies (#6773)
renovate[bot] Dec 16, 2024
42f83a1
chore(deps): lock file maintenance (#6774)
renovate[bot] Dec 16, 2024
6dacc27
chore(deps): update dependency @theguild/tailwind-config to v0.6.2 (#…
renovate[bot] Dec 16, 2024
325ae94
chore(deps): update typescript-eslint monorepo to v8.18.1 (#6778)
renovate[bot] Dec 16, 2024
f73ce3f
chore(deps): update dependency svelte to v5.14.1 (#6779)
renovate[bot] Dec 17, 2024
fd3cc70
chore(deps): update all non-major dependencies (#6780)
renovate[bot] Dec 17, 2024
10e7c14
fix(deps): update dependency next to v15.1.1 (#6781)
renovate[bot] Dec 17, 2024
063b208
chore(deps): update dependency svelte to v5.14.3 (#6782)
renovate[bot] Dec 18, 2024
21cf0e4
chore(deps): update dependency @changesets/cli to v2.27.11 (#6783)
renovate[bot] Dec 18, 2024
7053626
chore(deps): update dependency svelte to v5.14.4 (#6784)
renovate[bot] Dec 18, 2024
b13858d
chore(deps): update dependency puppeteer to v23.11.0 (#6785)
renovate[bot] Dec 18, 2024
dc2e460
fix(deps): update dependency next to v15.1.2 (#6787)
renovate[bot] Dec 19, 2024
5ecdb9d
chore(deps): update all non-major dependencies (#6786)
renovate[bot] Dec 19, 2024
102fa19
wip
n1ru4l Dec 20, 2024
d51d24a
Merge remote-tracking branch origin/master into incremental-delivery-…
n1ru4l Dec 20, 2024
b7b4abf
reduce diff and changesets
n1ru4l Dec 20, 2024
32cf79d
missing changeset
n1ru4l Dec 20, 2024
1b99d53
chore(dependencies): updated changesets for modified dependencies
github-actions[bot] Dec 20, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions .changeset/@graphql-tools_utils-6243-dependencies.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"@graphql-tools/utils": patch
---
dependencies updates:
- Added dependency [`dlv@^1.1.3` ↗︎](https://www.npmjs.com/package/dlv/v/1.1.3) (to `dependencies`)
5 changes: 5 additions & 0 deletions .changeset/@graphql-tools_utils-6790-dependencies.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"@graphql-tools/utils": patch
---
dependencies updates:
- Added dependency [`dlv@^1.1.3` ↗︎](https://www.npmjs.com/package/dlv/v/1.1.3) (to `dependencies`)
5 changes: 5 additions & 0 deletions .changeset/chatty-dryers-breathe.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
'@graphql-tools/utils': minor
---

Add helper function `memoize3of4` for memoizing values.
43 changes: 43 additions & 0 deletions .changeset/fifty-bobcats-jog.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
---
'@graphql-tools/executor': major
---

Support the new non-duplicating Incremental Delivery format.

GraphQL Incremental Delivery is moving to a [new response format without duplication](https://github.com/graphql/defer-stream-wg/discussions/69).

This PR updates the executor within graphql-tools to avoid any duplication of fields as per the new format, a BREAKING CHANGE, (released in graphql-js `v17.0.0-alpha.3`). The original version of incremental delivery was released in graphql-js `v17.0.0-alpha.2`.

The new format also includes new `pending` and `completed` entries where the `pending` entries assign `ids` to `defer` and `stream` entries, and the `completed` entries are sent as deferred fragments or streams complete. In the new format, the `path` and `label` are only sent along with the `id` within the `pending` entries. Also, incremental errors (i.e. errors that bubble up to a position that has already been sent) are sent within the `errors` field on `completed` entries, rather than as `incremental` entries with `data` or `items` set to `null`. The missing `path` and `label` fields and different mechanism for reporting incremental errors are also a BREAKING CHANGE.

Along with the new format, the GraphQL Working Group has also decided to disable incremental delivery support for subscriptions (1) to gather more information about use cases and (2) explore how to interleaving the incremental response streams generated from different source events into one overall subscription response stream. This is also a BREAKING CHANGE.

Library users can explicitly opt in to the older format by call `execute` with the following option:

```ts
import {execute, IncrementalDeliveryPresetLegacy} from 'graphql'

const result = await execute({
...,
incrementalPreset: IncrementalDeliveryPresetLegacy,
});
```

The default value for `incrementalPreset` when omitted is `IncrementalDeliveryPreset2023_06_22`, which enables the new behaviors described above. The new behaviors can also be disabled granularly as follows:

```ts
import {execute, IncrementalDeliveryPreset2023_06_22} from 'graphql'

const result = await execute({
...,
incrementalPreset: {
...IncrementalDeliveryPreset2023_06_22,
allowSubscription: true
}
});
```

Setting `deferWithoutDuplication` to `false` will re-enable deduplication according to the older format.
Setting `useIncrementalNotifications` to `false` will (1) omit the `pending` entries, (2) send `path` and `label` on every `incremental` entry, (3) omit `completed` entries, and (4) send incremental errors within `incremental` entries along with a `data` or `items` field set to `null`.
Setting `allowSubscription` to `false` will re-enable the use of incremental delivery with subscriptions.
```
15 changes: 15 additions & 0 deletions .changeset/mean-parents-do.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
---
'@graphql-tools/utils': minor
---

Support the new incremental protocol for `mergeIncrementalResult`.

The `mergeIncrementalResult` function can now merge the [new response format without duplication](https://github.com/graphql/defer-stream-wg/discussions/69).

```ts
const executionResult = { data: { user: { name: 'John' } }, pending: [{ id: '0', path: [] }] };
const incrementalResult = { incremental: [{ id: '0', data: { user: { age: 42 } } }] };

console.log(mergeIncrementalResult({ incrementalResult, executionResult }));
// logs: { user: { age: 42, name: 'John' } }
```
7 changes: 7 additions & 0 deletions .changeset/thirty-bees-know.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
---
'@graphql-tools/utils': minor
---

Add new incremental delivery fields to the `ExecutionResult` type.

The `id`, `subPath`, `pending` and `completed` properties specified by [in the following proposal](https://github.com/graphql/defer-stream-wg/discussions/69) are now defined within `ExecutionResult`.
1 change: 1 addition & 0 deletions .eslintrc.cjs
Original file line number Diff line number Diff line change
Expand Up @@ -102,6 +102,7 @@ module.exports = {
'prefer-rest-params': 'off',
'no-throw-literal': 'off',
'promise/param-names': 'off',
camelcase: ['error', { allow: ['IncrementalDeliveryPreset2023_06_22'] }],
},
},
{
Expand Down
59 changes: 0 additions & 59 deletions .github/workflows/benchmark.yml

This file was deleted.

5 changes: 4 additions & 1 deletion .github/workflows/pr.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,9 @@ on:
branches:
- master

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}

jobs:
dependencies:
uses: the-guild-org/shared-config/.github/workflows/changesets-dependencies.yaml@main
Expand All @@ -20,7 +23,7 @@ jobs:
with:
npmTag: alpha
buildScript: build
nodeVersion: 18
nodeVersion: 22
secrets:
githubToken: ${{ secrets.GUILD_BOT_TOKEN }}
npmToken: ${{ secrets.NODE_AUTH_TOKEN }}
5 changes: 4 additions & 1 deletion .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,9 @@ on:
branches:
- master

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}

jobs:
stable:
permissions:
Expand All @@ -12,7 +15,7 @@ jobs:
uses: the-guild-org/shared-config/.github/workflows/release-stable.yml@main
with:
releaseScript: release
nodeVersion: 18
nodeVersion: 22
secrets:
githubToken: ${{ secrets.GUILD_BOT_TOKEN }}
npmToken: ${{ secrets.NODE_AUTH_TOKEN }}
Loading
Loading