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