UNPKG

@lifaon/rx-js-light

Version:

Blazing fast Observables

49 lines (48 loc) 1.37 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.notificationsToValuesObservable = void 0; var async_unsubscribe_1 = require("../../../../../../misc/helpers/async-unsubscribe.cjs"); function notificationsToValuesObservable(subscribe, onError, maxNumberOfValues) { if (maxNumberOfValues === void 0) { maxNumberOfValues = Number.POSITIVE_INFINITY; } return function (emit) { var running = true; var clear = function () { if (running) { running = false; (0, async_unsubscribe_1.asyncUnsubscribe)(function () { return unsubscribe; }); } }; var values = []; var unsubscribe = subscribe(function (notification) { switch (notification.name) { case 'next': values.push(notification.value); if (values.length > maxNumberOfValues) { values.shift(); } break; case 'complete': emit(values); clear(); break; case 'error': if (onError !== void 0) { onError(notification.value, function (values) { if (running) { emit(values); } }); } break; } }); return clear; }; } exports.notificationsToValuesObservable = notificationsToValuesObservable;