@halsp/core
Version:
面向云的现代渐进式轻量 Node.js 框架
26 lines (25 loc) • 1.44 kB
TypeScript
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;
}