Context Reference
RouteContext
Section titled “RouteContext”Route handlers receive RouteContext.
Properties:
request: Requesturl: URLparams: TypedMap<...>data: ...
Methods:
resp(response)orresp(body, init)resp.json(data, init?)safeExit()
Lifecycle guarantees:
resp(...)must be resolved exactly once.- Calling
resp(...)twice throwsHandlerRespondedTwiceError. - Exiting without a response fails with
HandlerDidntRespondError.
MiddlewareContext
Section titled “MiddlewareContext”Middleware handlers receive MiddlewareContext (extends RouteContext).
Methods:
next(data?, request?) -> Promise<Response>tryNext(data?, request?) -> Promise<Result<Response, unknown>>forward(data?, request?) -> Promise<Response>tryForward(data?, request?) -> Promise<Result<Response, unknown>>
Semantics:
nextdelegates and returns downstream response.forwarddelegates and responds with downstream response.try*variants returnResultinstead of throwing.
Middleware must either delegate (next or forward) or resolve a response.
Data And Params Typing
Section titled “Data And Params Typing”- Route params are derived from
cheminpath pieces. - Middleware data merges into
ctx.datafor downstream handlers. - Nested routers preserve parent param typing.