0.9.2 • Published 8 years ago

lokua.net.bus v0.9.2

Weekly downloads
1
License
MIT
Repository
github
Last release
8 years ago

lokua.net.bus

Micro event emitter. Only 1.68 KB minified (803 B when gzipped).

Basic messaging class with the usual on, once, trigger, and remove suspects. There is also an additional alias method to call those whatever you want.

Installation

npm install lokua.net.bus --save

Usage

Node:

const Bus = require('lokua.net.bus');

Browser:

<script src="node_modules/lokua.net.bus/dist/bus.min.js"></script>
<script>
Bus === window.Bus // => true
</script>

If you are using an es6 build system you can import dist/bus-es6.js file.

import Bus from 'lokua.net.bus/dist/bus-es6.js'

API

Bus

Class constructor

Example

// default no-arg constructor
let bus = new Bus()
let i = 0
bus.on('inc', () => i++)
bus.trigger('inc')
i //=> 1

// or with aliases
bus = new Bus({
  trigger: 'doThatShit',
  on: 'comeAtMe'
})
bus.comeAtMe('dec', () => i--)
bus.doThatShit('dec')
i //=> 0
Params:
  • aliases {Object}hash of method name aliases

#on(id, handler)

Register a function to be called whenever id is triggered.

Params:
  • id {string}the id handler will trigger on

  • handler {Function}the function that will be called when id is triggered

Return:
  • {Bus} this

#once(id, handler)

Register a handler that will be removed after the first time it is called

Params:
  • id {string}the id handler will trigger on

  • handler {Function}the function that will be called when id is triggered

Return:
  • {Bus} this

#trigger(id, args)

trigger all handlers attached to id with optional arguments

Params:
  • id {string}name of previously attached (if any) handler

  • argsarguments to pass to the attached handler

Return:
  • {Bus} this

#remove(id, handler)

Remove a single handler for id, all handlers for id, or completely clear this bus of all handlers.

Example

bus.remove('a') //=> removes ALL handlers attached to 'a'
bus.remove('a', nameFunc) //=> removes ONLY nameFunc from 'a' handlers
bus.remove() //=> completely removes all handlers for all ids
Params:
  • id {string}the id to remove

  • handler {string}the handler to detach

Return:
  • {Bus} this

#alias(aliases)

Provide a hash of alternate name(s) for one or more Bus instance methods where the key is the native Bus method and the value is the alias.

Params:
  • aliases {Object}hash of method:alias pairs
Return:
  • {Bus} this

License

MIT