honion
Version:
14 lines (13 loc) • 1.06 kB
TypeScript
import { Context } from "../context";
import { Middleware, MiddlewareConstructor, MiddlewareItem } from "./middleware";
export interface MiddlewareContainer<TC extends Context> {
use(lambda: (ctx: TC, next: () => Promise<void>) => Promise<void>): this;
use(lambda: (ctx: TC, next: () => Promise<void>) => void): this;
add<TM extends Middleware<TC>>(builder: (ctx: TC) => Middleware<TC>, type?: MiddlewareConstructor<TC, TM>): this;
add<TM extends Middleware<TC>>(builder: (ctx: TC) => Promise<Middleware<TC>>, type?: MiddlewareConstructor<TC, TM>): this;
add<TM extends Middleware<TC>>(builder: (ctx: TC) => MiddlewareConstructor<TC, TM>, type?: MiddlewareConstructor<TC, TM>): this;
add<TM extends Middleware<TC>>(builder: (ctx: TC) => Promise<MiddlewareConstructor<TC, TM>>, type?: MiddlewareConstructor<TC, TM>): this;
add(md: Middleware<TC>): this;
add<TM extends Middleware<TC>>(md: MiddlewareConstructor<TC, TM>): this;
}
export declare function initContainer(container: MiddlewareContainer<any>, mds: MiddlewareItem[]): void;