UNPKG

nrgy

Version:

The library for reactive programming using efficient computing and MVC/MVVM patterns

61 lines (47 loc) 2.09 kB
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); var _chunkDUWWIS26cjs = require('./chunk-DUWWIS26.cjs'); var _chunk4OYRW4HCcjs = require('./chunk-4OYRW4HC.cjs'); // src/rxjs/observe.ts var _rxjs = require('rxjs'); function observe(source, options) { const observable = new (0, _rxjs.Observable)((subscriber) => { const scope = _chunkDUWWIS26cjs.createScope.call(void 0, ); scope.onDestroy(() => subscriber.complete()); const effectFn = (options == null ? void 0 : options.sync) ? scope.syncEffect : scope.effect; const fx = effectFn(source, (value) => { _chunk4OYRW4HCcjs.RUNTIME.runAsUntracked(() => subscriber.next(value)); }); _chunk4OYRW4HCcjs.syncEffect.call(void 0, fx.onError, (error) => _chunk4OYRW4HCcjs.RUNTIME.runAsUntracked(() => subscriber.error(error)) ); _chunk4OYRW4HCcjs.syncEffect.call(void 0, fx.onDestroy, () => scope.destroy()); if (_chunk4OYRW4HCcjs.isAtom.call(void 0, source)) { const sourceFx = scope.syncEffect(source, () => { }); scope.syncEffect(sourceFx.onDestroy, () => scope.destroy()); } return () => scope.destroy(); }); if (_chunk4OYRW4HCcjs.isSignal.call(void 0, source)) { return observable.pipe(_rxjs.share.call(void 0, { resetOnRefCountZero: true })); } else { if (options == null ? void 0 : options.onlyChanges) { return observable.pipe(_rxjs.skip.call(void 0, 1), _rxjs.share.call(void 0, { resetOnRefCountZero: true })); } else { return observable.pipe(_rxjs.shareReplay.call(void 0, { bufferSize: 1, refCount: true })); } } } // src/rxjs/fromObservable.ts function fromObservable(source, initialValue) { const scope = _chunkDUWWIS26cjs.createScope.call(void 0, ); const atomSubject = _chunkDUWWIS26cjs.createAtomSubject.call(void 0, initialValue, { onDestroy: scope.destroy }); scope.add( source.subscribe({ next: atomSubject.next, error: atomSubject.error }) ); return atomSubject.asDestroyable(); } exports.observe = observe; exports.fromObservable = fromObservable;