Packages

@graphql-tools/executor

4.1.5 · 23 Oct 2026MIT6M / weekRepositoryHomepagenpmAtom feed

85 stable releases, newest first, by release line. Notes are quoted as the maintainers published them.

  1. 4.x · latest line
  2. 4.1.5

    23 Oct 2026
    • Use fakePromise / fakeRejectPromise for iterator return / throw / asyncDispose instead of unnecessary async

  3. 4.1.4

    22 Oct 2026
    • Abort listeners on a request AbortSignal are removed when query/mutation execution finishes, not only when the signal aborts.

      addEventListener('abort', listener, { once: true }) drops the listener only when abort fires. A successful request never aborts, so the function stayed on the signal. A new AbortController per request hid this. Reusing one signal (Yoga useExecutionCancellation() plus a stitched buildHTTPExecutor({ fetch: yoga.fetch }) path) left one listener per finished query. Heap snapshots then grew with request count.

      const signal = controller.signal;
      
      await execute({ schema, document, signal });
      await execute({ schema, document, signal });
      // the first request's abort listener is now removed

      Subscriptions still keep the listener until abort, so cancel can close the stream.

  4. 4.1.3

    22 Oct 2026

    Only updates a dependency:@graphql-tools/utils 13.1.2

  5. 4.1.2

    20 Oct 2026
    • Executor now collects @defer fields the way graphql-js 17 IncrementalExecutor does: overlapping fields execute once in the parent group instead of again in the deferred patch. Subsequent payloads only contain fields that were not already delivered. When a field is nulled by error bubbling, deferred and streamed work at or under that path is cancelled (and ancestor patches that would write into the nulled subtree are dropped), matching graphql-js 17 hasNulledPosition. Default / non-incremental execution still uses the previous collect path.

  6. 4.1.1

    20 Oct 2026

    Only updates a dependency:@graphql-tools/utils 13.1.1

  7. 4.1.0

    20 Oct 2026
    • @graphql-tools/executor can publish both incremental delivery payload formats from one execution kernel. Pass incrementalSpec: 'v0.1' | 'v0.2' on execute / subscribe / normalizedExecutor (also on ExecutionRequest for executorFromSchema). 'v0.1' remains the default and keeps the existing path / label patches used with multipart/mixed;deferSpec=20220824. 'v0.2' emits Apollo incremental v0.2 payloads (pending with id and path, incremental with id and optional subPath, completed) used with multipart/mixed;incrementalSpec=v0.2.

      Field execution, @defer / @stream scheduling, and AbortSignal cancellation are shared. Spec-specific JSON is built by a publisher: v0.1 still yields { incremental, hasNext }; v0.2 assigns ids when a pending group is first announced, groups streamed items under one pending path, and reports completion separately. Nested @defer patches are collected as children of the parent patch so v0.2 can announce the inner fragment only after the parent is pending, without making the nested fragment wait on the parent's promise (v0.1 sibling completion is unchanged aside from incremental array order).

      Publisher state (Map / Set of ids) is allocated only for 'v0.2'. StreamGroup is created only for v0.2 and only when items are actually streamed. v0.2 stream completion uses an open-count on the group instead of scanning subsequentPayloads.

      mergeIncrementalResult still merges v0.1 path / items patches. For v0.2 it records pending ids on the execution result, writes deferred data at pending.path + subPath, appends streamed items onto the list at pending.path, and folds completed.errors into errors. visitResult flattens nested deferred patches so result visiting still sees fields that live under a child @defer.

  8. 4.0.1 – 4.0.22 releases that only update dependencies@graphql-tools/utils 13.0.2Show each
  9. 4.0.0

    19 Oct 2026
    • breaking

      stop exporting getVariableValues from @graphql-tools/executor. Use graphql's getVariableValues instead.

      Execution now calls graphql-js directly for variable coercion (including GraphQL 17 SDL input-field defaults on omitted variables). The maintained fork and helpers (values.ts, validateInputValue, etc.) were removed.

  10. 3.x
  11. 3.0.0

    19 Oct 2026
    • breaking

      Drop GraphQL v14/v15 support and require Node.js >= 22.18.

    • On Node.js ≥26.1 (and ≥24.16 where backported), fs.glob followSymlinks is used.

    • On older engines, symlink directories are discovered only under each pattern’s literal prefix (not the whole cwd) and patterns are re-rooted.

  12. 2.x
  13. 2.1.0

    17 Oct 2026
    • Support hideSuggestions on ExecutionArgs and pass it through variable coercion so "Did you mean" suggestions can be omitted from invalid variable errors, matching graphql@17.

  14. 2.0.5

    15 Oct 2026
    • dependencies updates:

    • Preserve response field order when asynchronous resolvers complete, including in deferred data and streamed items.

    • utils: coerce GraphQL 17 argument defaults in getArgumentValues via local input coercion (defaults, missing variables, nested sources)

  15. 2.0.3 – 2.0.42 releases that only update dependencies@graphql-tools/utils 12.0.4Show each
  16. 2.0.2

    30 Sep 2026
    • dependencies updates:

    • dependencies updates:

  17. 2.0.1

    7 Sep 2026

    Only updates a dependency:@graphql-tools/utils 12.0.1

  18. 2.0.0

    12 Aug 2026
    • breaking

      #8346 2273c21 Thanks @ardatan! - This release adds GraphQL v17 support and aligns the existing executor implementation with the latest GraphQL v17 API changes. The following changes are included:

  19. 1.x
  20. 1.5.7

    17 Jul 2026

    Reading the note…

  21. 1.5.6

    17 Jul 2026

    Reading the note…

  22. 1.5.5

    6 Jul 2026

    Reading the note…

  23. 1.5.4

    28 Jun 2026

    Reading the note…

  24. 1.5.3

    23 Apr 2026

    Reading the note…

  25. 1.5.2

    9 Apr 2026

    Reading the note…

  26. 1.5.1

    7 Jan 2026

    Reading the note…

  27. 1.5.0

    28 Nov 2025

    Reading the note…

  28. 1.4.13

    12 Nov 2025

    Reading the note…

  29. 1.4.12

    11 Nov 2025

    Reading the note…

  30. 1.4.11

    4 Nov 2025

    Reading the note…

  31. 1.4.10

    30 Oct 2025

    Reading the note…

  32. 1.4.9

    21 Jul 2025

    Reading the note…

  33. 1.4.8

    17 Jul 2025

    Reading the note…

  34. 1.4.7

    28 Mar 2025

    Reading the note…

  35. 1.4.6

    13 Mar 2025

    Reading the note…

  36. 1.4.5

    13 Mar 2025

    Reading the note…

  37. 1.4.4

    5 Mar 2025

    Reading the note…

  38. 1.4.3

    3 Mar 2025

    Reading the note…

  39. 1.4.2

    25 Feb 2025

    Reading the note…

  40. 1.4.1

    21 Feb 2025

    Reading the note…

  41. 1.4.0

    19 Feb 2025

    Reading the note…

  42. 1.3.14

    10 Feb 2025

    Reading the note…

  43. 1.3.13

    10 Feb 2025

    Reading the note…

  44. 1.3.12

    6 Jan 2025

    Reading the note…

  45. 1.3.11

    2 Jan 2025

    Reading the note…

  46. 1.3.10

    24 Dec 2024

    Reading the note…

  47. 1.3.9

    14 Dec 2024

    Reading the note…

  48. 1.3.8

    13 Dec 2024

    Reading the note…

  49. 1.3.7

    11 Dec 2024

    Reading the note…

  50. 1.3.6

    4 Dec 2024

    Reading the note…

  51. 1.3.5

    27 Nov 2024

    Reading the note…

  52. 1.3.4

    22 Nov 2024

    Reading the note…