UNPKG

reactive-blocs

Version:
27 lines (26 loc) 953 B
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.link = exports.currentEvent = exports.events = exports.blocs = void 0; const rxjs_1 = require("rxjs"); const operators_1 = require("rxjs/operators"); const unique = (arr) => [...new Set(arr)]; exports.blocs = new rxjs_1.BehaviorSubject([]); exports.events = new rxjs_1.BehaviorSubject([]); exports.currentEvent = exports.events.pipe((0, operators_1.map)(events => events[events.length - 1])); const link = (source, target, labels) => { if (labels) { exports.blocs.next(unique(exports.blocs.getValue().concat(labels))); } source.subscribe(val => { if (labels) { const [from, to] = labels; const event = { from, to, payload: val }; exports.events.next(exports.events.getValue().concat(event)); } target.next(val); }); }; exports.link = link;