UNPKG

honion

Version:
24 lines (23 loc) 2.01 kB
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> { }