Menu
popagent
publicLatest change 6edc7e928c57dab23c0973ed3f7ee70b3ebb72d5 - Initial popagent baseline by AkurAI Build
export function singleFlight<Args extends unknown[], Result>(
operation: (...args: Args) => Promise<Result>,
): (...args: Args) => Promise<Result> {
let pending: Promise<Result> | undefined;
return (...args) => {
if (pending) return pending;
pending = operation(...args);
void pending.finally(() => { pending = undefined; }).catch(() => undefined);
return pending;
};
}