import { EmptyError } from '../util/EmptyError'; import { Subscriber } from '../Subscriber'; export function throwIfEmpty(errorFactory = defaultErrorFactory) { return (source) => { return source.lift(new ThrowIfEmptyOperator(errorFactory)); }; } class ThrowIfEmptyOperator { constructor(errorFactory) { this.errorFactory = errorFactory; } call(subscriber, source) { return source.subscribe(new ThrowIfEmptySubscriber(subscriber, this.errorFactory)); } } class ThrowIfEmptySubscriber extends Subscriber { constructor(destination, errorFactory) { super(destination); this.errorFactory = errorFactory; this.hasValue = false; } _next(value) { this.hasValue = true; this.destination.next(value); } _complete() { if (!this.hasValue) { let err; try { err = this.errorFactory(); } catch (e) { err = e; } this.destination.error(err); } else { return this.destination.complete(); } } } function defaultErrorFactory() { return new EmptyError(); } //# sourceMappingURL=throwIfEmpty.js.map