agents
Version:
A home for your AI agents
21 lines (20 loc) • 648 B
JavaScript
//#region src/web/abortable.ts
/**
* Shared by the `web_search` and `web_fetch` tools. Internal — not an entry
* point.
*/
/** Settle with `promise`, or reject with the signal's reason once it aborts. */
function abortable(promise, signal) {
if (!signal) return promise;
signal.throwIfAborted();
return new Promise((resolve, reject) => {
const onAbort = () => reject(signal.reason);
signal.addEventListener("abort", onAbort, { once: true });
promise.then(resolve, reject).finally(() => {
signal.removeEventListener("abort", onAbort);
});
});
}
//#endregion
export { abortable as t };
//# sourceMappingURL=abortable-C1SpfVoi.js.map