(key: string, data: unknown)
| 25 | } |
| 26 | |
| 27 | export function debouncedSave(key: string, data: unknown): void { |
| 28 | const existing = pendingWrites.get(key); |
| 29 | if (existing) clearTimeout(existing); |
| 30 | |
| 31 | pendingData.set(key, data); |
| 32 | |
| 33 | const timer = setTimeout(() => { |
| 34 | pendingWrites.delete(key); |
| 35 | const dataToWrite = pendingData.get(key); |
| 36 | pendingData.delete(key); |
| 37 | const promise = writeToFS(key, dataToWrite); |
| 38 | writePromises.set(key, promise); |
| 39 | promise.finally(() => writePromises.delete(key)); |
| 40 | }, DEBOUNCE_MS); |
| 41 | |
| 42 | pendingWrites.set(key, timer); |
| 43 | } |
| 44 | |
| 45 | async function writeToFS(key: string, data: unknown): Promise<void> { |
| 46 | try { |
no test coverage detected