Changelog
3.1.2
Patch Changes
-
#2607
3274c04Thanks @renovate ! - dependencies updates:- Updated dependency
ramda@^0.31.0↗︎ (from^0.30.0, independencies)
- Updated dependency
-
#2626
68c2cb4Thanks @renovate ! - dependencies updates:- Updated dependency
@graphql-tools/wrap@^11.0.0↗︎ (from^10.0.0, independencies)
- Updated dependency
-
#2642
dac3288Thanks @renovate ! - dependencies updates:- Updated dependency
ramda@^0.32.0↗︎ (from^0.31.0, independencies)
- Updated dependency
-
#2681
8ed0406Thanks @dotansimha ! - Fix memory leak: per-operationcontextwas retained forever when any long-lived async resource (a globalsetTimeout/setInterval, a telemetry exporter, undici’s module-scoped timer, …) snapshotted the currentAsyncContextFrameduring execution. Since nodejs/node#48528 , every async resource scheduled inside anAsyncLocalStorage.run(...)captures akAsyncContextFramesnapshot, and the value stored in our internalAsyncLocalStoragewas a pair of closures that capturedcontext— so the snapshot pinned the entire operation context (potentially multiple MBs).The fix routes every per-operation reference to
contextthrough a mutable holder (refs.context/refs.appContext).sharedContext(exposed asenv.context) and the cachedCONTEXTinjector value are now getter-based views overrefs.contextinstead of shallow spreads, so they hold no user data of their own.ɵdestroyonly nulls the holder slots — public-facing identities (env.context,ɵinjector) stay intact and continue to work, but the heavy user payload becomes unreachable from the (still-pinned) closure scope. -
#2681
8ed0406Thanks @dotansimha ! - Fix@ExecutionContext()leaking across concurrent controller-backed operations: increateExecution/createSubscriptionthe controller branch calledperform(options.controller)directly, skippingrunWithContext, so reads after anawaitfell through to the sharedappInjectorgetter and resolved to the most recently created operation’s context.The controller now exposes its
runWithContextasɵrunWithContextand both execution paths wrapperformin it, giving controller-backed executions the same per-operation ALS isolation the non-controller path already had.
3.1.1
Patch Changes
- #2521
d22ecf3Thanks @enisdenjo ! - Bind context to async execution avoiding race-conditions
3.1.0
Minor Changes
- #2618
55518d0Thanks @vlad-x ! - Enabled support for resolver extensions for compatibility with such libraries as grafast or graphql-query-complexity
3.0.0
Major Changes
-
#2563
f40de70Thanks @kamilkisiela ! - BREAKING Providers of each module are now resolved of upon application creation.This makes Dependency Injection less strict and not dependent on the order of module imports (hello circular imports).
BREAKING Removed
providers,operationProvidersandsingletonProvidersfrom theModuleinterface (unlikely you were using them).
Patch Changes
- #2479
482499aThanks @renovate ! - dependencies updates:- Updated dependency
ramda@^0.30.0↗︎ (from^0.29.0, independencies)
- Updated dependency
2.4.1
Patch Changes
- #2634
d5efab6Thanks @enisdenjo ! - Bind context to async execution avoiding race-conditions
2.4.0
Minor Changes
- #2503
cf6e51fThanks @n1ru4l ! - Support passing an abstract class toInjector.getcall andProvidervalue.
2.3.0
Minor Changes
- #2465
72403485Thanks @kamilkisiela ! - Support graphql-jit
2.2.1
Patch Changes
- #2461
472733b1Thanks @enisdenjo ! - Execution context getters using closures
2.2.0
Minor Changes
- #2395
d9e91d0aThanks @TomKlaverAH ! - Use AsyncLocalStorage for execution context if available
Patch Changes
-
#2338
4d9150f0Thanks @renovate ! - dependencies updates:- Updated dependency
@graphql-tools/schema@^10.0.0↗︎ (from^9.0.0, independencies) - Updated dependency
@graphql-tools/wrap@^10.0.0↗︎ (from^9.0.0, independencies)
- Updated dependency
-
#2354
d49191d9Thanks @renovate ! - dependencies updates:- Updated dependency
ramda@^0.29.0↗︎ (from^0.28.0, independencies)
- Updated dependency
2.1.2
Patch Changes
- #2329
df7e2dbaThanks @darkbasic ! - TypeScript 5 support for the Inject and Optional decorators
2.1.1
Patch Changes
-
#2233
1d6b7fb7Thanks @renovate ! - dependencies updates:- Updated dependency
@graphql-tools/schema@^9.0.0↗︎ (was^8.3.1, independencies) - Updated dependency
@graphql-tools/wrap@^9.0.0↗︎ (was^8.3.1, independencies)
- Updated dependency
-
#2324
42599bfeThanks @patrickjm ! - Fix missing attributes in package.json (as preparation for TS 5.0)
2.1.0
Minor Changes
- c0a3d556: Allow to overwrite providers when using testkit.testModule
Patch Changes
- 9e5ec3ae: Add a deprecation note for createSchemaForApollo method
- 285987c6: Fix a memory leak related to ExecutionContext and Promises
2.0.0
Major Changes
-
d0a662d4: Update graphql-tools/schema & graphql-tools/wrap to major v8
Check graphql-tools/schema v8.0.0 release for possible breaking changes
Minor Changes
- 75552e67: feat: GraphQL v16 support
- c084f1e4: ESM support
1.4.4
Patch Changes
- 9ec7fa0c: Fix the failure of missing session when multi-mutation operation
1.4.3
Patch Changes
- e206539c: Use correct __resolveObject signature
- 648d81fe: Adds a validation of typeDefs to be DocumentNodes
1.4.2
Patch Changes
- f8e6e15: Fix missing ApolloServer cacheControl in GraphQLResolveInfo
1.4.1
Patch Changes
- fefca5d: Fix race condition between Inject and Injectable
1.4.0
Minor Changes
- 499c81a: Support __resolveObject
- 499c81a: Manual control of GraphQL operation
1.3.0
Minor Changes
- f138e08: Support __resolverReference resolver for federation
1.2.1
Patch Changes
- 9a59787: Allow inheritance of resolvers defined in interfaces
1.2.0
Minor Changes
- f38ff90: Introduce testkit.mockApplication
- f38ff90: Custom GraphQLSchema builder
- f38ff90: Introduce testkit.mockModule
1.1.0
Minor Changes
- 8db9f91: Testing utilities
1.0.0
Complete rewrite of GraphQL Modules based on lessons learned from using and maintaining v0 releases. The “Introduction to GraphQL Modules” page will help you understand the new version.
For migration guide, please check “Migration from v0.X” chapter in docs.