| 64 | } |
| 65 | |
| 66 | export async function flushAllWrites(): Promise<void> { |
| 67 | for (const [key, timer] of pendingWrites.entries()) { |
| 68 | clearTimeout(timer); |
| 69 | pendingWrites.delete(key); |
| 70 | const data = pendingData.get(key); |
| 71 | pendingData.delete(key); |
| 72 | if (data !== undefined) { |
| 73 | const promise = writeToFS(key, data); |
| 74 | writePromises.set(key, promise); |
| 75 | promise.finally(() => writePromises.delete(key)); |
| 76 | } |
| 77 | } |
| 78 | await Promise.all(writePromises.values()); |
| 79 | } |
| 80 | |
| 81 | export function withPersist<T extends object>( |
| 82 | key: string, |