JSPM

  • Created
  • Published
  • Downloads 1562
  • Score
    100M100P100Q104889F
  • License MIT

A prominent event emitter

Package Exports

  • emmy

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 (emmy) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

Emmy Build Status

browser support

Emmy is an EventEmitter which first tries to use target event system - jQuery, DOM events, Backbone or other EventEmitter interface, if implemented, ond only then uses own events.

Emmy fully implements component-emitter interface, as well as jQuery events and ony other emitter interface, so you can safely replace existing emitter with Emmy.

Use

Install:

$ npm install emmy

Use static API:

var Emitter = require('emmy');

Emitter.on(target, 'evt', function(){});
Emitter.emit(target, 'evt');
Emitter.off(target, 'evt');

Create Emitter instance:

var Emitter = require('emmy');

var emitter = new Emitter;
emitter.emit('something');

Mixin object:

var Emitter = requre('emmy');

user = {name: 'John'};

Emitter(user);

user.emit('hello');

Mixin prototype:

var Emitter = require('emmy');
Emitter(User.prototype);

Or inherit Emitter:

var Emitter = require('emmy');


function Actor(){};


//Give out emmy to an actor :)
Actor.prototype = Object.create(Emitter);


var actor = new Actor();

actor

//Bind events
.on('event', handler)
.on('otherEvent', handler)
.on('event2', [handler1, handler2]) //bind list of handlers


//Unbind events
.off('event', handler)
.off('otherEvent') //unbind all 'otherEvent' callbacks
.off('event2', [handler1, handler2]); //unbind list of handlers
.off(target) //unbind all events


//Emit events
.emit('a')
.emit('b', data, bubbles);

You also might be interesting in more comprehensive emitter - give a glance at ENot — event notation system.

License

MIT