lil-event

Tiny event bus inspired in Node's EventEmitter

Downloads in past

Stats

StarsIssuesVersionUpdatedCreatedSize
lil-event
1130.1.38 years ago8 years agoMinified + gzip package size for lil-event in KB

Readme

lil'-event Build Statustravis Stories in Ready Code Climate Gitter chat

Tiny event bus inspired in Node's EventEmitter
Nameevent
Version0.1.3
Size2 KB / >1 KB (gzipped)
EnvironmentNode, Browser

Installation

Node.js

npm install lil-event

Browser

Via Bower
bower install lil-event
Via Component
component install lil-js/event
Or loading the script remotely
<script src="//cdn.rawgit.com/lil-js/event/0.1.3/event.js"></script>

Environments

  • Node.js
  • Chrome >= 5
  • Firefox >= 3
  • Safari >= 5
  • Opera >= 10
  • IE >= 9

Usage

You could fetch de module via require() if it's available. Otherwise, global fallback will be used, exposed via lil.Event
var lil = require('lil-event')
Basic emitter API
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
connectDB()
  .on('error', onErrorHandler)
  .on('start', onStartHandler)
Prototype inheritance
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
var human = new Human()
human.on('walk', function (distance) {
  // ...
})
human.on('sleep', function (time) {
  // ...
})

API

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

Contributing

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

Development

Only node.js is required for development
Clone the repository
$ git clone https://github.com/lil-js/event.git && cd event

Install dependencies
$ npm install

Generate browser bundle source
$ make browser

Run tests
$ make test

License

MIT © Tomas Aparicio