UNPKG

@acutmore/rxjs

Version:

Reactive Extensions for modern JavaScript

72 lines 2.35 kB
// v4-backwards-compatibility const defaultError = ((err) => { throw err; }); var CheckedObserverState; (function (CheckedObserverState) { CheckedObserverState[CheckedObserverState["IDLE"] = 0] = "IDLE"; CheckedObserverState[CheckedObserverState["BUSY"] = 1] = "BUSY"; CheckedObserverState[CheckedObserverState["DONE"] = 2] = "DONE"; })(CheckedObserverState || (CheckedObserverState = {})); // v4-backwards-compatibility class ObserverImpl { constructor(n, e, c) { this.n = n; this.e = e; this.c = c; } next(value) { if (!this.closed) { this.n(value); } } error(err) { if (!this.closed) { this.closed = true; this.e(err); } } complete() { if (!this.closed) { this.closed = true; this.c(); } } // v4-backwards-compatibility asObserver() { const o = new ObserverImpl(function (v) { this.__srcObserver.next(v); }, function (e) { this.__srcObserver.error(e); }, function () { this.__srcObserver.complete(); }); o.__srcObserver = this; return o; } } // v4-backwards-compatibility ObserverImpl.prototype.onNext = ObserverImpl.prototype.next; ObserverImpl.prototype.onError = ObserverImpl.prototype.error; ObserverImpl.prototype.onCompleted = ObserverImpl.prototype.complete; // v4-backwards-compatibility // `interface` => `class` export class Observer { // v4-backwards-compatibility // make class constructor private to retain rxjs5 interface-ish constructor() { return Observer.create(); } // v4-backwards-compatibility static create(maybeNext, maybeError, maybeComplete) { const next = maybeNext === void 0 || maybeNext === null ? Function.prototype : maybeNext; const error = maybeError === void 0 || maybeError === null ? defaultError : maybeError; const complete = maybeComplete === void 0 || maybeComplete === null ? Function.prototype : maybeComplete; return new ObserverImpl(next, error, complete); } } export const empty = { closed: true, next(value) { }, error(err) { throw err; }, complete() { }, onNext(value) { }, onError(err) { throw err; }, onCompleted() { } }; //# sourceMappingURL=Observer.js.map