NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
npm · #2001 most downloaded on npm
A set of utils for faster development of GraphQL tools
Last release 3 days ago
01 Oct 2026
Release timing varies
gaps range from 8 days to 3 months
Nearly every release is documented
notes for 60 of the last 60 stable releases
1 version withdrawn
withdrawn after publishing
6 years old
1672 releases · first in 2020
One column per quarter.
Nothing published for this version
Those advanced users accessing the result directly will note the change in error handling. This also allows for the deprecation of unnecessary helper…
be1a1575: ## Breaking Changes:
@graphql-tools/schema)Resolver validation options should now be set to error, warn or ignore rather than true
or false. In previous versions, some of the validators caused errors to be thrown, while some
issued warnings. This changes brings consistency to validator behavior.
The allowResolversNotInSchema has been renamed to requireResolversToMatchSchema, to
harmonize the naming convention of all the validators. The default setting of
requireResolversToMatchSchema is error, matching the previous behavior.
delegateToSchema & @graphql-tools/delegate)The delegateToSchema return value has matured and been formalized as an ExternalObject, in
which all errors are integrated into the GraphQL response, preserving their initial path. Those
advanced users accessing the result directly will note the change in error handling. This also
allows for the deprecation of unnecessary helper functions including slicedError, getErrors,
getErrorsByPathSegment functions. Only external errors with missing or invalid paths must
still be preserved by annotating the remote object with special properties. The new
getUnpathedErrors function is therefore necessary for retrieving only these errors. Note also
the new annotateExternalObject and mergeExternalObjects functions, as well as the renaming
of handleResult to resolveExternalValue.
Transform types and the applySchemaTransforms are now relocated to the delegate package;
applyRequestTransforms/applyResultTransforms functions have been deprecated, however, as
this functionality has been replaced since v6 by the Transformer abstraction.
The transformRequest/transformResult methods are now provided additional delegationContext
and transformationContext arguments -- these were introduced in v6, but previously optional.
The transformSchema method may wish to create additional delegating resolvers and so it is now
provided the subschemaConfig and final (non-executable) transformedSchema parameters. As in
v6, the transformSchema is kicked off once to produce the non-executable version, and then, if
a wrapping schema is being generated, proxying resolvers are created with access to the
(non-executable) initial result. In v7, the individual transformSchema methods also get access
to the result of the first run, if necessary, they can create additional wrapping schema
proxying resolvers.
applySchemaTransforms parameters have been updated to match and support the transformSchema
parameters above.
wrapSchema, makeRemoteExecutableSchema, and @graphql-tools/wrap)wrapSchema and generateProxyingResolvers now only take a single options argument with named
properties of type SubschemaConfig. The previously possible shorthand version with first
argument consisting of a GraphQLSchema and second argument representing the transforms should
be reworked as a SubschemaConfig object.
Similarly, the ICreateProxyingResolverOptions interface that provides the options for the
createProxyingResolver property of SubschemaConfig options has been adjusted. The schema
property previously could be set to a GraphQLSchema or a SubschemaConfig object. This
property has been removed in favor of a subschemaConfig property that will always be a
SubschemaConfig object. The transforms property has been removed; transforms should be
included within the SubschemaConfig object.`
The format of the wrapping schema has solidified. All non-root fields are expected to use
identical resolvers, either defaultMergedResolver or a custom equivalent, with root fields
doing the hard work of proxying. Support for custom merged resolvers throught
createMergedResolver has been deprecated, as custom merging resolvers conflicts when using
stitching's type merging, where resolvers are expected to be identical across subschemas.
The WrapFields transform's wrappingResolver option has been removed, as this complicates
multiple wrapping layers, as well as planned functionality to wrap subscription root fields in
potentially multiple layers, as the wrapping resolvers may be different in different layers.
Modifying resolvers can still be performed by use of an additional transform such as
TransformRootFields or TransformObjectFields.
The ExtendSchema transform has been removed, as it is conceptually simpler just to use
stitchSchemas with one subschema.
The ReplaceFieldsWithFragment, AddFragmentsByField, AddSelectionSetsByField, and
AddMergedTypeSelectionSets transforms has been removed, as they are superseded by the
AddSelectionSets and VisitSelectionSets transforms. The AddSelectionSets purposely takes
parsed SDL rather than strings, to nudge end users to parse these strings at build time (when
possible), rather than at runtime. Parsing of selection set strings can be performed using the
parseSelectionSet function from @graphql-tools/utils.
stitchSchemas & @graphql-tools/stitch)stitchSchemas's mergeTypes option is now true by default! This causes the onTypeConflict
option to be ignored by default. To use onTypeConflict to select a specific type instead of
simply merging, simply set mergeTypes to false.
schemas argument has been deprecated, use subschemas, typeDefs, or types, depending on
what you are stitching.
When using batch delegation in type merging, the argsFromKeys function is now set only via the
argsFromKeys property. Previously, if argsFromKeys was absent, it could be read from args.
Support for fragment hints has been removed in favor of selection set hints.
stitchSchemas now processes all GraphQLSchema and SubschemaConfig subschema input into new
Subschema objects, handling schema config directives such aso@computed as well as generating
the final transformed schema, stored as the transformedSchema property, if transforms are
used. Signatures of the onTypeConflict, fieldConfigMerger, and inputFieldConfigMerger have
been updated to include metadata related to the original and transformed subschemas. Note the
property name change for onTypeConflict from schema to subschema.
addMocksToSchema and @graphql-tools/mock)args, context, and info
with parent available as this rather than as the first argument.@graphql-tools/utils)filterSchema's fieldFilter will now filter all fields across Object, Interface, and Input
types. For the previous Object-only behavior, switch to the objectFieldFilter option.fieldNodes utility functions have been removed.typeContainsSelectionSet function has been removed, and typesContainSelectionSet has
been moved to the stitch package.Operation type has been removed in favor of OperationTypeNode from upstream
graphql-js.applySchemaTransforms/applyRequestTransforms/applyResultTransforms have been
removed from the utils package, as they are implemented elsewhere or no longer necessary.Updated dependencies [be1a1575]
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
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
32c3c4f8: Fix duplication of scalar directives in merge
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
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
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 →