olympus-r
Version:
一个力求简单易用的前端开发框架 #### 开发语言 TypeScript #### 核心架构 MVC #### 模块间通讯和解耦 采用事件机制,利用一个全局唯一的事件派发器进行模块间通讯,解耦模块间依赖 #### 表现层结构 使用桥接模式拆分接口与实现,达到一套核心驱动多套表现层的目的(目前支持DOM、Egret、PixiJS三种表现层),同时支持表现层的未来可扩展性 #### TypeScript装饰器注入 框架提供TypeScript装饰器注入功能,便捷获取托管对象。例如:
63 lines (62 loc) • 1.98 kB
TypeScript
/**
* 中间件接口
*
* @author Raykid
* @date 2019-06-17
* @export
* @interface IMiddleware
* @template T 上下文类型
* @template P 中间件返回值类型
*/
export interface IMiddleware<T = any, P = any> {
(context?: T, next?: () => Promise<P>): P | Promise<P>;
}
/**
* 执行中间件流程
*
* @author Raykid
* @date 2019-06-17
* @export
* @template T 上下文类型
* @template P 中间件返回值类型
* @param {IMiddleware<T>[]} middlewares 中间件数组
* @param {T} [context] 上下文对象
* @returns {Promise<P>}
*/
export declare function runMiddlewares<T = any, P = any>(middlewares: IMiddleware<T, P>[], context?: T, outNext?: () => Promise<P>): Promise<P>;
/**
* 合并包装一个中间件执行方法
*
* @author Raykid
* @date 2019-06-17
* @export
* @template T 上下文类型
* @template P 中间件返回值类型
* @param {IMiddleware<T>[]} middlewares 中间件数组
* @returns {IMiddleware<T, P>} 中间件执行方法,只需传入上下文对象即可
*/
export declare function combineMiddlewares<T = any, P = any>(middlewares: IMiddleware<T, P>[]): IMiddleware<T, P>;
/**
* 将所有中间件打平
*
* @author Raykid
* @date 2019-06-18
* @export
* @template T 上下文类型
* @template P 中间件返回值类型
* @param {IMiddleware<T>[]} middlewares 中间件数组
* @returns {IMiddleware<T, P>[]}
*/
export declare function flattenMiddlewares<T = any, P = any>(middlewares: IMiddleware<T, P>[]): IMiddleware<T, P>[];
/**
* 将所有中间件打平并合并成一个中间件执行器
*
* @author Raykid
* @date 2019-06-18
* @export
* @template T 上下文类型
* @template P 中间件返回值类型
* @param {IMiddleware<T>[]} middlewares 中间件数组
* @returns {IMiddleware<T, P>}
*/
export declare function flattenCombineMiddlewares<T = any, P = any>(middlewares: IMiddleware<T, P>[]): IMiddleware<T, P>;