cyclejs-utils
Version:
A few utility functions for dealing with merging of sinks
49 lines • 2.04 kB
JavaScript
"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