@graphql-tools/webpack-loader
8.1.0
Minor Changes
-
#8605
ea2603aThanks @ardatan ! -@graphql-tools/webpack-loader(and@graphql-tools/jest-transform, which calls it) now accepts more than one GraphQL operation in the same file and exports each named operation, matchinggraphql-tag/loader.A file with two mutations used to throw
GraphQL Webpack Loader allows only for one GraphQL Operation per file, so this import failed in webpack and Jest:# menuMutations.graphql mutation deleteMenuMutation { deleteMenu { ...MenuFields } } mutation upsertMenuMutation { upsertMenu { id } } fragment MenuFields on Menu { id name }import { deleteMenuMutation, upsertMenuMutation } from './menuMutations.graphql'The default export is still the whole document. Each named export is that operation plus the fragments it uses.
deleteMenuMutationincludesMenuFields;upsertMenuMutationdoes not.import menuMutations, { deleteMenuMutation, upsertMenuMutation, } from './menuMutations.graphql'A single named operation is also exported under its name. Unnamed operations are still allowed when the file has only one operation. If the file has more than one operation, each operation must be named.
jest-transformnow passes the Jest source path and filesystem into the loader, soesModule: truecan emit named exports for operations and fragments pulled in with#import. CommonJS named exports use an own property so a GraphQL name of__proto__does not replace the export object’s prototype.
8.0.1
Patch Changes
8.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
- Updated dependencies [
1d70c62,1d70c62,1d70c62]:- @graphql-tools/optimize@3.0.0
- @graphql-tools/webpack-loader-runtime@8.0.0
7.0.1
Patch Changes
- #8383
04e8159Thanks @ardatan ! - WithesModule: true,#importof another.graphqlfile now usesrequire(...).default, matching the loader’sexport default.unique()also treats a missingdefinitionsarray as empty so unused imports do not throw. - Updated dependencies [
57e316d,04e8159]:- @graphql-tools/optimize@2.0.1
- @graphql-tools/webpack-loader-runtime@7.0.1
7.0.0
Major Changes
Patch Changes
- Updated dependencies [
944a68e8]:- @graphql-tools/optimize@2.0.0
- @graphql-tools/webpack-loader-runtime@7.0.0
6.7.2
Patch Changes
- Updated dependencies [
c6817c59]:- @graphql-tools/optimize@1.4.0
6.7.1
Patch Changes
-
#4624
e3167edcThanks @n1ru4l ! - Fix CommonJS TypeScript resolution withmoduleResolutionnode16ornodenext -
Updated dependencies [
e3167edc]:- @graphql-tools/optimize@1.3.1
- @graphql-tools/webpack-loader-runtime@6.4.1
6.7.0
Minor Changes
- d76a299c: Support TypeScript module resolution.
Patch Changes
- Updated dependencies [d76a299c]
- @graphql-tools/optimize@1.3.0
- @graphql-tools/webpack-loader-runtime@6.4.0
6.6.3
Patch Changes
- 041c5ba1: Use caret range for the tslib dependency
- Updated dependencies [041c5ba1]
- @graphql-tools/optimize@1.2.1
6.6.2
Patch Changes
- 0c0c6857: fix - align versions
6.6.1
Patch Changes
- 4bfb3428: enhance: use ^ for tslib dependency
- Updated dependencies [4bfb3428]
- @graphql-tools/optimize@1.1.1
- @graphql-tools/webpack-loader-runtime@6.3.1
6.6.0
Minor Changes
- c5b0719c: feat: GraphQL v16 support
Patch Changes
- Updated dependencies [c5b0719c]
- @graphql-tools/optimize@1.1.0
- @graphql-tools/webpack-loader-runtime@6.3.0
6.5.1
Patch Changes
- e50852e6: use version ranges instead of a fixed version for the graphql-tools package versions
6.5.0
Minor Changes
- 5a4d198b: feat(webpack-loader): export Options
6.4.0
Minor Changes
- b35f5edf: Introduce replaceKinds option to replace kinds as strings with Kind of graphql-js
6.3.1
Patch Changes
- Updated dependencies [fb14cd28]
- @graphql-tools/optimize@1.0.1
6.3.0
Minor Changes
- bd1ba4bd: Added support for additional optimizations: “noEmptyNodes” (for removing empty
arguments,directivesandvariableDefinitionsfrom GraphQL operations)
Patch Changes
- Updated dependencies [bd1ba4bd]
- @graphql-tools/optimize@1.0.0
6.2.4
Patch Changes
- 533d6d53: Bump all packages to allow adjustments
- Updated dependencies [533d6d53]
- @graphql-tools/webpack-loader-runtime@6.2.4