Skip to main content
zerotal

Documentation


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

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

abstract protected options: 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()

static with<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()

abstract handle(ctx, next): Promise<void | Response>

Defined in: packages/core/src/middleware/BaseMiddleware.ts:68

Parameters

ctx

HttpContext

next

NextFn

Returns

Promise<void | Response>

Implementation of

Pipe.handle


afterResponse()?

optional afterResponse(ctx): Promise<void>

Defined in: packages/core/src/middleware/BaseMiddleware.ts:70

Parameters

ctx

HttpContext

Returns

Promise<void>


onError()?

optional onError(ctx, error): Promise<void>

Defined in: packages/core/src/middleware/BaseMiddleware.ts:71

Parameters

ctx

HttpContext

error

Error

Returns

Promise<void>