UNPKG

@halsp/core

Version:

面向云的现代渐进式轻量 Node.js 框架

26 lines (25 loc) 1.44 kB
import { Context } from "../context"; import { Middleware, MiddlewareConstructor } from "../middlewares"; export type MiddlewareResultHook<T extends Middleware | MiddlewareConstructor = any> = (ctx: Context, md: T) => Middleware | void | Promise<Middleware | void>; export type BooleanResultHook<T extends Middleware | MiddlewareConstructor = any> = (ctx: Context, md: T) => Promise<void | boolean> | void | boolean; export type ErrorMdHook<T extends Middleware | MiddlewareConstructor = any> = (ctx: Context, md: T, error: Error) => Promise<boolean> | boolean; export type UnhandledMdHook<T extends Middleware | MiddlewareConstructor = any> = (ctx: Context, md: T, error: Error) => void | Promise<void>; export type ContextHook = (args: any[]) => void | Context | Promise<Context | void>; export type BeginingHook = (ctx: Context) => boolean | Promise<boolean | void> | void; export type InitializationHook = (args: any[]) => Promise<void> | void; export type MdHook<T extends Middleware | MiddlewareConstructor = any> = MiddlewareResultHook<T> | BooleanResultHook<T> | ErrorMdHook<T> | UnhandledMdHook<T> | BeginingHook | ContextHook | InitializationHook; export declare enum HookType { Initialization = 0, Context = 1, Begining = 2, BeforeInvoke = 3, AfterInvoke = 4, BeforeNext = 5, Constructor = 6, Error = 7, Unhandled = 8 } export interface HookItem { hook: MdHook; type: HookType; }