跳转到内容

配置热更新

createConfigWatcher 创建配置热更新监控器,支持 watch + callback 模式。当配置发生变更时,通过回调通知应用,实现配置动态生效。

import { createConfigWatcher } from "@ventostack/core";
const watcher = createConfigWatcher({
interval: 5000,
onChange: async (newConfig, oldConfig) => {
console.log("配置已变更:", newConfig);
// 重新初始化依赖配置的模块
},
});
// 启动监控
watcher.start(initialConfig);
// 手动触发更新
await watcher.update(newConfig);
// 停止监控
watcher.stop();
interface ConfigWatcherOptions {
/** 检查间隔(毫秒) */
interval?: number;
/** 变更回调 */
onChange: (
newConfig: Record<string, unknown>,
oldConfig: Record<string, unknown>,
) => void | Promise<void>;
}
interface ConfigWatcher {
start(initial: Record<string, unknown>): void;
stop(): void;
isWatching(): boolean;
update(newConfig: Record<string, unknown>): Promise<void>;
getConfig(): Record<string, unknown>;
}
function createConfigWatcher(options: ConfigWatcherOptions): ConfigWatcher;
选项类型默认值说明
intervalnumber5000检查间隔(毫秒)
onChange(new, old) => void | Promise<void>必填变更时的回调函数
方法说明
start(initial)以初始配置启动监控
stop()停止监控
isWatching()返回当前是否在监控
update(newConfig)手动更新配置,变更时触发回调
getConfig()获取当前配置的副本
  • 变更检测使用 JSON.stringify 深度比较,适用于配置对象的简单比较场景
  • onChange 回调支持异步函数,更新期间配置会锁定
  • 手动调用 update 同样会触发变更检测和回调