1 | ;
|
2 | Object.defineProperty(exports, "__esModule", { value: true });
|
3 | var index_1 = require("../index");
|
4 | var PairwiseOperator = /** @class */ (function () {
|
5 | function PairwiseOperator(ins) {
|
6 | this.ins = ins;
|
7 | this.type = 'pairwise';
|
8 | this.val = null;
|
9 | this.has = false;
|
10 | this.out = null;
|
11 | }
|
12 | PairwiseOperator.prototype._start = function (out) {
|
13 | this.out = out;
|
14 | this.ins._add(this);
|
15 | };
|
16 | PairwiseOperator.prototype._stop = function () {
|
17 | this.ins._remove(this);
|
18 | this.has = false;
|
19 | this.out = null;
|
20 | this.val = null;
|
21 | };
|
22 | PairwiseOperator.prototype._n = function (t) {
|
23 | var u = this.out;
|
24 | if (!u)
|
25 | return;
|
26 | if (this.has) {
|
27 | var prev = this.val;
|
28 | this.val = t;
|
29 | u._n([prev, t]);
|
30 | }
|
31 | else {
|
32 | this.val = t;
|
33 | this.has = true;
|
34 | }
|
35 | };
|
36 | PairwiseOperator.prototype._e = function (err) {
|
37 | var u = this.out;
|
38 | if (!u)
|
39 | return;
|
40 | u._e(err);
|
41 | };
|
42 | PairwiseOperator.prototype._c = function () {
|
43 | var u = this.out;
|
44 | if (!u)
|
45 | return;
|
46 | u._c();
|
47 | };
|
48 | return PairwiseOperator;
|
49 | }());
|
50 | /**
|
51 | * Group consecutive pairs of events as arrays. Each array has two items.
|
52 | *
|
53 | * Marble diagram:
|
54 | *
|
55 | * ```text
|
56 | * ---1---2-----3-----4-----5--------|
|
57 | * pairwise
|
58 | * -------[1,2]-[2,3]-[3,4]-[4,5]----|
|
59 | * ```
|
60 | *
|
61 | * Example:
|
62 | *
|
63 | * ```js
|
64 | * import pairwise from 'xstream/extra/pairwise'
|
65 | *
|
66 | * const stream = xs.of(1, 2, 3, 4, 5, 6).compose(pairwise)
|
67 | *
|
68 | * stream.addListener({
|
69 | * next: i => console.log(i),
|
70 | * error: err => console.error(err),
|
71 | * complete: () => console.log('completed')
|
72 | * })
|
73 | * ```
|
74 | *
|
75 | * ```text
|
76 | * > [1,2]
|
77 | * > [2,3]
|
78 | * > [3,4]
|
79 | * > [4,5]
|
80 | * > [5,6]
|
81 | * > completed
|
82 | * ```
|
83 | *
|
84 | * @return {Stream}
|
85 | */
|
86 | function pairwise(ins) {
|
87 | return new index_1.Stream(new PairwiseOperator(ins));
|
88 | }
|
89 | exports.default = pairwise;
|
90 | //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFpcndpc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvZXh0cmEvcGFpcndpc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxrQ0FBMEM7QUFFMUM7SUFNRSwwQkFBbUIsR0FBYztRQUFkLFFBQUcsR0FBSCxHQUFHLENBQVc7UUFMMUIsU0FBSSxHQUFHLFVBQVUsQ0FBQztRQUNqQixRQUFHLEdBQWEsSUFBSSxDQUFDO1FBQ3JCLFFBQUcsR0FBWSxLQUFLLENBQUM7UUFDdEIsUUFBRyxHQUFtQixJQUFXLENBQUM7SUFHekMsQ0FBQztJQUVELGlDQUFNLEdBQU4sVUFBTyxHQUFtQjtRQUN4QixJQUFJLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQztRQUNmLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3RCLENBQUM7SUFFRCxnQ0FBSyxHQUFMO1FBQ0UsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDdkIsSUFBSSxDQUFDLEdBQUcsR0FBRyxLQUFLLENBQUM7UUFDakIsSUFBSSxDQUFDLEdBQUcsR0FBRyxJQUFXLENBQUM7UUFDdkIsSUFBSSxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUM7SUFDbEIsQ0FBQztJQUVELDZCQUFFLEdBQUYsVUFBRyxDQUFJO1FBQ0wsSUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQztRQUNuQixJQUFJLENBQUMsQ0FBQztZQUFFLE9BQU87UUFDZixJQUFJLElBQUksQ0FBQyxHQUFHLEVBQUU7WUFDWixJQUFNLElBQUksR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDO1lBQ3RCLElBQUksQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDO1lBQ2IsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQ3RCO2FBQU07WUFDTCxJQUFJLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQztZQUNiLElBQUksQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDO1NBQ2pCO0lBQ0gsQ0FBQztJQUVELDZCQUFFLEdBQUYsVUFBRyxHQUFRO1FBQ1QsSUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQztRQUNuQixJQUFJLENBQUMsQ0FBQztZQUFFLE9BQU87UUFDZixDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ1osQ0FBQztJQUVELDZCQUFFLEdBQUY7UUFDRSxJQUFNLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDO1FBQ25CLElBQUksQ0FBQyxDQUFDO1lBQUUsT0FBTztRQUNmLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQztJQUNULENBQUM7SUFDSCx1QkFBQztBQUFELENBQUMsQUE3Q0QsSUE2Q0M7QUFFRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FtQ0c7QUFDSCxrQkFBb0MsR0FBYztJQUNoRCxPQUFPLElBQUksY0FBTSxDQUFTLElBQUksZ0JBQWdCLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztBQUN2RCxDQUFDO0FBRkQsMkJBRUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge09wZXJhdG9yLCBTdHJlYW19IGZyb20gJy4uL2luZGV4JztcblxuY2xhc3MgUGFpcndpc2VPcGVyYXRvcjxUPiBpbXBsZW1lbnRzIE9wZXJhdG9yPFQsIFtULCBUXT4ge1xuICBwdWJsaWMgdHlwZSA9ICdwYWlyd2lzZSc7XG4gIHByaXZhdGUgdmFsOiBUIHwgbnVsbCA9IG51bGw7XG4gIHByaXZhdGUgaGFzOiBib29sZWFuID0gZmFsc2U7XG4gIHB1YmxpYyBvdXQ6IFN0cmVhbTxbVCwgVF0+ID0gbnVsbCBhcyBhbnk7XG5cbiAgY29uc3RydWN0b3IocHVibGljIGluczogU3RyZWFtPFQ+KSB7XG4gIH1cblxuICBfc3RhcnQob3V0OiBTdHJlYW08W1QsIFRdPik6IHZvaWQge1xuICAgIHRoaXMub3V0ID0gb3V0O1xuICAgIHRoaXMuaW5zLl9hZGQodGhpcyk7XG4gIH1cblxuICBfc3RvcCgpOiB2b2lkIHtcbiAgICB0aGlzLmlucy5fcmVtb3ZlKHRoaXMpO1xuICAgIHRoaXMuaGFzID0gZmFsc2U7XG4gICAgdGhpcy5vdXQgPSBudWxsIGFzIGFueTtcbiAgICB0aGlzLnZhbCA9IG51bGw7XG4gIH1cblxuICBfbih0OiBUKSB7XG4gICAgY29uc3QgdSA9IHRoaXMub3V0O1xuICAgIGlmICghdSkgcmV0dXJuO1xuICAgIGlmICh0aGlzLmhhcykge1xuICAgICAgY29uc3QgcHJldiA9IHRoaXMudmFsO1xuICAgICAgdGhpcy52YWwgPSB0O1xuICAgICAgdS5fbihbcHJldiBhcyBULCB0XSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMudmFsID0gdDtcbiAgICAgIHRoaXMuaGFzID0gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICBfZShlcnI6IGFueSkge1xuICAgIGNvbnN0IHUgPSB0aGlzLm91dDtcbiAgICBpZiAoIXUpIHJldHVybjtcbiAgICB1Ll9lKGVycik7XG4gIH1cblxuICBfYygpIHtcbiAgICBjb25zdCB1ID0gdGhpcy5vdXQ7XG4gICAgaWYgKCF1KSByZXR1cm47XG4gICAgdS5fYygpO1xuICB9XG59XG5cbi8qKlxuICogR3JvdXAgY29uc2VjdXRpdmUgcGFpcnMgb2YgZXZlbnRzIGFzIGFycmF5cy4gRWFjaCBhcnJheSBoYXMgdHdvIGl0ZW1zLlxuICpcbiAqIE1hcmJsZSBkaWFncmFtOlxuICpcbiAqIGBgYHRleHRcbiAqIC0tLTEtLS0yLS0tLS0zLS0tLS00LS0tLS01LS0tLS0tLS18XG4gKiAgICAgICBwYWlyd2lzZVxuICogLS0tLS0tLVsxLDJdLVsyLDNdLVszLDRdLVs0LDVdLS0tLXxcbiAqIGBgYFxuICpcbiAqIEV4YW1wbGU6XG4gKlxuICogYGBganNcbiAqIGltcG9ydCBwYWlyd2lzZSBmcm9tICd4c3RyZWFtL2V4dHJhL3BhaXJ3aXNlJ1xuICpcbiAqIGNvbnN0IHN0cmVhbSA9IHhzLm9mKDEsIDIsIDMsIDQsIDUsIDYpLmNvbXBvc2UocGFpcndpc2UpXG4gKlxuICogc3RyZWFtLmFkZExpc3RlbmVyKHtcbiAqICAgbmV4dDogaSA9PiBjb25zb2xlLmxvZyhpKSxcbiAqICAgZXJyb3I6IGVyciA9PiBjb25zb2xlLmVycm9yKGVyciksXG4gKiAgIGNvbXBsZXRlOiAoKSA9PiBjb25zb2xlLmxvZygnY29tcGxldGVkJylcbiAqIH0pXG4gKiBgYGBcbiAqXG4gKiBgYGB0ZXh0XG4gKiA+IFsxLDJdXG4gKiA+IFsyLDNdXG4gKiA+IFszLDRdXG4gKiA+IFs0LDVdXG4gKiA+IFs1LDZdXG4gKiA+IGNvbXBsZXRlZFxuICogYGBgXG4gKlxuICogQHJldHVybiB7U3RyZWFtfVxuICovXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBwYWlyd2lzZTxUPihpbnM6IFN0cmVhbTxUPik6IFN0cmVhbTxbVCwgVF0+IHtcbiAgcmV0dXJuIG5ldyBTdHJlYW08W1QsIFRdPihuZXcgUGFpcndpc2VPcGVyYXRvcihpbnMpKTtcbn1cbiJdfQ== |
\ | No newline at end of file |