Tiny event bus inspired in Node's EventEmitter
npm install lil-event
Tiny event bus inspired in Node's EventEmitter
| Name | event |
| Version | 0.1.3 |
| Size | 2 KB / >1 KB (gzipped) |
| Environment | Node, Browser |
#### Node.js
``bash`
npm install lil-event
#### Browser
Via Bower
`bash`
bower install lil-event`
Via Componentbash`
component install lil-js/event`
Or loading the script remotelyhtml`
- Node.js
- Chrome >= 5
- Firefox >= 3
- Safari >= 5
- Opera >= 10
- IE >= 9
You could fetch de module via require() if it's available.lil.Event
Otherwise, global fallback will be used, exposed via `js`
var lil = require('lil-event')
##### Basic emitter API
`js`
function connectDB() {
var bus = new lil.Event()
db.connect(uri)
.on('error', function (err) {
bus.emit('error', err)
})
.on('success', function () {
bus.emit('start', db)
})
return bus
}
##### Events subscription
`js`
connectDB()
.on('error', onErrorHandler)
.on('start', onStartHandler)
##### Prototype inheritance
`js
function Human() {}
Human.prototype = Object.create(lil.Event.prototype)
Human.prototype.walk = function (distance) {
this.emit('walk', distance)
}
Human.prototype.sleep = function (time) {
this.emit('walk', time)
}
`
##### Events subscription
`js`
var human = new Human()
human.on('walk', function (distance) {
// ...
})
human.on('sleep', function (time) {
// ...
})
#### Event()
Create a new Event bus
#### Event#on(event, fn)
Alias: addListener Return: this
Subscribe to an specific event
#### Event#once(event, fn)
Alias: addOnceListener Return: this
Subcribe to an specific event for a once time.
After event is emitted, the handler will be flushed from the listeners pool
#### Event#off(event, fn)
Alias: addListener Return: this
Unsubscribe an event listener by name and function
#### Event#emit(event, [ arguments... ])
Alias: fire Return: this
Fire an event on the current bus
#### Event#offAll(event)
Alias: removeAllListeners Return: this
Remove all listeners for the given event name
#### Event.VERSION
Wanna help? Cool! It will be appreciated :)
You must add new test cases for any new feature or refactor you do,
always following the same design/code patterns that already exist
Only node.js is required for development
Clone the repository
`bash`
$ git clone https://github.com/lil-js/event.git && cd event
Install dependencies
`bash`
$ npm install
Generate browser bundle source
`bash`
$ make browser
Run tests
`bash``
$ make test
MIT © Tomas Aparicio
[travis]: http://travis-ci.org/lil-js/event