17 lines
348 B
TypeScript
17 lines
348 B
TypeScript
"use client";
|
|
|
|
type FlushSave = () => Promise<void>;
|
|
|
|
const pendingSaves = new Set<FlushSave>();
|
|
|
|
export function registerPendingSave(flush: FlushSave) {
|
|
pendingSaves.add(flush);
|
|
return () => {
|
|
pendingSaves.delete(flush);
|
|
};
|
|
}
|
|
|
|
export async function flushPendingSaves() {
|
|
await Promise.all([...pendingSaves].map((flush) => flush()));
|
|
}
|