{"version":3,"file":"await-signal.cjs","names":[],"sources":["../../src/await-signal.ts"],"sourcesContent":["function observeLate<T>(\n  callback: ((value: T) => unknown) | undefined,\n  value: T,\n) {\n  if (!callback) {\n    return\n  }\n\n  try {\n    const result = callback(value)\n    if (result !== undefined) {\n      void Promise.resolve(result).catch(() => {})\n    }\n  } catch {}\n}\n\n/**\n * Await `value` unless `signal` aborts first. A result that settles after the\n * abort is passed to `onLate` / `onLateError` instead.\n *\n * One abort listener per wait: SSR requests nest at most a few waits on one\n * signal, so pooling them was measurably slower than this.\n */\nexport function waitForReason<T>(\n  value: T | PromiseLike<T>,\n  signal: AbortSignal,\n  onLate?: (value: T) => unknown,\n  onLateError?: (reason: unknown) => unknown,\n): Promise<T> {\n  const promise = Promise.resolve(value)\n  if (signal.aborted) {\n    void promise.then(\n      (result) => observeLate(onLate, result),\n      (error) => observeLate(onLateError, error),\n    )\n    return Promise.reject(signal.reason)\n  }\n\n  return new Promise<T>((resolve, reject) => {\n    const abort = () => reject(signal.reason)\n    signal.addEventListener('abort', abort, { once: true })\n    void promise.then(\n      (result) => {\n        signal.removeEventListener('abort', abort)\n        if (signal.aborted) {\n          observeLate(onLate, result)\n        } else {\n          resolve(result)\n        }\n      },\n      (error) => {\n        signal.removeEventListener('abort', abort)\n        if (signal.aborted) {\n          observeLate(onLateError, error)\n        } else {\n          reject(error)\n        }\n      },\n    )\n  })\n}\n"],"mappings":";AAAA,SAAS,YACP,UACA,OACA;CACA,IAAI,CAAC,UACH;CAGF,IAAI;EACF,MAAM,SAAS,SAAS,KAAK;EAC7B,IAAI,WAAW,KAAA,GACb,QAAa,QAAQ,MAAM,EAAE,YAAY,CAAC,CAAC;CAE/C,QAAQ,CAAC;AACX;;;;;;;;AASA,SAAgB,cACd,OACA,QACA,QACA,aACY;CACZ,MAAM,UAAU,QAAQ,QAAQ,KAAK;CACrC,IAAI,OAAO,SAAS;EAClB,QAAa,MACV,WAAW,YAAY,QAAQ,MAAM,IACrC,UAAU,YAAY,aAAa,KAAK,CAC3C;EACA,OAAO,QAAQ,OAAO,OAAO,MAAM;CACrC;CAEA,OAAO,IAAI,SAAY,SAAS,WAAW;EACzC,MAAM,cAAc,OAAO,OAAO,MAAM;EACxC,OAAO,iBAAiB,SAAS,OAAO,EAAE,MAAM,KAAK,CAAC;EACtD,QAAa,MACV,WAAW;GACV,OAAO,oBAAoB,SAAS,KAAK;GACzC,IAAI,OAAO,SACT,YAAY,QAAQ,MAAM;QAE1B,QAAQ,MAAM;EAElB,IACC,UAAU;GACT,OAAO,oBAAoB,SAAS,KAAK;GACzC,IAAI,OAAO,SACT,YAAY,aAAa,KAAK;QAE9B,OAAO,KAAK;EAEhB,CACF;CACF,CAAC;AACH"}