pico-signals
Version:
A very simple signal library inspired by the 'signals' package
101 lines (61 loc) • 2.7 kB
Markdown
[![NPM version][npm-image]][npm-url] [![Downloads][downloads-image]][npm-url] [![Build Status][travis-image]][travis-url] [![Coverage Status][codecov-image]][codecov-url] [![Dependency status][david-dm-image]][david-dm-url] [![Dev Dependency status][david-dm-dev-image]][david-dm-dev-url]
[]:https://npmjs.org/package/pico-signals
[]:https://img.shields.io/npm/dm/pico-signals.svg
[]:https://img.shields.io/npm/v/pico-signals.svg
[]:https://travis-ci.org/moxystudio/js-pico-signals
[]:http://img.shields.io/travis/moxystudio/js-pico-signals/master.svg
[]:https://codecov.io/gh/moxystudio/js-pico-signals
[]:https://img.shields.io/codecov/c/github/moxystudio/js-pico-signals/master.svg
[]:https://david-dm.org/moxystudio/js-pico-signals
[]:https://img.shields.io/david/moxystudio/js-pico-signals.svg
[]:https://david-dm.org/moxystudio/js-pico-signals?type=dev
[]:https://img.shields.io/david/dev/moxystudio/js-pico-signals.svg
A very simple signal library inspired by the [signals](https://github.com/millermedeiros/js-signals) package.
```sh
$ 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.
```js
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.
```
Adds a new listener to the list.
Returns a method to remove the listener.
Type: `Function`
A listener to be called on dispatch.
Deletes a listener from the list.
Type: `Function`
An existing listener in the list.
Deletes all listeners from the list.
Calls every listener with the specified arguments.
```sh
$ npm test
$ npm test -- --watch
```
Released under the [MIT License](http://www.opensource.org/licenses/mit-license.php).