--- /dev/null
+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
\ No newline at end of file