Skip to content
A very simple signal library inspired by the 'signals' package
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
tests
.babelrc
.editorconfig
.eslintrc.json
.gitignore
.travis.yml
CHANGELOG.md
LICENSE
README.md
index.js
package-lock.json
package.json

README.md

pico-signals

NPM version Downloads Build Status Coverage Status Dependency status Dev Dependency status

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 in both CommonJS and ES module transpiled variants.

If you target older browsers please make sure to transpile accordingly.

Usage

import signal from 'pico-signals';

const listener1 = () => console.log('Listener1');
const listener2 = () => console.log('Listener2');

const mySignal = signal();

const removeListener1 = mySignal.add(listener1);
const removeListener2 = mySignal.add(listener2);

mySignal.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;

mySignal.dispatch();
//=> Only `listener1` will be called since its currently the only listener on the list.

mySignal.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.

You can’t perform that action at this time.