@vandeurenglenn/little-pubsub
v1.5.1
Published
Publish & Subscribe
Downloads
24
Maintainers
Readme
little-pubsub
Small publish & subscribe class
INSTALL
npm
npm i --save @vandeurenglenn/little-pubsub
USAGE
import PubSub from '@vandeurenglenn/little-pubsub'
const pubsub = new PubSub()
Breaking Changes
v1.5.0
subscribe[context]
& unsubscribe[context]
-> subscribe[options({keepValue, context})]
// before
pusbub.subscribe(topic, handler, context)
// now
pusbub.subscribe(topic, handler, { context })
Example
import PubSub from '@vandeurenglenn/little-pubsub'
const pubsub = new PubSub()
pubsub.subscribe('event', (value) => {
console.log(value)
})
pubsub.publish('event', 'hello')
// always runs handler
// (can use to overide littlePubsub.verbose setting without changing the behavior of the rest)
pubsub.publishVerbose('event', 'hello')
pubsub.unsubscribe('event', (value) => {
console.log(value)
})
pubsub.hasSubscribers('event')
await pubsub.once('event')
API
pubsub([options])
verbose
: when false only fires after value change
pubsub = new PubSub({
verbose: false // default: true
})
subscribe
name
: name of the channel to subscribe to
handler
: method
options
: { context, keepValue }
subscribing to an event will also return it's initial value
pubsub.subscribe('event-name', (data) => {
console.log(data)
})
unsubscribe
name
: name of the channel to unsubscribe
handler
: method
options
: { context, keepValue }
pubsub.unsubscribe(
'event-name',
(data) => {
console.log(data)
},
{ keepValue: false } // default
)
publish
name
: name of the channel to publish to
handler
: method
verbose
: boolean
pubsub.publish('event-name', 'data')
publish
name
: name of the channel to publish to
handler
: method
pubsub.publishVerbose('event-name', 'data')
once
name
: name of the channel to get the value from
pubsub.getValue('event-name')
once
name
: name of the channel to publish to
await pubsub.once('event-name')
hasSubscribers
name
: name of the channel to publish to
pubsub.hasSubscribers('event-name')