UNPKG

@lifaon/rx-js-light

Version:

Blazing fast Observables

66 lines (65 loc) 2.8 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.wrapPromiseWithAbortSignal = exports.wrapPromiseFactoryWithAbortSignal = exports.abortSignalPromiseBranching = exports.awaitPromiseWithAbortSignal = exports.awaitPromiseFactoryWithAbortSignal = void 0; var create_event_listener_1 = require("../../event-listener/__old/create-event-listener.cjs"); var to_typed_event_target_1 = require("../../event-listener/__old/to-typed-event-target.cjs"); var create_abort_error_1 = require("../../errors/abort-error/create-abort-error.cjs"); var default_aborted_promise_factory_constant_1 = require("../default-aborted-promise-factory.constant.cjs"); function awaitPromiseFactoryWithAbortSignal(promiseFactory, signal, onFulfilled, onRejected, onAborted) { if (signal.aborted) { onAborted(); } else { var running_1 = true; var end_1 = function () { running_1 = false; removeAbortEventListener_1(); }; var removeAbortEventListener_1 = (0, create_event_listener_1.createEventListener)((0, to_typed_event_target_1.toTypedEventTarget)(signal), 'abort', function () { end_1(); onAborted(); }); promiseFactory(signal).then(function (value) { if (running_1) { end_1(); onFulfilled(value); } }, function (error) { if (running_1) { end_1(); onRejected(error); } }); } } exports.awaitPromiseFactoryWithAbortSignal = awaitPromiseFactoryWithAbortSignal; function awaitPromiseWithAbortSignal(promise, signal, onFulfilled, onRejected, onAborted) { return awaitPromiseFactoryWithAbortSignal(function () { return promise; }, signal, onFulfilled, onRejected, onAborted); } exports.awaitPromiseWithAbortSignal = awaitPromiseWithAbortSignal; function abortSignalPromiseBranching(signal, promiseFactoryNotAborted, promiseFactoryAborted) { if (promiseFactoryAborted === void 0) { promiseFactoryAborted = default_aborted_promise_factory_constant_1.DEFAULT_ABORTED_PROMISE_FACTORY; } return signal.aborted ? promiseFactoryAborted(signal) : promiseFactoryNotAborted(signal); } exports.abortSignalPromiseBranching = abortSignalPromiseBranching; function wrapPromiseFactoryWithAbortSignal(promiseFactory, signal) { return new Promise(function (resolve, reject) { awaitPromiseFactoryWithAbortSignal(promiseFactory, signal, resolve, reject, function () { return reject((0, create_abort_error_1.createAbortError)({ signal: signal })); }); }); } exports.wrapPromiseFactoryWithAbortSignal = wrapPromiseFactoryWithAbortSignal; function wrapPromiseWithAbortSignal(promise, signal) { return wrapPromiseFactoryWithAbortSignal(function () { return promise; }, signal); } exports.wrapPromiseWithAbortSignal = wrapPromiseWithAbortSignal;