UNPKG

@lifaon/rx-js-light

Version:

Blazing fast Observables

31 lines (30 loc) 655 B
import {freeze} from "../../../../../misc/helpers/freeze.mjs"; export function createUnicastSource() { let _emitFunction = null; const emit = value => { if (_emitFunction !== null) { _emitFunction(value); } }; const subscribe = emit => { if (_emitFunction === null) { let running = true; _emitFunction = emit; return () => { if (running) { running = false; _emitFunction = null; } }; } else { throw new Error(`Max one observer allowed`); } }; return freeze({ getObserver: () => { return _emitFunction; }, emit, subscribe }); }