1 | ;
|
2 | Object.defineProperty(exports, "__esModule", { value: true });
|
3 | var index_1 = require("../index");
|
4 | var OtherIL = /** @class */ (function () {
|
5 | function OtherIL(out, op) {
|
6 | this.out = out;
|
7 | this.op = op;
|
8 | }
|
9 | OtherIL.prototype._n = function (_t) {
|
10 | this.op.up();
|
11 | };
|
12 | OtherIL.prototype._e = function (err) {
|
13 | this.out._e(err);
|
14 | };
|
15 | OtherIL.prototype._c = function () { };
|
16 | return OtherIL;
|
17 | }());
|
18 | var DropUntilOperator = /** @class */ (function () {
|
19 | function DropUntilOperator(o, // o = other
|
20 | ins) {
|
21 | this.o = o;
|
22 | this.ins = ins;
|
23 | this.type = 'dropUntil';
|
24 | this.out = null;
|
25 | this.oil = index_1.NO_IL; // oil = other InternalListener
|
26 | this.on = false;
|
27 | }
|
28 | DropUntilOperator.prototype._start = function (out) {
|
29 | this.out = out;
|
30 | this.o._add(this.oil = new OtherIL(out, this));
|
31 | this.ins._add(this);
|
32 | };
|
33 | DropUntilOperator.prototype._stop = function () {
|
34 | this.ins._remove(this);
|
35 | this.o._remove(this.oil);
|
36 | this.out = null;
|
37 | this.oil = index_1.NO_IL;
|
38 | };
|
39 | DropUntilOperator.prototype.up = function () {
|
40 | this.on = true;
|
41 | this.o._remove(this.oil);
|
42 | this.oil = index_1.NO_IL;
|
43 | };
|
44 | DropUntilOperator.prototype._n = function (t) {
|
45 | var u = this.out;
|
46 | if (!u)
|
47 | return;
|
48 | if (!this.on)
|
49 | return;
|
50 | u._n(t);
|
51 | };
|
52 | DropUntilOperator.prototype._e = function (err) {
|
53 | var u = this.out;
|
54 | if (!u)
|
55 | return;
|
56 | u._e(err);
|
57 | };
|
58 | DropUntilOperator.prototype._c = function () {
|
59 | var u = this.out;
|
60 | if (!u)
|
61 | return;
|
62 | this._stop();
|
63 | u._c();
|
64 | };
|
65 | return DropUntilOperator;
|
66 | }());
|
67 | exports.DropUntilOperator = DropUntilOperator;
|
68 | /**
|
69 | * Starts emitting the input stream when another stream emits a next event. The
|
70 | * output stream will emit no items if another stream is empty.
|
71 | *
|
72 | * Marble diagram:
|
73 | *
|
74 | * ```text
|
75 | * ---1---2-----3--4----5----6---
|
76 | * dropUntil( --------a--b--| )
|
77 | * ---------------------5----6|
|
78 | * ```
|
79 | *
|
80 | * Example:
|
81 | *
|
82 | * ```js
|
83 | * import dropUntil from 'xstream/extra/dropUntil'
|
84 | *
|
85 | * const other = xs.periodic(220).take(1)
|
86 | *
|
87 | * const stream = xs.periodic(50)
|
88 | * .take(6)
|
89 | * .compose(dropUntil(other))
|
90 | *
|
91 | * stream.addListener({
|
92 | * next: i => console.log(i),
|
93 | * error: err => console.error(err),
|
94 | * complete: () => console.log('completed')
|
95 | * })
|
96 | * ```
|
97 | *
|
98 | * ```text
|
99 | * > 4
|
100 | * > 5
|
101 | * > completed
|
102 | * ```
|
103 | *
|
104 | * #### Arguments:
|
105 | *
|
106 | * @param {Stream} other Some other stream that is used to know when the output
|
107 | * stream of this operator should start emitting.
|
108 | * @return {Stream}
|
109 | */
|
110 | function dropUntil(other) {
|
111 | return function dropUntilOperator(ins) {
|
112 | return new index_1.Stream(new DropUntilOperator(other, ins));
|
113 | };
|
114 | }
|
115 | exports.default = dropUntil;
|
116 | //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcFVudGlsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2V4dHJhL2Ryb3BVbnRpbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLGtDQUE4RTtBQUU5RTtJQUNFLGlCQUFtQixHQUFjLEVBQ2IsRUFBd0I7UUFEekIsUUFBRyxHQUFILEdBQUcsQ0FBVztRQUNiLE9BQUUsR0FBRixFQUFFLENBQXNCO0lBQzVDLENBQUM7SUFFRCxvQkFBRSxHQUFGLFVBQUcsRUFBSztRQUNOLElBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7SUFDZixDQUFDO0lBRUQsb0JBQUUsR0FBRixVQUFHLEdBQVE7UUFDVCxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNuQixDQUFDO0lBRUQsb0JBQUUsR0FBRixjQUFNLENBQUM7SUFDVCxjQUFDO0FBQUQsQ0FBQyxBQWRELElBY0M7QUFFRDtJQU1FLDJCQUFtQixDQUFjLEVBQUUsWUFBWTtJQUM1QixHQUFjO1FBRGQsTUFBQyxHQUFELENBQUMsQ0FBYTtRQUNkLFFBQUcsR0FBSCxHQUFHLENBQVc7UUFOMUIsU0FBSSxHQUFHLFdBQVcsQ0FBQztRQUNuQixRQUFHLEdBQWMsSUFBVyxDQUFDO1FBQzVCLFFBQUcsR0FBMEIsYUFBSyxDQUFDLENBQUMsK0JBQStCO1FBQ25FLE9BQUUsR0FBWSxLQUFLLENBQUM7SUFJNUIsQ0FBQztJQUVELGtDQUFNLEdBQU4sVUFBTyxHQUFjO1FBQ25CLElBQUksQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDO1FBQ2YsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsR0FBRyxJQUFJLE9BQU8sQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUMvQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN0QixDQUFDO0lBRUQsaUNBQUssR0FBTDtRQUNFLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUN6QixJQUFJLENBQUMsR0FBRyxHQUFHLElBQVcsQ0FBQztRQUN2QixJQUFJLENBQUMsR0FBRyxHQUFHLGFBQUssQ0FBQztJQUNuQixDQUFDO0lBRUQsOEJBQUUsR0FBRjtRQUNFLElBQUksQ0FBQyxFQUFFLEdBQUcsSUFBSSxDQUFDO1FBQ2YsSUFBSSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3pCLElBQUksQ0FBQyxHQUFHLEdBQUcsYUFBSyxDQUFDO0lBQ25CLENBQUM7SUFFRCw4QkFBRSxHQUFGLFVBQUcsQ0FBSTtRQUNMLElBQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUM7UUFDbkIsSUFBSSxDQUFDLENBQUM7WUFBRSxPQUFPO1FBQ2YsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQUUsT0FBTztRQUNyQixDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ1YsQ0FBQztJQUVELDhCQUFFLEdBQUYsVUFBRyxHQUFRO1FBQ1QsSUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQztRQUNuQixJQUFJLENBQUMsQ0FBQztZQUFFLE9BQU87UUFDZixDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ1osQ0FBQztJQUVELDhCQUFFLEdBQUY7UUFDRSxJQUFNLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDO1FBQ25CLElBQUksQ0FBQyxDQUFDO1lBQUUsT0FBTztRQUNmLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNiLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQztJQUNULENBQUM7SUFDSCx3QkFBQztBQUFELENBQUMsQUFoREQsSUFnREM7QUFoRFksOENBQWlCO0FBa0Q5Qjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0F5Q0c7QUFDSCxTQUF3QixTQUFTLENBQUksS0FBa0I7SUFDckQsT0FBTyxTQUFTLGlCQUFpQixDQUFDLEdBQWM7UUFDOUMsT0FBTyxJQUFJLGNBQU0sQ0FBSSxJQUFJLGlCQUFpQixDQUFDLEtBQUssRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQzFELENBQUMsQ0FBQztBQUNKLENBQUM7QUFKRCw0QkFJQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7T3BlcmF0b3IsIEludGVybmFsTGlzdGVuZXIsIFN0cmVhbSwgT3V0U2VuZGVyLCBOT19JTH0gZnJvbSAnLi4vaW5kZXgnO1xuXG5jbGFzcyBPdGhlcklMPFQ+IGltcGxlbWVudHMgSW50ZXJuYWxMaXN0ZW5lcjxhbnk+LCBPdXRTZW5kZXI8VD4ge1xuICBjb25zdHJ1Y3RvcihwdWJsaWMgb3V0OiBTdHJlYW08VD4sXG4gICAgICAgICAgICAgIHByaXZhdGUgb3A6IERyb3BVbnRpbE9wZXJhdG9yPFQ+KSB7XG4gIH1cblxuICBfbihfdDogVCkge1xuICAgIHRoaXMub3AudXAoKTtcbiAgfVxuXG4gIF9lKGVycjogYW55KSB7XG4gICAgdGhpcy5vdXQuX2UoZXJyKTtcbiAgfVxuXG4gIF9jKCkge31cbn1cblxuZXhwb3J0IGNsYXNzIERyb3BVbnRpbE9wZXJhdG9yPFQ+IGltcGxlbWVudHMgT3BlcmF0b3I8VCwgVD4ge1xuICBwdWJsaWMgdHlwZSA9ICdkcm9wVW50aWwnO1xuICBwdWJsaWMgb3V0OiBTdHJlYW08VD4gPSBudWxsIGFzIGFueTtcbiAgcHJpdmF0ZSBvaWw6IEludGVybmFsTGlzdGVuZXI8YW55PiA9IE5PX0lMOyAvLyBvaWwgPSBvdGhlciBJbnRlcm5hbExpc3RlbmVyXG4gIHByaXZhdGUgb246IGJvb2xlYW4gPSBmYWxzZTtcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgbzogU3RyZWFtPGFueT4sIC8vIG8gPSBvdGhlclxuICAgICAgICAgICAgICBwdWJsaWMgaW5zOiBTdHJlYW08VD4pIHtcbiAgfVxuXG4gIF9zdGFydChvdXQ6IFN0cmVhbTxUPik6IHZvaWQge1xuICAgIHRoaXMub3V0ID0gb3V0O1xuICAgIHRoaXMuby5fYWRkKHRoaXMub2lsID0gbmV3IE90aGVySUwob3V0LCB0aGlzKSk7XG4gICAgdGhpcy5pbnMuX2FkZCh0aGlzKTtcbiAgfVxuXG4gIF9zdG9wKCk6IHZvaWQge1xuICAgIHRoaXMuaW5zLl9yZW1vdmUodGhpcyk7XG4gICAgdGhpcy5vLl9yZW1vdmUodGhpcy5vaWwpO1xuICAgIHRoaXMub3V0ID0gbnVsbCBhcyBhbnk7XG4gICAgdGhpcy5vaWwgPSBOT19JTDtcbiAgfVxuXG4gIHVwKCk6IHZvaWQge1xuICAgIHRoaXMub24gPSB0cnVlO1xuICAgIHRoaXMuby5fcmVtb3ZlKHRoaXMub2lsKTtcbiAgICB0aGlzLm9pbCA9IE5PX0lMO1xuICB9XG5cbiAgX24odDogVCkge1xuICAgIGNvbnN0IHUgPSB0aGlzLm91dDtcbiAgICBpZiAoIXUpIHJldHVybjtcbiAgICBpZiAoIXRoaXMub24pIHJldHVybjtcbiAgICB1Ll9uKHQpO1xuICB9XG5cbiAgX2UoZXJyOiBhbnkpIHtcbiAgICBjb25zdCB1ID0gdGhpcy5vdXQ7XG4gICAgaWYgKCF1KSByZXR1cm47XG4gICAgdS5fZShlcnIpO1xuICB9XG5cbiAgX2MoKSB7XG4gICAgY29uc3QgdSA9IHRoaXMub3V0O1xuICAgIGlmICghdSkgcmV0dXJuO1xuICAgIHRoaXMuX3N0b3AoKTtcbiAgICB1Ll9jKCk7XG4gIH1cbn1cblxuLyoqXG4gKiBTdGFydHMgZW1pdHRpbmcgdGhlIGlucHV0IHN0cmVhbSB3aGVuIGFub3RoZXIgc3RyZWFtIGVtaXRzIGEgbmV4dCBldmVudC4gVGhlXG4gKiBvdXRwdXQgc3RyZWFtIHdpbGwgZW1pdCBubyBpdGVtcyBpZiBhbm90aGVyIHN0cmVhbSBpcyBlbXB0eS5cbiAqXG4gKiBNYXJibGUgZGlhZ3JhbTpcbiAqXG4gKiBgYGB0ZXh0XG4gKiAtLS0xLS0tMi0tLS0tMy0tNC0tLS01LS0tLTYtLS1cbiAqICAgZHJvcFVudGlsKCAtLS0tLS0tLWEtLWItLXwgKVxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tNS0tLS02fFxuICogYGBgXG4gKlxuICogRXhhbXBsZTpcbiAqXG4gKiBgYGBqc1xuICogaW1wb3J0IGRyb3BVbnRpbCBmcm9tICd4c3RyZWFtL2V4dHJhL2Ryb3BVbnRpbCdcbiAqXG4gKiBjb25zdCBvdGhlciA9IHhzLnBlcmlvZGljKDIyMCkudGFrZSgxKVxuICpcbiAqIGNvbnN0IHN0cmVhbSA9IHhzLnBlcmlvZGljKDUwKVxuICogICAudGFrZSg2KVxuICogICAuY29tcG9zZShkcm9wVW50aWwob3RoZXIpKVxuICpcbiAqIHN0cmVhbS5hZGRMaXN0ZW5lcih7XG4gKiAgIG5leHQ6IGkgPT4gY29uc29sZS5sb2coaSksXG4gKiAgIGVycm9yOiBlcnIgPT4gY29uc29sZS5lcnJvcihlcnIpLFxuICogICBjb21wbGV0ZTogKCkgPT4gY29uc29sZS5sb2coJ2NvbXBsZXRlZCcpXG4gKiB9KVxuICogYGBgXG4gKlxuICogYGBgdGV4dFxuICogPiA0XG4gKiA+IDVcbiAqID4gY29tcGxldGVkXG4gKiBgYGBcbiAqXG4gKiAjIyMjIEFyZ3VtZW50czpcbiAqXG4gKiBAcGFyYW0ge1N0cmVhbX0gb3RoZXIgU29tZSBvdGhlciBzdHJlYW0gdGhhdCBpcyB1c2VkIHRvIGtub3cgd2hlbiB0aGUgb3V0cHV0XG4gKiBzdHJlYW0gb2YgdGhpcyBvcGVyYXRvciBzaG91bGQgc3RhcnQgZW1pdHRpbmcuXG4gKiBAcmV0dXJuIHtTdHJlYW19XG4gKi9cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGRyb3BVbnRpbDxUPihvdGhlcjogU3RyZWFtPGFueT4pOiAoaW5zOiBTdHJlYW08VD4pID0+IFN0cmVhbTxUPiB7XG4gIHJldHVybiBmdW5jdGlvbiBkcm9wVW50aWxPcGVyYXRvcihpbnM6IFN0cmVhbTxUPik6IFN0cmVhbTxUPiB7XG4gICAgcmV0dXJuIG5ldyBTdHJlYW08VD4obmV3IERyb3BVbnRpbE9wZXJhdG9yKG90aGVyLCBpbnMpKTtcbiAgfTtcbn1cbiJdfQ== |
\ | No newline at end of file |