@halsp/core
Version:
面向云的现代渐进式轻量 Node.js 框架
44 lines (43 loc) • 3.66 kB
TypeScript
import { Context, Response } from "./context";
import { ILogger } from "./logger";
import { Middleware, MiddlewareConstructor } from "./middlewares";
import { Register } from "./register";
import { ObjectConstructor } from "./utils";
import { HookType } from "./hook";
export declare class Startup {
#private;
constructor();
use(lambda: (ctx: Context, next: () => Promise<void>) => Promise<void>): this;
use(lambda: (ctx: Context, next: () => Promise<void>) => void): this;
add(builder: (ctx: Context) => Middleware, type?: MiddlewareConstructor): this;
add(builder: (ctx: Context) => Promise<Middleware>, type?: MiddlewareConstructor): this;
add(builder: (ctx: Context) => MiddlewareConstructor, type?: MiddlewareConstructor): this;
add(builder: (ctx: Context) => Promise<MiddlewareConstructor>, type?: MiddlewareConstructor): this;
add(md: Middleware): this;
add(md: MiddlewareConstructor): this;
hook<T extends Middleware = Middleware>(type: HookType.Constructor, mh: (ctx: Context, middlewareConstructor: ObjectConstructor<T>) => T | void, isGlobal?: true): this;
hook<T extends Middleware = Middleware>(type: HookType.Constructor, mh: (ctx: Context, middlewareConstructor: ObjectConstructor<T>) => Promise<T | void>, isGlobal?: true): this;
hook<T extends Error = Error>(type: HookType.Error, mh: (ctx: Context, middleware: Middleware, error: T) => boolean, isGlobal?: true): this;
hook<T extends Error = Error>(type: HookType.Error, mh: (ctx: Context, middleware: Middleware, error: T) => Promise<boolean>, isGlobal?: true): this;
hook<T extends Error = Error>(type: HookType.Unhandled, mh: (ctx: Context, middleware: Middleware, error: T) => void, isGlobal?: true): this;
hook<T extends Error = Error>(type: HookType.Unhandled, mh: (ctx: Context, middleware: Middleware, error: T) => Promise<void>, isGlobal?: true): this;
hook<T extends Middleware = Middleware>(type: HookType.BeforeInvoke | HookType.BeforeNext, mh: (ctx: Context, middleware: T) => boolean | void, isGlobal?: true): this;
hook<T extends Middleware = Middleware>(type: HookType.BeforeInvoke | HookType.BeforeNext, mh: (ctx: Context, middleware: T) => Promise<boolean | void>, isGlobal?: true): this;
hook<T extends Middleware = Middleware>(type: HookType.AfterInvoke, mh: (ctx: Context, middleware: T) => void, isGlobal?: true): this;
hook<T extends Middleware = Middleware>(type: HookType.AfterInvoke, mh: (ctx: Context, middleware: T) => Promise<void>, isGlobal?: true): this;
hook(type: HookType.Begining, mh: (ctx: Context) => boolean | void): this;
hook(type: HookType.Begining, mh: (ctx: Context) => Promise<boolean | void>): this;
hook(type: HookType.Context, mh: (args: any[]) => Context | void): this;
hook(type: HookType.Context, mh: (...args: any[]) => Promise<Context | void>): this;
hook(type: HookType.Initialization, mh: (args: any[]) => void): this;
hook(type: HookType.Initialization, mh: (args: any[]) => Promise<void>): this;
hook<T extends Middleware = Middleware>(mh: (ctx: Context, middleware: T) => void, isGlobal?: true): this;
hook<T extends Middleware = Middleware>(mh: (ctx: Context, middleware: T) => Promise<void>, isGlobal?: true): this;
protected invoke(...args: any[]): Promise<Response>;
protected initialize(...args: any[]): Promise<void>;
logger: ILogger;
extend<T extends keyof this>(name: T, fn: (typeof this)[T]): this;
call(when: (startup: this) => boolean, fn: (startup: this) => void): this;
get registers(): Register[];
register(pattern: string, handler?: (ctx: Context) => Promise<void> | void): this;
}