UNPKG

node-web-mvc

Version:
42 lines (41 loc) 1.14 kB
/** * @module AbstractUpdater * @description 数据热更新抽象类 */ export default abstract class AbstractUpdater<T, D> { protected old: any; protected now: any; protected data: D; protected createInstance: (ctor: any, oldInstance: T) => any; protected useFn: (m: any) => any; protected needHotFn: (m: T, ctor: any) => boolean; /** * 构造一个更新器 */ constructor(data: any, now: any, old: any); /** * 设置:是否需要热更新的比较函数 */ needHot(handler: (m: T, ctor: any) => boolean): this; /** * 设置:提取需要热更新的类型 */ use(handler: (m: any) => any): this; /** * 设置:创建新的的实例的函数 */ creator(createInstance: (ctor: any, o: any) => T): this; /** * 执行更新 */ update(): void; /** * 清除当前传入的数据中,热更新模块旧的实例数据。 */ remove(): void; protected abstract internalUpdate(ctor: any, newCtor: any): any; /** * 执行清理操作 */ protected abstract cleanUpdate(oldCtor: any): any; }