@farmfe/runtime-plugin-hmr
Version:
Runtime hmr plugin of Farm
26 lines (25 loc) • 1.27 kB
TypeScript
import type { ModuleSystem } from '@farmfe/runtime';
import { HotModuleState } from './hot-module-state.js';
import { HMRPayload, HmrUpdateResult, RawHmrUpdateResult } from './types.js';
export declare class HmrClient {
private moduleSystem;
socket: WebSocket;
registeredHotModulesMap: Map<string, HotModuleState>;
disposeMap: Map<string, (data: any) => void | Promise<void>>;
pruneMap: Map<string, (data: any) => void | Promise<void>>;
customListenersMap: Map<string, ((data: any) => void | Promise<void>)[]>;
constructor(moduleSystem: ModuleSystem);
connect(): WebSocket;
closeConnectionGracefully(): void;
applyHotUpdates(result: HmrUpdateResult, moduleSystem: ModuleSystem): Promise<void>;
notifyListeners(event: string, data: any): Promise<void>;
/**
* handle vite HMR message, except farm-update which is handled by handleFarmUpdate, other messages are handled the same as vite
* @param payload Vite HMR payload
*/
handleMessage(payload: HMRPayload): Promise<void>;
handleFarmUpdate(result: RawHmrUpdateResult): void;
}
export declare function createOverlay(err: any): void;
export declare function waitForWindowShow(): Promise<void>;
export declare function wait(ms: number): Promise<unknown>;