Evemit
Minimal and fast JavaScript event emitter for Node.js and front-end.
Only 1kb minified (577 bytes gzipped).
Getting started
Install
Via NPM
npm install evemit --save
Or download the evemit.min.js file.
If Evemit
is used in CommonJS environment (Node.js, Browserify, Webpack, ...),
it is exposed as module with module.exports
.
So in CommonJS, evemit is not exposed in the global scope (even on client side) :)
var ev = ; // true (it's the constructor)console; // undefined, even on front-end with Browserify, Webpack, ...console;
Basic usage (without CommonJS)
// trueconsole; // trueconsole;
Usage
var Evemit = ; // Or if you are not in an environment CommonJS (Node.js, Browserify, Webpack, ...)// uses directly `Evemit`, without `var Evemit = require('evemit')` var obj = ; obj; obj;
API
See the complete API doc.
Evemit.on({string} event, {function} listener, {mixed} [context])
Add a listener.
obj; obj;
Evemit.once({string} event, {function} listener, {mixed} [context])
Listen once
{ console; // Hello 1} // Add listener, defined to be triggered "once"obj; // myCallback() is invoked and the listener is removedobj; // myCallback() is not called because it is no longer listening on this eventobj;
Evemit.emit({string} event, {mixed} [...arg])
Emit an event
obj;
With arguments passed to the listeners
obj;
Evemit.off({string} event, {function} listener)
Remove a listener
{ // some code ...} // adda; // removea;
Evemit.listeners({string} [event])
Get all listeners
// Returns an array containing all listenersobj;
Count all listeners
// Returns a number.objlength;
Get all listeners of a given event
// Returns an array of listenersobj;
Count all listeners of a given event
objlength;
The methods of the Array
object can be used to manage the listeners.
Example
// reverse the order of the listeners executionobj; // slicesobj; // Removes the first listener of the stack, and returns that listenervar firstListener = obj; // Removes the last listener of the stack, and returns that listenervar lastListener = obj; // ...
Use the property obj.events
if you want to get an object like
{event1: [array of listeners], event2: [array of listeners], ...}
Unit tests
evemit
is unit tested with Unit.js.
Run the tests
cd node_modules/evemit npm test
To execute the tests on client side, download the test
directory and go on test/index.html file with your browser.
LICENSE
MIT (c) 2014, Nicolas Tallefourtane.
Author
Nicolas Talle |