@graphql-tools/optimize
3.0.0
Major Changes
-
#8515
1d70c62Thanks @ardatan ! - Drop GraphQL v14/v15 support and require Node.js >= 22.18.graphqlpeer range is now^16.0.0 || ^17.0.0.engines.nodeis now>=22.18.0(Nodefs.glob+ Babel 8).- Dev tooling and
@graphql-tools/graphql-tag-pluckmove to Babel 8 (@babel/core/ parser / traverse / types). - The standalone
cross-inspectpackage is discontinued. Useinspectfrom@graphql-tools/utilsinstead (Nodeutil.inspectviaprocess.getBuiltinModule, with a smallJSON.stringify/Stringfallback).
Removed
@graphql-tools/utilsexportsRemoved Use instead getArgumentValuesimport { getArgumentValues } from 'graphql'coerceInputs/graphqlJSCompatgraphql@16+ APIs ( getArgumentValues, etc.)createDeferred/createDeferredPromiseconst { promise, resolve, reject } = Promise.withResolvers()createGraphQLErrornew GraphQLError(message, options)fromgraphqlmapMaybePromisehandleMaybePromisefrom@whatwg-node/promise-helpersisPromise/fakePromise/mapAsyncIterator/MaybePromise@whatwg-node/promise-helpersregisterAbortSignalListener/getAbortPromiseAbortSignalAPIs (throwIfAborted,addEventListener('abort', …, { once: true }),AbortSignal.any, …)withCancel/getAsyncIterableWithCancel/getAsyncIteratorWithCancelHandle cancellation on the async iterator’s return()(or your transport abort path)debugTimerStart/debugTimerEndYour own timing / console.timeif neededPromiseWithResolvers(type)Built-in PromiseWithResolvers<T>/ return type ofPromise.withResolvers()inspectand the WeakMapmemoize1…memoize2of5helpers remain on@graphql-tools/utils(inspect is no longer re-exported fromcross-inspect).File matching (
globby→fs.glob)Loaders and
@graphql-tools/load-filesnow use Node’sfs.globthrough:import { matchFiles, matchFilesSync } from '@graphql-tools/load-files';Directory symlinks are followed for recursive (
**) patterns:- On Node.js ≥26.1 (and ≥24.16 where backported),
fs.globfollowSymlinksis used. - On older engines, symlink directories are discovered only under each pattern’s literal prefix (not the whole
cwd) and patterns are re-rooted. - Non-recursive / literal patterns skip the symlink walk entirely.
@graphql-tools/executorhot-path caches (collectSubfields, argument coercion,@streamdetection) usememoize2/memoize3from utils.collectSubFieldsin utils stays unmemoized so the executor can own a single memoize3 layer.Errors and other cleanup
- Prefer
new GraphQLError(message, options)fromgraphql. Experimental schemacoordinatesupport remains onlocatedError/relocatedError/getSchemaCoordinate. - Removed GraphQL versions older than 16 compatibility branches (error construction, validation rule name suffixes,
URL.canParsefallback). - Promise helpers should be imported from
@whatwg-node/promise-helpers(handleMaybePromise,isPromise,fakePromise,mapAsyncIterator,MaybePromise) rather than re-exported from utils.
Patch Changes
- #8515
1d70c62Thanks @ardatan ! - dependencies updates:- Updated dependency
graphql@^16.0.0 || ^17.0.0↗︎ (from^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0, inpeerDependencies)
- Updated dependency
2.0.1
Patch Changes
- #8366
57e316dThanks @ardatan ! - Remove descriptions from operation, variable, fragment, schema definition, and schema extension nodes inremoveDescriptions.
2.0.0
Major Changes
1.4.0
Minor Changes
- #5177
c6817c59Thanks @AaronMoat ! - feat(optimize): update optimize to also remove descriptions from directives
1.3.1
Patch Changes
- #4624
e3167edcThanks @n1ru4l ! - Fix CommonJS TypeScript resolution withmoduleResolutionnode16ornodenext
1.3.0
Minor Changes
- d76a299c: Support TypeScript module resolution.
1.2.1
Patch Changes
- 041c5ba1: Use caret range for the tslib dependency
1.2.0
Minor Changes
- 6d4abf29: feat(optimize): Remove empty nodes from SDL definitions
1.1.1
Patch Changes
- 4bfb3428: enhance: use ^ for tslib dependency
1.1.0
Minor Changes
- c5b0719c: feat: GraphQL v16 support
1.0.1
Patch Changes
- fb14cd28: Fix missing Directive AST when clearing empty nodes
1.0.0
Major Changes
- bd1ba4bd: NEW PACKAGE: A set of small utilities for optimizing
DocumentNodeobjects