type PendingTask = { current?: Promise } export function reusePendingTask(slot: PendingTask, run: () => Promise) { if (slot.current) { return slot.current } const task = run().finally(() => { if (slot.current === task) { slot.current = undefined } }) slot.current = task return task }