pico-signals

1.0.0 • Public • Published

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

Package Sidebar

Install

npm i pico-signals

Weekly Downloads

3,185

Version

1.0.0

License

MIT

Unpacked Size

7.46 kB

Total Files

6

Last publish

Collaborators

  • paulobmarcos