@lifaon/rx-js-light
Version:
Blazing fast Observables
37 lines (36 loc) • 1.35 kB
JavaScript
;
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;