Documentation / zerotal / index / RequestContext
Class: RequestContext
Defined in: packages/core/src/context/RequestContext.ts:29
Static accessor for the request-scoped HttpContext stored in AsyncLocalStorage.
Remarks
A boundary is opened once per request via RequestContext.run (in the
Bun.serve() fetch handler). Inside it, any code — however deeply nested —
reaches the current request with RequestContext.get (throws off-request)
or RequestContext.tryGet (returns undefined off-request).
Example
const ctx = RequestContext.tryGet();
if (ctx) console.log(`handling ${ctx.request.url}`);
Constructors
Constructor
new RequestContext():
RequestContext
Returns
RequestContext
Methods
run()
staticrun<T>(ctx,callback):T
Defined in: packages/core/src/context/RequestContext.ts:42
Establish a per-request ALS boundary.
MUST be called at the very top of the Bun.serve() fetch handler — synchronously, before any await — to avoid the Bun #24199 edge case where ALS context is lost if await happens before run() is called.
The callback runs inside the boundary. Everything called from within the callback (including deeply nested async code) can access ctx via RequestContext.get() with no argument passing.
Type Parameters
T
T
Parameters
ctx
callback
() => T
Returns
T
get()
staticget():HttpContext
Defined in: packages/core/src/context/RequestContext.ts:53
Returns the current HttpContext. Throws if called outside a request.
Returns
Throws
When called outside a request boundary opened by RequestContext.run.
tryGet()
statictryGet():HttpContext<Record<string,string>> |undefined
Defined in: packages/core/src/context/RequestContext.ts:64
Returns the current HttpContext or undefined. Use this for code that runs in both request and non-request contexts (CLI commands, queue workers, scheduled jobs).
Returns
HttpContext<Record<string, string>> | undefined
request()
staticrequest():Request
Defined in: packages/core/src/context/RequestContext.ts:71
The current request. Throws if called outside a request.
Returns
Request
requestId()
staticrequestId():string
Defined in: packages/core/src/context/RequestContext.ts:75
The current request's unique id. Throws if called outside a request.
Returns
string
took()
statictook():number
Defined in: packages/core/src/context/RequestContext.ts:79
Elapsed milliseconds since the current request started. Throws if outside a request.
Returns
number
locale()
staticlocale():string
Defined in: packages/core/src/context/RequestContext.ts:83
The current request's locale, defaulting to "en". Throws if outside a request.
Returns
string
transaction()
statictransaction():TransactionContext|undefined
Defined in: packages/core/src/context/RequestContext.ts:88
The active database transaction for the current request, or undefined.
Returns
TransactionContext | undefined