UNPKG

node-web-mvc

Version:
90 lines (89 loc) 2.33 kB
import fs from 'fs'; import HotModule from './HotModule'; import Module from 'module'; import ListReplacement from './updater/ListReplacement'; type Hooks = HotModule['hooks']; type HookTypeKeys = keyof Hooks; export declare class NodeHotModule extends Module { hot: HotModule; } export declare class HotOptions { /** * 热更新监听目录 */ cwd: string | Array<string>; /** * 热更新执行频率,单位:毫秒 */ reloadTimeout?: number; /** * 排除目录或者文件 */ exclude?: RegExp; /** * 是否解除node_modules限制 */ includeNodeModules?: boolean; } declare class HotReload { ListReplacement: typeof ListReplacement; /** * 热更新配置 */ options: HotOptions; /** * 当前所有热更新模块 */ private hotModules; /** * 热更新执行频率单位:毫秒 */ private reloadTimeout; private isHotUpdating; private allHash; constructor(); /** * 创建一个数据热更新器 */ createHotUpdater<T>(data: any, now: any, old: any): import("./updater/ArrayUpdater").default<T> | import("./updater/MapUpdater").default<T> | import("./updater/ObjectUpdater").default<T>; /** * 创建指定id的热更新模块,如果模块已存在,则直接返回 * @param {Module} mod 模块对象 */ create(mod: any): HotModule; /** * 监听文件改动 */ watch(cwd: any): fs.FSWatcher; hotWatch(type: any, filename: any): void; renderId(id: any): any; /** * 文件改动时,处理热更新 * @param id */ handleReload(file: string): void; /** * 重载模块 */ tryReload(old: NodeHotModule): boolean; /** * 广播注册的热更新消息 */ invokeHook<K extends HookTypeKeys>(name: K, ...args: Parameters<Hooks[K]['invoke']>): void; /** * 项目启动后,初始化构建热更新模块 */ findAllReasons(old: NodeHotModule): HotModule[]; makeHash(file: string): string; createHash(file: string): string; /** * 监听改变 */ run(options?: HotOptions): { options: HotOptions; dirs: string[]; close(): void; }; } declare const _default: HotReload; export default _default;