honion
Version:
24 lines (23 loc) • 2.01 kB
TypeScript
import { Context } from "./context";
import { ILogger } from "./logger";
import { Middleware, HookType, MiddlewareConstructor } from "./middlewares";
import { MiddlewareContainer } from "./middlewares/middleware-container";
export declare abstract class Honion<TC extends Context = Context> {
#private;
constructor();
hook<TM extends Middleware<TC> = Middleware<TC>>(type: HookType.Constructor, mh: (ctx: TC, middlewareConstructor: MiddlewareConstructor<TC, TM>) => TM | undefined): this;
hook<TM extends Middleware<TC> = Middleware<TC>>(type: HookType.Constructor, mh: (ctx: TC, middlewareConstructor: MiddlewareConstructor<TC, TM>) => Promise<TM | undefined>): this;
hook<TM extends Middleware<TC> = Middleware<TC>, TE extends Error = Error>(type: HookType.Error, mh: (ctx: TC, middleware: TM, error: TE) => boolean): this;
hook<TM extends Middleware<TC> = Middleware<TC>, TE extends Error = Error>(type: HookType.Error, mh: (ctx: TC, middleware: TM, error: TE) => Promise<boolean>): this;
hook<TM extends Middleware<TC> = Middleware<TC>>(type: HookType.BeforeInvoke | HookType.BeforeNext, mh: (ctx: TC, middleware: TM) => boolean | void): this;
hook<TM extends Middleware<TC> = Middleware<TC>>(type: HookType.BeforeInvoke | HookType.BeforeNext, mh: (ctx: TC, middleware: TM) => Promise<boolean | void>): this;
hook<TM extends Middleware<TC> = Middleware<TC>>(type: HookType.AfterInvoke, mh: (ctx: TC, middleware: TM) => void): this;
hook<TM extends Middleware<TC> = Middleware<TC>>(type: HookType.AfterInvoke, mh: (ctx: TC, middleware: TM) => Promise<void>): this;
hook<TM extends Middleware<TC> = Middleware<TC>>(mh: (ctx: TC, middleware: TM) => void): this;
hook<TM extends Middleware<TC> = Middleware<TC>>(mh: (ctx: TC, middleware: TM) => Promise<void>): this;
protected invoke(ctx?: any): Promise<any>;
logger: ILogger;
setLogger(logger: ILogger): void;
}
export interface Honion<TC extends Context = Context> extends MiddlewareContainer<TC> {
}