Skip to content

danielkov/evs

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

codecov Build Status dependencies devDependencies Status npm version Inline docs

Read me

This is an ES6 Event Emitter or Event system, that is fast and flexible and makes use of awesome next generation JavaScript features.

Installation

$ npm i --save evs

If you are planning to use it in the browser, for a while you'll need to compile it with something like Babel to make sure it works for everyone.

If using it with Node JS, you need to make sure you are running a version which is compatible with the ES2015 features. You may need to run node --harmony if it doesn't work for you.

API

.constructor()

Creates a new instance. Example usage:

const Evs = require('evs');

let evs = new Evs();

As this is an ES6 class, you can also extend it and give it your own functionality:

class myEvs extends Evs {
	constructor () {
		super() // This line is required.
	}

	// Namespacing our trigger.

	do (name, data) {
		this.trigger(name, data);
	}
}

Using the basic API:

let evs = new Evs();

// Subscribe to an event:

evs.on('name', myFunc);

// Pass more functions into a single handler:

evs.on('name', myFunc1, myFunc2, myFunc3);

// Use a function for more than one event:

evs.on('name test click', (data) => {console.log(data)});

// Use an array of functions, or even multiple arrays of multiple functions:

evs.on('name', myFunc1, [myFunc2, myFunc3, [myFunc4, myFunc5]]);

// Subscribe to an event only once (same API as on()):

evs.once('name', myFunc);

// Unsubscribe from an event:

evs.off('name', 1) // This will remove the second handler

evs.off('test') // This will remove all handlers

// Unsub from all events (reset emitter):

evs.ofAll();

// Trigger an event:

evs.trigger('name') // No data

evs.trigger('click', {e: event}); // Object as data

// Trigger multiple events:

evs.trigger('click submit', {e: event});

Testing

To run test, install dependencies with:

npm i

Afterwards run

npm test

Contribution

If you have any suggestions feel free to add a PR. Bugfixes and performance improvements are always welcome. :)

About

Fast and flexible ES6 event system.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published