JSPM

lil-event

0.1.1
  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 1736
  • Score
    100M100P100Q118130F
  • License MIT

Tiny event bus inspired in Node's EventEmitter

Package Exports

  • lil-event

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (lil-event) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

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

Tiny event bus inspired in Node's EventEmitter

Nameevent
Version0.1.1
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.1/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)
}
Event 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