Tiny data broadcaster with 0 dependencies
The current size of brcast/dist/brcast.umd.min.js
is:
It's like a data store you can subscribe to, with a setter to pump data in. For browsers and node.
This project uses node and npm. Go check them out if you don't have them locally installed.
$ npm install --save brcast
Then with a module bundler like rollup or webpack, use as you would anything else:
// using ES6 modules
import brcast from 'brcast'
// using CommonJS modules
var brcast = require('brcast')
The UMD build is also available on unpkg:
<script src="https://unpkg.com/brcast/dist/brcast.umd.js"></script>
You can find the library on window.brcast
.
import brcast from 'brcast'
let broadcast = brcast()
// subscribe
const subscriptionId = broadcast.subscribe(state => console.log(state))
// setState sets the state and invoke all subscription callbacks passing in the state
broadcast.setState(1)
// setState returns the current state
broadcast.getState()
// unsubscribe to unbind the handler
broadcast.unsubscribe(subscriptionId)
Creates a broadcast
object.
1 - [initialState
] (any): The initial state.
(broadcast
): An object that holds the state.
Store the new state.
1 - state
(any): The new state.
Nothing.
Get the stored state.
(Any
): The stored state.
Subscribe to state changes.
1 - handler
(Function): The callback to be invoked any time the state changes.
(Number
): The subscription id to be used to unsubscribe.
Unsubscribe the change listener.
1 - subscriptionId
(Number): The subscription id returned by subscribing.
Nothing.
$ npm run test