UNPKG

@lifaon/rx-js-light

Version:

Blazing fast Observables

43 lines (42 loc) 1.18 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.notificationsToLastValueObservable = void 0; var async_unsubscribe_1 = require("../../../../../../../../misc/helpers/async-unsubscribe.cjs"); function notificationsToLastValueObservable(subscribe, onError) { return function (emit) { var running = true; var clear = function () { if (running) { running = false; (0, async_unsubscribe_1.asyncUnsubscribe)(function () { return unsubscribe; }); } }; var lastValue; var unsubscribe = subscribe(function (notification) { switch (notification.name) { case 'next': lastValue = notification.value; break; case 'complete': emit(lastValue); clear(); break; case 'error': if (onError !== void 0) { onError(notification.value, function (value) { if (running) { emit(value); } }); } break; } }); return clear; }; } exports.notificationsToLastValueObservable = notificationsToLastValueObservable;