@amphibian/emitter

small utility emitter library

Stats

stars 🌟issues ⚠️updated 🛠created 🐣size 🏋️‍♀️
Minified + gzip package size for @amphibian/emitter in KB

Readme

emitter

small utility emitter library

npm install @amphibian/emitter
const createEmitter = require('@amphibian/emitter');
const myCustomEmitter = createEmitter();

myCustomEmitter.on((data) => {
    console.log(data);
});

myCustomEmitter.emit('Hello');
// > 'Hello'

Unsubscribe

The following example will only trigger console.log once as the event listener unsubscribes itself the first time it is fired.

const myCustomEmitter = createEmitter();
const unsubscribe = myCustomEmitter.on((data) => {
    unsubscribe();
    console.log(data);
});

myCustomEmitter.emit('Hello');
myCustomEmitter.emit('Hello');
// > 'Hello'

You can also save the function and call off.

const myCustomEmitter = createEmitter();
const eventHandler = (data) => {
    console.log(data);
};

myCustomEmitter.on(eventHandler);
myCustomEmitter.off(eventHandler);

Stop propagation

To prevent subsequent listeners from firing, stop propagation as follows:

const myCustomEmitter = createEmitter();

myCustomEmitter.on(() => {
    myCustomEmitter.stopPropagation();
    console.log('I am number one.');
});

myCustomEmitter.on(() => {
    console.log('I am number two.');
});

myCustomEmitter.emit();
// > 'I am number one.'

Only the first event listener will be called.

If you find any bugs or have a feature request, please open an issue on github!

The npm package download data comes from npm's download counts api and package details come from npms.io.