New Research: Supply Chain Attack on Axios Pulls Malicious Dependency from npm.Details
Socket
Book a DemoSign in
Socket

signalus-simplex

Package Overview
Dependencies
Maintainers
1
Versions
2
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

signalus-simplex

Simple signal messaging system

latest
Source
npmnpm
Version
0.1.1
Version published
Maintainers
1
Created
Source

signalus-simplex

Simple signal messaging system

Install

npm i signalus-simplex

Package on npm

API

add(cb, [ctx], [priority])

ArgumentAction
cbthe callback
ctxoptional context for cb, default to undefined
priorityoptional 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()

clear()

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([arg], [arg], [...])

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()

has(cb, [ctx])

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)

once(cb, [ctx], [priority])

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(cb, [ctx])

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()

Thanks

Mainly forked / inspired on

License

MIT

Keywords

signal

FAQs

Package last updated on 13 Jul 2016

Did you know?

Socket

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.

Install

Related posts