AkurAI Build
Menu

popagent

public

Latest 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;
  };
}