(file: TFile, task: () => Promise<T>)
| 856 | } |
| 857 | |
| 858 | private async enqueueFileWrite<T>(file: TFile, task: () => Promise<T>): Promise<T> { |
| 859 | const key = normalizePath(file.path); |
| 860 | const previous = fileWriteQueues.get(key) ?? Promise.resolve(); |
| 861 | const queued = previous.catch(() => undefined).then(task); |
| 862 | |
| 863 | fileWriteQueues.set(key, queued); |
| 864 | |
| 865 | try { |
| 866 | return await queued; |
| 867 | } |
| 868 | finally { |
| 869 | if (fileWriteQueues.get(key) === queued) { |
| 870 | fileWriteQueues.delete(key); |
| 871 | } |
| 872 | } |
| 873 | } |
| 874 | } |
no test coverage detected