Documentation / zerotal / index / BaseMiddleware
Abstract Class: BaseMiddleware<O>
Defined in: packages/core/src/middleware/BaseMiddleware.ts:33
Base class for all Zerotal middlewares.
Subclasses must declare protected options with their default values.
Use MyMiddleware.with({ ... }) to produce a zero-arg constructor with
options deep-merged on top of the subclass defaults.
Example
class MyMiddleware extends BaseMiddleware<MyOptions> {
protected options: MyOptions = { timeout: 5000 };
async handle(ctx: HttpContext, next: NextFn): Promise<Response | void> {
// ...read/write ctx.* ...
return next();
}
}
app.use([MyMiddleware.with({ timeout: 1000 })]);
Extended by
ThrottleMiddlewareCorsMiddlewareSecureHeadersMiddlewareWebhookMiddlewarePersistUserMiddlewareRememberMeMiddlewareAuthMiddlewareGuestMiddlewareConfirmPasswordMiddlewareAuthenticateSessionMiddlewareBearerTokenMiddlewareTwoFactorMiddlewareBasicAuthMiddlewareJwtGuardMiddlewareRequireRoleMiddlewareRequirePermissionMiddlewareValidateSignatureMiddlewareIdempotencyMiddlewareDevReloadMiddlewareLoggerMiddlewareSessionMiddlewareCsrfMiddlewareStorageFilesMiddleware
Type Parameters
O
O extends object = object
Implements
Constructors
Constructor
new BaseMiddleware<
O>():BaseMiddleware<O>
Defined in: packages/core/src/middleware/BaseMiddleware.ts:36
Returns
BaseMiddleware<O>
Properties
options
abstractprotectedoptions:O
Defined in: packages/core/src/middleware/BaseMiddleware.ts:42
Subclasses must declare this with their default option values. TypeScript enforces this at compile time — forgetting it is a type error.
Methods
with()
staticwith<T,Opts>(this,options): () =>InstanceType<T>
Defined in: packages/core/src/middleware/BaseMiddleware.ts:48
Returns a zero-arg subclass with the given options deep-merged on top of the subclass defaults, usable directly in app.use([...]).
Type Parameters
T
T extends (...args) => BaseMiddleware<any>
Opts
Opts = T extends (...args) => BaseMiddleware<U> ? U : object
Parameters
this
T
options
Partial<Opts>
Returns
() => InstanceType<T>
handle()
abstracthandle(ctx,next):Promise<void|Response>
Defined in: packages/core/src/middleware/BaseMiddleware.ts:68
Parameters
ctx
next
Returns
Promise<void | Response>
Implementation of
afterResponse()?
optionalafterResponse(ctx):Promise<void>
Defined in: packages/core/src/middleware/BaseMiddleware.ts:70
Parameters
ctx
Returns
Promise<void>
onError()?
optionalonError(ctx,error):Promise<void>
Defined in: packages/core/src/middleware/BaseMiddleware.ts:71
Parameters
ctx
error
Error
Returns
Promise<void>