1export interface FoundationHotModule {
2 readonly accept: (callback?: () => void) => void;
3 readonly dispose: (callback: () => void) => void;
4}
5
6export function disposeOnFoundationReplace(
7 hotModule: FoundationHotModule | undefined,
8 dispose: () => void | Promise<void>,
9): void {
10 if (hotModule === undefined || typeof __DEV__ === "undefined" || !__DEV__) return;
11
12 hotModule.dispose(() => {
13 try {
14 void Promise.resolve(dispose()).catch((error: unknown) => {
15 console.error("[fast-refresh] could not dispose replaced mobile foundation", error);
16 });
17 } catch (error) {
18 console.error("[fast-refresh] could not dispose replaced mobile foundation", error);
19 }
20 });
21}