Flexible and simple observables with multiple implementations.
Supports CJS and ESM import.
npm i observavir
Full docs: https://electrovir.github.io/observavir
All observables have a .value property for accessing the current value and a .listen() method for attaching callbacks to value updates.
Several different observable classes are exported from this package:
Observable: Bare bones basic observable. Can be listened to and its value can be updated with .setValue().AsyncObservable: If given a Promise, it will update value (and listeners) when the Promise is set and then resolved or rejected so you can track and even await the Promises. Also includes a lastResolvedValue for anything that does't care about the Promise lifecycle.CallbackObservable: A sub-class of AsyncObservable that accepts a callback for triggering updates of value.IntervalObservable: A sub-class of CallbackObservable that will automatically update itself at a give internal rate.