@halsp/core
Version:
面向云的现代渐进式轻量 Node.js 框架
25 lines (24 loc) • 1.55 kB
TypeScript
import { Context } from "../context";
import { ObjectConstructor } from "../utils";
import { LambdaMiddleware } from "./lambda.middleware";
export type MiddlewareConstructor = {
new (...args: any[]): Middleware;
};
export type MiddlewareItem = LambdaMiddleware | ((ctx: Context) => Middleware) | [(ctx: Context) => Middleware, MiddlewareConstructor] | ((ctx: Context) => Promise<Middleware>) | [(ctx: Context) => Promise<Middleware>, MiddlewareConstructor] | ((ctx: Context) => MiddlewareConstructor) | [(ctx: Context) => MiddlewareConstructor, MiddlewareConstructor] | ((ctx: Context) => Promise<MiddlewareConstructor>) | Middleware | MiddlewareConstructor;
export declare function createMiddleware(ctx: Context, middleware: MiddlewareItem): Promise<Middleware>;
export declare abstract class Middleware {
#private;
get ctx(): Context;
get req(): import("../context").Request;
get request(): import("../context").Request;
get res(): import("../context").Response;
get response(): import("../context").Response;
get logger(): import("..").ILogger;
set logger(val: import("..").ILogger);
isPrevInstanceOf<T extends object = any>(target: ObjectConstructor<T>): target is ObjectConstructor<T>;
isNextInstanceOf<T extends object = any>(target: ObjectConstructor<T>): target is ObjectConstructor<T>;
abstract invoke(): void | Promise<void>;
protected next(): Promise<void>;
private init;
}
export declare function invokeMiddlewares(ctx: Context, mds: MiddlewareItem[], isRoot?: boolean): Promise<void>;