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 whenid
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 whenid
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 -
[args]
arguments 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}
theid
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