1 import { SimpleOuterSubscriber, innerSubscribe, SimpleInnerSubscriber } from '../innerSubscribe';
2 export function exhaust() {
3 return (source) => source.lift(new SwitchFirstOperator());
5 class SwitchFirstOperator {
6 call(subscriber, source) {
7 return source.subscribe(new SwitchFirstSubscriber(subscriber));
10 class SwitchFirstSubscriber extends SimpleOuterSubscriber {
11 constructor(destination) {
13 this.hasCompleted = false;
14 this.hasSubscription = false;
17 if (!this.hasSubscription) {
18 this.hasSubscription = true;
19 this.add(innerSubscribe(value, new SimpleInnerSubscriber(this)));
23 this.hasCompleted = true;
24 if (!this.hasSubscription) {
25 this.destination.complete();
29 this.hasSubscription = false;
30 if (this.hasCompleted) {
31 this.destination.complete();
35 //# sourceMappingURL=exhaust.js.map