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

Dependencies (0)

    Dev Dependencies (4)

    Package Sidebar

    Install

    npm i nanopubsub

    Weekly Downloads

    5

    Version

    1.0.0

    License

    none

    Last publish

    Collaborators

    • mreinstein
    • benlyn
    • s3ththompson
    • yoshuawuyts
    • bret
    • lrlna
    • yerkopalma
    • juliangruber
    • timwis
    • ahdinosaur
    • toddself
    • sethvincent
    • maxogden
    • shama
    • freeman-lab
    • feross
    • emilbayes
    • colingourlay
    • jameskyburz
    • almost
    • slaskis
    • ungoldman
    • graforlock
    • tornqvist
    • amongiants
    • goto-bus-stop
    • mafintosh