
Security News
NIST Officially Stops Enriching Most CVEs as Vulnerability Volume Skyrockets
NIST will stop enriching most CVEs under a new risk-based model, narrowing the NVD's scope as vulnerability submissions continue to surge.
signalus-simplex
Advanced tools
Simple signal messaging system
npm i signalus-simplex
Package on npm
| Argument | Action |
|---|---|
| cb | the callback |
| ctx | optional context for cb, default to undefined |
| priority | optional priority, higher is invoked first, default to 0 |
Simple example
const Signal = require('signalus-simplex')
var update = new Signal()
function cb(arg) {
console.log('hello', arg)
}
update.add(cb)
// hello world
update.dispatch('world')
With context
const Signal = require('signalus-simplex')
function cb(num) {
console.log(num + this.val)
}
var ctx = { val:5 }
var update = new Signal()
update.add(cb, ctx)
// 15
update.dispatch(10)
With priority
const Signal = require('signalus-simplex')
function fun1() { console.log('a') }
function fun2() { console.log('b') }
function fun3() { console.log('c') }
var update = new Signal()
update.add(fun1)
update.add(fun2)
update.add(fun3, null, 2)
// c
// a
// b
update.dispatch()
Remove all listeners
const Signal = require('signalus-simplex')
function fun1() { console.log('a') }
function fun2() { console.log('b') }
update.add(fun1)
update.add(fun2)
// a
// b
update.dispatch()
update.clear()
update.dispatch() // do nothing
Dispatch with custom arguments
const Signal = require('signalus-simplex')
function cb(a, b) {
console.log('a:', b)
console.log('b:', b)
}
var update = new Signal()
update.add(cb)
// a: foo
// b: bar
update.dispatch('foo', 'bar')
Stop propagation by returning false
const Signal = require('signalus-simplex')
function fun1() { console.log('a'); return false }
function fun2() { console.log('b') }
update.add(fun1)
update.add(fun2)
// a
update.dispatch()
Check if cb is already registered
Return true if the exact same association cb / ctx was found
const Signal = require('signalus-simplex')
var update = new Signal()
function cb() {
console.log('hello world')
}
// false
update.has(cb)
update.add(cb)
// true
update.has(cb)
update.remove(cb)
// false
update.has(cb)
Like add but the callback cb will be invoked only once
The internal reference is automatically removed after the dispatch, using remove is not needed
Same options than add
const Signal = require('signalus-simplex')
var update = new Signal()
function cb() {
console.log('hello')
}
update.add(cb)
// hello
update.dispatch()
update.dispatch() // do nothing
Remove the listener cb
The listener is removed only if the exact same association cb / ctx was added
const Signal = require('signalus-simplex')
function fun1() { console.log('a') }
function fun2() { console.log('b') }
function fun3() { console.log('c') }
function fun4() { console.log('d') }
var ctx1 = {}
var ctx2 = {}
update.add(fun1)
update.add(fun2)
update.add(fun3, ctx1)
update.add(fun4, ctx2)
update.remove(fun1)
// not removed because fun2 is registered without context
update.remove(fun2, ctx1)
// not removed because fun3 is registered with `ctx1`
update.remove(fun3)
update.remove(fun4, ctx2)
// b
// c
update.dispatch()
Mainly forked / inspired on
MIT
FAQs
Simple signal messaging system
The npm package signalus-simplex receives a total of 2 weekly downloads. As such, signalus-simplex popularity was classified as not popular.
We found that signalus-simplex demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Security News
NIST will stop enriching most CVEs under a new risk-based model, narrowing the NVD's scope as vulnerability submissions continue to surge.

Company News
/Security News
Socket is an initial recipient of OpenAI's Cybersecurity Grant Program, which commits $10M in API credits to defenders securing open source software.

Security News
Socket CEO Feross Aboukhadijeh joins 10 Minutes or Less, a podcast by Ali Rohde, to discuss the recent surge in open source supply chain attacks.