node-web-mvc
Version:
node spring mvc
42 lines (41 loc) • 1.14 kB
TypeScript
/**
* @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;
}