Releases: graphql-hive/graphql-modules
Release list
May 26, 2026
graphql-modules@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.
January 16, 2026
ℹ️ This is is a backport to v2 of the v3.3.1 release.
graphql-modules@2.4.1
Patch Changes
- #2634
d5efab6Thanks @enisdenjo! - Bind context to async execution avoiding race-conditions
January 16, 2026
graphql-modules@3.1.1
Patch Changes
- #2521
d22ecf3Thanks @enisdenjo! - Bind context to async execution avoiding race-conditions
January 16, 2026
February 19, 2025
graphql-modules@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
October 23, 2024
November 03, 2023
November 02, 2023
graphql-modules@2.2.1
Patch Changes
- #2461
472733b1Thanks @enisdenjo! - Execution context getters using closures
July 25, 2023
graphql-modules@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
March 22, 2023
graphql-modules@2.1.2
Patch Changes
- #2329
df7e2dbaThanks @darkbasic! - TypeScript 5 support for the Inject and Optional decorators