🌐 Reactive state management written in TypeScript with a minimal API and full power of RxJS
Reactive state management written in TypeScript with a minimal API and full power of RxJS!
This is a simple store that can be used to manage state. After instantiating the store, you can either set, update or get states values, with a subscribtion system to keep track of the store changes.
npm install rxeta
or
yarn add rxeta
import { Store } from 'rxeta'
interface State {
counter: number
}
const initialState: State {
counter: 0
}
const store = new Store(initialState)
// subscribe to any state change
store.subscribe((state) => console.log('state change', state))
// subscribe to a specific key change
store
.select('counter')
.subscribe((value) => console.log('counter value change', value))
// set to a new value
store.set('foo', 100)
// update the value using an updater function that takes the current value as parameter and returns the new value
store.update('foo', (value) => value + 1)
Pull requests are welcome.
To run the production build use the npm build script:
npm run build
Before the build is actually made the tests will be executed, the dist folder will be removed and then the build will be made.
This library contains all tests in the ./src/Store.test.ts.
The tests are writen using mocha and chai.
To run the tests just use the npm test script:
npm run test
Please make sure to update tests as appropriate.
ISC License
Copyright (c) barthofu