UNPKG

voyageai

Version:

[![fern shield](https://img.shields.io/badge/%F0%9F%8C%BF-Built%20with%20Fern-brightgreen)](https://buildwithfern.com?utm_source=github&utm_medium=github&utm_campaign=readme&utm_source=https%3A%2F%2Fgithub.com%2Fvoyage-ai%2Ftypescript-sdk) [![npm shield](

38 lines (37 loc) 1.47 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.anySignal = exports.getTimeoutSignal = void 0; const TIMEOUT = "timeout"; function getTimeoutSignal(timeoutMs) { const controller = new AbortController(); const abortId = setTimeout(() => controller.abort(TIMEOUT), timeoutMs); return { signal: controller.signal, abortId }; } exports.getTimeoutSignal = getTimeoutSignal; /** * Returns an abort signal that is getting aborted when * at least one of the specified abort signals is aborted. * * Requires at least node.js 18. */ function anySignal(...args) { // Allowing signals to be passed either as array // of signals or as multiple arguments. const signals = (args.length === 1 && Array.isArray(args[0]) ? args[0] : args); const controller = new AbortController(); for (const signal of signals) { if (signal.aborted) { // Exiting early if one of the signals // is already aborted. controller.abort(signal === null || signal === void 0 ? void 0 : signal.reason); break; } // Listening for signals and removing the listeners // when at least one symbol is aborted. signal.addEventListener("abort", () => controller.abort(signal === null || signal === void 0 ? void 0 : signal.reason), { signal: controller.signal, }); } return controller.signal; } exports.anySignal = anySignal;