lightcast
v0.2.1
Published
The Pub/Sub pattern is needed every now and then and this library is a no dependency, tiny and typesafe solution.
Downloads
23
Maintainers
Readme
lightcast
The Pub/Sub pattern is needed every now and then and this library is a no dependency, tiny and typesafe solution.
Installation
Yarn
yarn add lightcast
NPM
npm install lightcast --save
Use
import { createPubSub } from 'lightcast'
// create
const pubSub = createPubSub<string>()
// subscribe anywhere in your app
pubSub.subscribe(console.log)
pubSub.subscribe(console.log)
// dispatch
pubSub.dispatch('hello world')
Working with groups
// say you have a piece of code that accepts callbacks for events
const loader = createLoader({
onProgress: (progress) => console.log(progress),
onComplete: () => console.log('done'),
})
import { createPubSub } from 'lightcast'
const pubSub = {
onProgress: createPubSub<number>(),
onComplete: createPubSub<void>(),
}
// you could make it work like this...
const loader = createLoader({
onProgress: pubSub.onProgress.dispatch,
onComplete: pubSub.onComplete.dispatch,
// ...
})
import { createPubSub, groupByAction } from 'lightcast'
// but it is easier to group by dispatch/subscribe/dispose
const pubSub = groupByAction({
onProgress: createPubSub<number>(),
onComplete: createPubSub<void>(),
})
const loader = createLoader({
...pubSub.dispatch,
// ...
})
Notice
This library is open source software released under the MIT license. See the LICENSE file for more information. This code is provided as-is, without any warranty or guarantee of any kind. Use at your own risk. I cannot be held responsible for any issues or damages that may arise from the use of this code. However, I have done my best to ensure that it is well-written and thoroughly tested, and I am always open to feedback and suggestions for improvement. Thank you for your understanding. I hope you enjoy using it and find it useful in your projects. If you have any questions or feedback, please don't hesitate to reach out.