pico-signals
v1.0.0
Published
A very simple signal library inspired by the 'signals' package
Downloads
17,412
Maintainers
Readme
pico-signals
A very simple signal library inspired by the signals package.
Installation
$ npm install pico-signals
This library is written in modern JavaScript and is published with both CommonJS and ES module transpiled variants.
If you target older browsers please make sure to transpile accordingly.
Usage
import picoSignals from 'pico-signals';
const listener1 = () => console.log('Listener 1');
const listener2 = () => console.log('Listener 2');
const ps = picoSignals();
const removeListener1 = ps.add(listener1);
const removeListener2 = ps.add(listener2);
ps.dispatch('foo', 'bar');
//=> Both listeners will be called and both logs produced.
//=> Every listener will receive the same arguments provided in the dispatch method.
removeListener2();
//=> Deletes `listener2` from the listeners list;
ps.dispatch();
//=> Only `listener1` will be called since its currently the only listener on the list.
ps.clear();
//=> Clears all listeners.
API
add(listener)
Adds a new listener to the list.
Returns a method to remove the listener.
listener
Type: Function
A listener to be called on dispatch.
delete(listener)
Deletes a listener from the list.
listener
Type: Function
An existing listener in the list.
clear()
Deletes all listeners from the list.
dispatch(...args)
Calls every listener with the specified arguments.
Tests
$ npm test
$ npm test -- --watch # during development
License
Released under the MIT License.