"use strict"; // Copyright (c) Microsoft Corporation. // Licensed under the MIT License. Object.defineProperty(exports, "__esModule", { value: true }); exports.cancelablePromiseRace = cancelablePromiseRace; /** * promise.race() wrapper that aborts rest of promises as soon as the first promise settles. */ async function cancelablePromiseRace(abortablePromiseBuilders, options) { const aborter = new AbortController(); function abortHandler() { aborter.abort(); } options?.abortSignal?.addEventListener("abort", abortHandler); try { return await Promise.race(abortablePromiseBuilders.map((p) => p({ abortSignal: aborter.signal }))); } finally { aborter.abort(); options?.abortSignal?.removeEventListener("abort", abortHandler); } } //# sourceMappingURL=aborterUtils.js.map