1 import { Subscriber } from '../Subscriber';
2 export function takeWhile(predicate, inclusive = false) {
3 return (source) => source.lift(new TakeWhileOperator(predicate, inclusive));
5 class TakeWhileOperator {
6 constructor(predicate, inclusive) {
7 this.predicate = predicate;
8 this.inclusive = inclusive;
10 call(subscriber, source) {
11 return source.subscribe(new TakeWhileSubscriber(subscriber, this.predicate, this.inclusive));
14 class TakeWhileSubscriber extends Subscriber {
15 constructor(destination, predicate, inclusive) {
17 this.predicate = predicate;
18 this.inclusive = inclusive;
22 const destination = this.destination;
25 result = this.predicate(value, this.index++);
28 destination.error(err);
31 this.nextOrComplete(value, result);
33 nextOrComplete(value, predicateResult) {
34 const destination = this.destination;
35 if (Boolean(predicateResult)) {
36 destination.next(value);
40 destination.next(value);
42 destination.complete();
46 //# sourceMappingURL=takeWhile.js.map