Neptunium, Promethium, Manganese
    Wondering what’s next for npm?Check out our public roadmap! »

    stereo

    0.4.0 • Public • Published

    Coveralls – test coverage Travis – build status David – status of dependencies Code style: airbnb

    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 .

    License

    MIT © Tomek Wiszniewski

    Install

    npm i stereo

    DownloadsWeekly Downloads

    2

    Version

    0.4.0

    License

    MIT

    Last publish

    Collaborators

    • avatar