UNPKG

cyclejs-utils

Version:

A few utility functions for dealing with merging of sinks

49 lines 2.04 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var xstream_1 = require("xstream"); var state_1 = require("@cycle/state"); var index_1 = require("../src/index"); // ***************** mergeSinks ***************** // var sinks1 = { DOM: xstream_1.default.of("test"), HTTP: xstream_1.default.of({ url: '/api' }) }; var sinks2 = { DOM: xstream_1.default.of("foo") }; var sinks3 = { HTTP: xstream_1.default.of({ url: '/test' }), foo: xstream_1.default.never() }; var res = index_1.mergeSinks([sinks1, sinks2, sinks3]); res.foo.subscribe({}); res.DOM.subscribe({}); res.HTTP.subscribe({}); // typings:expect-error res.bar.subscribe({}); function merger(doms) { return xstream_1.default.merge.apply(xstream_1.default, doms); } var res2 = index_1.mergeSinks([sinks1, sinks2, sinks3], { DOM: merger }); var res3 = index_1.mergeSinks([sinks1, sinks2, sinks3], { // typings:expect-error bar: merger }); var res4 = index_1.mergeSinks([sinks1, sinks2, sinks3], { // typings:expect-error HTTP: merger }); // ***************** pickMergeSinks ***************** // var component = state_1.makeCollection({ item: function () { return ({ DOM: xstream_1.default.of("foo"), HTTP: xstream_1.default.of({ url: '/bar' }) }); }, collectSinks: index_1.pickMergeSinks(['DOM', 'HTTP', 'foo']) }); var component2 = state_1.makeCollection({ item: function () { return ({ DOM: xstream_1.default.of("foo"), HTTP: xstream_1.default.of({ url: '/bar' }) }); }, collectSinks: index_1.pickMergeSinks(['DOM', 'HTTP', 'foo'], { DOM: function (ins) { return ins.pickMerge('foo'); } }) }); // ***************** extractSinks ***************** // var sinks$ = xstream_1.default.of({ DOM: xstream_1.default.of("hello"), HTTP: xstream_1.default.of({ url: '/foo' }) }); var driverNames = ['DOM', 'HTTP', 'foo']; var extract = index_1.extractSinks(sinks$, driverNames); extract.DOM.subscribe({}); extract.HTTP.subscribe({}); // typings:expect-error extract.foo.subscribe({}); //# sourceMappingURL=index.js.map