lokua.net.bus v0.9.2
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:
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