stereo
v0.4.0
Published
The event emitter power kit.
Downloads
8
Maintainers
Readme
stereo
The event emitter power kit.
Supports multiple channels
and promise-like caching.
“EventEmitter compared to RxJS is analogous to roller blades versus cars.” This is a super-lightweight “build your own car” kit.
stereo is a super-lightweight alternative to RxJS. A collection of micro modules you can mix, match and extend.
Create your own slim and powerful event emitter.
Note: I’m very tied up with work at the moment. I’m using this library in my own projects, but I still need a while to document it, do coverage reports, changelog and the marketing :) Ideas and questions are very welcome.
Installation
$ npm install stereo
Usage
The “batteries included” way
import ø from 'stereo';
let myLibrary = 'anything';
Object.assign(myLibrary, ø());
myLibrary.on('channel one', console.log.bind(console));
myLibrary.emit('channel one', 'All arguments are passed on.', /Not kiddin'/);
//» All arguments are passed on. /Not kiddin'/
myLibrary.off('channel one');
myLibrary.emit('channel one', 'No-one’s listening anymore.');
// Boring? Don’t give up – read on!
The “DIY” way
import øEmit from 'stereo/emit';
import øWhen from 'stereo/when';
let myLibrary = 'anything';
myLibrary.emit = øEmit();
myLibrary.when = øWhen(myLibrary.emit);
// Miracles happen!
myLibrary.emit('channel one', 'Yay, this has been cached!');
// Time goes by...
myLibrary.when(
['channel one', 'channel two'],
console.log.bind(console)
);
//» Yay, this has been cached!
myLibrary.emit(
['channel one', 'channel two', 'channel three']
'This is called http://j.mp/demultiplexing .'
);
//» This is called http://j.mp/demultiplexing .