UNPKG

@lifaon/rx-js-light

Version:

Blazing fast Observables

37 lines (36 loc) 1.35 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.createAbortControllerFromAbortSignals = void 0; var is_abort_signal_1 = require("../is/is-abort-signal.cjs"); var create_event_listener_1 = require("../../event-listener/__old/create-event-listener.cjs"); function createAbortControllerFromAbortSignals(signals) { var abortController = new AbortController(); for (var i = 0, l = signals.length; i < l; i++) { var signal = signals[i]; if ((0, is_abort_signal_1.isAbortSignal)(signal)) { if (signal.aborted) { abortController.abort(); return abortController; } } else { throw new TypeError(("Expected AbortSignal at index #").concat(i)); } } var clear = function () { for (var i = 0, l = unsubscribeSignalList.length; i < l; i++) { unsubscribeSignalList[i](); } unsubscribeOwnSignal(); }; var unsubscribeOwnSignal = (0, create_event_listener_1.createEventListener)(abortController.signal, 'abort', clear); var unsubscribeSignalList = signals.map(function (signal) { return (0, create_event_listener_1.createEventListener)(signal, 'abort', function () { clear(); abortController.abort(); }); }); return abortController; } exports.createAbortControllerFromAbortSignals = createAbortControllerFromAbortSignals;