Nachos Preventing Motivation
    Wondering what’s next for npm?Check out our public roadmap! »

    nanopubsub

    1.0.0 • Public • Published

    nanopubsub stability

    npm version build status test coverage downloads js-standard-style

    Tiny message bus.

    Usage

    var nanopubsub = require('nanopubsub')
    var bus = nanopubsub()
     
    bus.on('flush', function () {
      console.log('all events done!')
    })
     
    bus.sub('beep:boop', function (data, done) {
      console.log('boop was called')
      done()
    })
     
    bus.pub('beep:boop', function () {
      console.log('calling beep:boop done!')
    })

    FAQ

    How do I handle errors?

    Emit an event like you'd do with everything else. There is no need for global error handling because it can be implemented by consumers.

    How do I publish from a subscriber?

    You can call bus.pub from inside bus.sub - wait with calling done() until the bus.pub call has resolved to guarantee the right ordering of events.

    How do I namespace events?

    This is done through convention. We recommend namespacing events using the : separator (e.g. bus.sub('foo:bar')).

    API

    bus = nanopubsub()

    Create a new message bus.

    bus.sub(eventName, callback(data, done))

    Create a new subscriber for an event. done() should be called when the subscriber is done.

    bus.pub(eventName, [data], callback)

    Emit a new event with optional data attacked. The callback is called once all handlers are done.

    bus.on(eventName, callback)

    Listen to global events on the message bus. There are a few events available:

    • bus.on('flush'): called when all bus.pub calls have resolved.
    • bus.on('pub'): called every time a bus.pub call is fired. eventName and data are passed to the callback.

    License

    MIT

    Install

    npm i nanopubsub

    DownloadsWeekly Downloads

    1

    Version

    1.0.0

    License

    none

    Last publish

    Collaborators

    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar