lokua.net.bus
v0.9.2
Published
micro event emitter
Maintainers
Readme
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 --saveUsage
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 //=> 0Params:
- [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
idis 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
idis 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 idsParams:
[id] {string}the
idto 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
