@mvx/mvc
Version:
@mvx/mvc is mvc framework on server, base on koa, @tsdi frameworks
93 lines (92 loc) • 2.19 kB
TypeScript
import { Token, Type, AsyncHandler } from '@tsdi/ioc';
import { HandleType, IHandle } from '@tsdi/boot';
import { IContext } from '../IContext';
import { IConfiguration } from '../IConfiguration';
import { MvcContext } from '../MvcContext';
/**
* middleware func.
*
* @export
* @interface MiddlewareFunc
* @extends {Function}
* @template T
*/
export interface MiddlewareFunc extends AsyncHandler<IContext> {
/**
* middleware name.
*
* @type {string}
* @memberof MiddlewareFunc
*/
middleName?: string;
}
/**
* middlware check.
*
* @export
* @template T
* @param {*} target
* @returns {target is MiddlewareFunc}
*/
export declare function isMiddlewareFunc(target: any): target is MiddlewareFunc;
/**
* bind middleware name.
*
* @export
* @param {Function} middleware
* @param {string} name
* @returns {MiddlewareFunc}
*/
export declare function bindMiddlewareName(middleware: Function, name: string): MiddlewareFunc;
/**
* Middleware inteface
* @export
* @interface IMiddleware
*/
export interface IMiddleware extends IHandle<IContext> {
/**
* execute handle.
*
* @param {T} ctx
* @param {() => Promise<void>} next
* @returns {Promise<void>}
* @memberof IHandle
*/
execute(ctx: IContext, next: () => Promise<void>): Promise<void>;
}
/**
* middleware class.
*
* @export
* @interface MiddlewareClass
* @extends {Type<T>}
* @template T
*/
export interface MiddlewareClass<T extends IMiddleware> extends Type<T>, MiddlewareFunc {
}
/**
* default middleware types.
*
* @export
* @enum {number}
*/
export declare enum MiddlewareTypes {
Helmet = "helmet",
BodyParser = "bodyParser",
Cors = "Cors",
Csrf = "Csrf",
Json = "json",
Logger = "logger",
Session = "session",
Content = "content",
View = "view",
Router = "router"
}
/**
* middleware type.
*/
export declare type MiddlewareType = Token<IMiddleware> | HandleType<IContext> | MiddlewareFunc;
/**
* middleware factory.
*/
export declare type MvcMiddlewareType = Type<IMiddleware> | IMiddleware | ((config?: IConfiguration, ctx?: MvcContext) => MiddlewareFunc | AsyncHandler<IContext> | void);