@acutmore/rxjs
Version:
Reactive Extensions for modern JavaScript
72 lines • 2.35 kB
JavaScript
// 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