UNPKG

honion

Version:
24 lines (23 loc) 1.35 kB
import { Context } from "../context"; import { Middleware, MiddlewareConstructor } from "./middleware"; export type MdHook<TC extends Context, TM extends Middleware<TC>, U extends TM | MiddlewareConstructor<TC> | Error = any> = (ctx: TC, md: U, error?: Error) => void | Promise<void | boolean> | TM | undefined | Promise<TM | undefined> | boolean | Promise<boolean>; export declare enum HookType { BeforeInvoke = 0, AfterInvoke = 1, BeforeNext = 2, Constructor = 3, Error = 4 } export interface HookItem<TC extends Context, TM extends Middleware<TC>> { hook: MdHook<TC, TM>; type: HookType; } export declare class HookMiddleware<TC extends Context, TM extends Middleware<TC>> extends Middleware<TC> { #private; constructor(mh: MdHook<TC, TM>, type: HookType); invoke(): Promise<void>; } export declare function execHooks(ctx: Context, middleware: Middleware, type: HookType.Error, error: Error): Promise<boolean>; export declare function execHooks(ctx: Context, middleware: MiddlewareConstructor, type: HookType.Constructor): Promise<Middleware>; export declare function execHooks(ctx: Context, middleware: Middleware, type: HookType.BeforeInvoke | HookType.BeforeNext): Promise<boolean | void>; export declare function execHooks(ctx: Context, middleware: Middleware, type: HookType.AfterInvoke): Promise<void>;