UNPKG

@halsp/core

Version:

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

44 lines (43 loc) 3.66 kB
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; }