UNPKG

@lifaon/rx-js-light

Version:

Blazing fast Observables

34 lines (33 loc) 844 B
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.sourceObservablePipe = void 0; function sourceObservablePipe(getSource) { return function (subscribe) { var unsubscribe; var observersCounts = 0; var source = getSource(); return function (emit) { var running = true; observersCounts++; var unsubscribeSource = source.subscribe(emit); if (observersCounts === 1) { unsubscribe = subscribe(function (value) { source.emit(value); }); } return function () { if (running) { running = false; unsubscribeSource(); observersCounts--; if (observersCounts === 0) { unsubscribe(); } } }; }; }; } exports.sourceObservablePipe = sourceObservablePipe;