export type SingleFlight = { run(key: K, create: () => Promise): Promise; has(key: K): boolean; activeCount(): number; }; /** Coalesce concurrent work for one key without caching its settled result. */ export function createSingleFlight(): SingleFlight { const active = new Map>(); return { run(key, create) { const existing = active.get(key); if (existing) return existing; const pending = Promise.resolve().then(create); active.set(key, pending); const clear = () => { if (active.get(key) === pending) active.delete(key); }; void pending.then(clear, clear); return pending; }, has(key) { return active.has(key); }, activeCount() { return active.size; }, }; }