quark-signal
Simple and tiny Observer design pattern implementation written in ES6.
This package is part of quark
framework but it can be used independently.
Installation
npm install quark-signal --save
Usage
Basic
Basic example using add()
and dispatch()
methods.
const mySignal = mySignalmySignal
Add once
Add a signal listener that will be called only once.
const mySignal = mySignalmySignal // It will not be dispatched againmySignal
Priority
Priorise a listener so that it will be called first when a signal is dispatched. Higher priority listener will be called earlier.
const mySignal = mySignalmySignal // It will be called first mySignal
Context
Bind a signal listener with a specific context.
const obj = foo: 'bar' { console // = 'bar'} const mySignal = mySignalmySignal
Propagation
Stop the propagation of a dispatched signal by returning false
in a listener.
const mySignal = mySignalmySignal // It will not be called mySignal
Has
Check if a signal listener exists.
const mySignal = const listener = { console } mySignalconst listenerExists = mySignal // = true
Remove
Remove a signal listener.
const mySignal = const listener = { console } mySignalmySignalmySignal
Remove all signal listeners.
const mySignal = const listener = { console } mySignalmySignalmySignal
API
See https://fm-ph.github.io/quark-signal/
Testing
To run the quark-signal
tests, first clone the repository and install its dependencies :
git clone https://github.com/fm_ph/quark-signal.gitcd quark-signalnpm install
Then, run the tests with :
npm test
For coverage, use :
npm test:coverage
References
- https://github.com/edankwan/min-signal
- https://github.com/millermedeiros/js-signals
- https://github.com/robertpenner/as3-signals
License
MIT License © Patrick Heng Fabien Motte