GitXplorerGitXplorer
k

es6-emitter

public
11 stars
0 forks
0 issues

Commits

List of commits on branch master.
Unverified
95dc192181164ad52aaaeb63a031aec75fe2266f

Merge branch 'master' of https://github.com/kutyel/es6-emitter

kkutyel committed 5 years ago
Unverified
7867396e9136187730dcdcf4068fe35aa3f1f92e

Fix security issue!

kkutyel committed 5 years ago
Verified
0ff3ecbfcc75fb8558a25d4370c87bb9e633b549

Modernize docs

kkutyel committed 6 years ago
Unverified
e7814bec218477e6107310b5b9f29b84a0591468

Modernize

kkutyel committed 6 years ago
Verified
4ec7aa1a9bb56f77ec36d20d92599fae95525cf9

Fix security issue

kkutyel committed 6 years ago
Verified
9acf953b8cd14bd7cb3f35ac7d409b774c76fdf4

Simplify subscription ⚡️

kkutyel committed 6 years ago

README

The README file for this repository.

es6-emitter

Standard - JavaScript Style Guide

Node version Build Status Coverage Status Dependency status Dev Dependencies Status NPM Status Donate

Smallest event emitter for JavaScript with all the power of ES6 Maps!

Install

$ npm install es6-emitter --save

Usage

import Emitter from 'es6-emitter'

const em = new Emitter()

API

subscribe (name, callback)

Allows you to add subscriptions to your emitter given a certain name, multiple subscriptions under the same name are allowed!

const sub1 = em.subscribe('myEvent', foo => console.log('a callback!'));

const sub2 = em.subscribe('myEvent', (bar, baz) => console.log('another callback!'));

sub1(); // releases the first subscription

Returns a function to release the subscription while the others remain intact.

name

Required
Type: any

Can be literally any type, and corresponds to the name of the event that you want the Emitter to subscribe to.

callback

Required
Type: function

Side effect that you want to associate with the name of the event.

emit (name[, args])

Allows you to emit any subscription added to the emitter, with any number of arguments.

em.emit('myEvent', 1, '2', null, () => 4);

Returns an array with every return value for each subscription callback.

const s1 = em.subscribe('otherEvent', () => 1);
const s2 = em.subscribe('otherEvent', () => 2);
const s3 = em.subscribe('otherEvent', () => true);
const result = em.emit('otherEvent'); // > [1, 2, true]

name

Required
Type: any

Just as in the subscribe function, this is the name of the event you want to emit.

args

Any number of values of any type to be passed to the subscription functions.

ES6 Map Awesomeness ✨

Thanks to ES Maps goodness, the name of the event subscribed can be literally anything, even another function! 😱

const em = new Emitter();

const eventObject = { name: 'click', debounce: 300 };
const eventFunction = e => console.log(e);

const sub1 = em.subscribe(NaN, () => 'not a number');
const sub2 = em.subscribe(eventObject, () => 'called with an object!');
const sub3 = em.subscribe(eventFunction, () => 'called with a function!');

em.emit(NaN); // > ['not a number']
em.emit(eventObject); // > ['called with an object!']
em.emit(eventFunction); // > ['called with a function!']

License

MIT © Flavio Corpa.