Skip to content

skulptur/lightcast

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Motivation

The Pub/Sub pattern is needed every now and then and this library is a no dependency, tiny and typesafe solution.

Get started

Install

npm install --save lightcast
# or
yarn add lightcast

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,
  // ...
})

About

Tiny Pub/Sub library written in Typescript

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published