NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
npm · #3208 most downloaded on npm
A set of utils for faster development of GraphQL tools
Last release 28 days ago
08 Sep 2026
Ships fairly regularly
a new release about every 2 weeks
Nearly every release is documented
notes for 59 of the last 60 stable releases
Nothing withdrawn
no release was ever pulled
6 years old
3384 releases · first in 2020
One column per quarter.
Nothing published for this version
Nothing published for this version
149afddb: fix: getting ready for GraphQL v16
Nothing published for this version
Nothing published for this version
Nothing published for this version
d88a85a4: fix(wrap): fixing variables missing on wrap/MapLeafValues transform
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
c5b0719c: feat: GraphQL v16 support
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
e50852e6: use version ranges instead of a fixed version for the graphql-tools package versions
Nothing published for this version
Nothing published for this version
Nothing published for this version
Updated dependencies [2c807ddb]
Updated dependencies [9a13357c]
Updated dependencies [b9684631]
a7dee807: fix(wrap): handle non nullable input variables correctly
343e697e: Fix TransformQuery for path longer than 1
Updated dependencies [d47dcf42]
Updated dependencies [ded29f3d]
Updated dependencies [7fdef335]
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Updated dependencies [04830049]
Updated dependencies [b823dbaf]
Updated dependencies [d93945fa]
Nothing published for this version
c36defbe: fix(delegate): fix ESM import
BREAKING CHANGE: getDirectives now always return an array of individual DirectiveAnnotation objects consisting of name and args properties.
7d3e3006: BREAKING CHANGE
makeRemoteExecutableSchema has been removed.wrapSchema insteaddae6dc7b: refactor: ExecutionParams type replaced by Request type
rootValue property is now a part of the Request type.
When delegating with delegateToSchema, rootValue can be set multiple ways:
When using wrapSchema/stitchSchemas, a subschemaConfig can specify the createProxyingResolver function which can pass whatever rootValue it wants to delegateToSchema as above.
c42e811d: BREAKING CHANGES;
Request to ExecutionRequestoperationType: OperationTypeNode field in ExecutionRequestcontext in createRequest and createRequestInfo instead of delegateToSchemaIt doesn't rely on info.operation.operationType to allow the user to call an operation from different root type. And it doesn't call getOperationAST again and again to get operation type from the document/operation because we have it in Request and ExecutionParams https://github.com/ardatan/graphql-tools/pull/3166/files#diff-d4824895ea613dcc1f710c3ac82e952fe0ca12391b671f70d9f2d90d5656fdceR38
Improvements;
defaultExecutor for a single GraphQLSchema so allow getBatchingExecutor to memoize
batchingExecutor correctly.defaultExecutor is created for subscription and other operation
types. Only one executor is used.Batch executor is memoized by
executorreference butcreateDefaultExecutordidn't memoize the default executor so this memoization wasn't working correctly onbatch-executeside. https://github.com/ardatan/graphql-tools/blob/remove-info-executor/packages/batch-execute/src/getBatchingExecutor.ts#L9
7d3e3006: BREAKING CHANGE
AggregateError
implementation. The major difference is the individual errors are kept under errors property
instead of the object itself with Symbol.iterator.// From;
for (const error of aggregateError)
// To;
for (const error of aggregateError.errors)
c0ca3190: BREAKING CHANGE
introspectSchemaSync, introspectSchema already handles sync execution74581cf3: fix(getDirectives): preserve order around repeatable directives
BREAKING CHANGE: getDirectives now always return an array of individual DirectiveAnnotation
objects consisting of name and args properties.
New useful function getDirective returns an array of objects representing any args for each use
of a single directive (returning the empty object {} when a directive is used without
arguments).
Note: The getDirective function returns an array even when the specified directive is
non-repeatable. This is because one use of this function is to throw an error if more than one
directive annotation is used for a non repeatable directive!
When specifying directives in extensions, one can use either the old or new format.
c0ca3190: BREAKING CHANGE
Executor can receive AsyncIterable and subscriptions will also be handled by
Executor. This is a future-proof change for defer, stream and live queriesNothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Your coding agent can read these notes before it upgrades. Set up the MCP server →