tallbag-share
TypeScript icon, indicating that this package has built-in type declarations

1.0.0 • Public • Published

tallbag-share

Tallbag operator that broadcasts a single source to multiple sinks. Does reference counting on sinks and starts the source when the first sink gets connected, similar to RxJS .share(). Works on either pullable or listenable sources.

npm install tallbag-share

example

Share a listenable source to two listeners:

const interval = require('callbag-interval');
const observe = require('callbag-observe');
const share = require('tallbag-share');
 
const source = share(interval(1000));
 
observe(x => console.log(x))(source); // 0
                                      // 1
                                      // 2
                                      // 3
                                      // ...
 
setTimeout(() => {
  observe(x => console.log(x))(source); // 3
                                        // 4
                                        // 5
                                        // ...
}, 3500);

Share a pullable source to two pullers:

const fromIter = require('callbag-from-iter');
const share = require('tallbag-share');
 
const source = share(fromIter([10,20,30,40,50]));
 
let talkback;
source(0, (type, data) => {
  if (type === 0) talkback = data;
  else console.log('a' + data);
});
 
source(0, (type, data) => {
  if (type === 1) console.log('b' + data);
});
 
talkback(1); // a10
             // b10
talkback(1); // a20
             // b20

Readme

Keywords

Package Sidebar

Install

npm i tallbag-share

Weekly Downloads

3

Version

1.0.0

License

MIT

Unpacked Size

15 kB

Total Files

8

Last publish

Collaborators

  • staltz