rx-observable-state
v1.0.2
Published
[](https://codecov.io/gh/HuiiBuh/rx-observable-state) [ dispatchers
- Pass your own (optional) selectors
- Autocomplete/Error everything (even strings)
Example
For a more advanced example take a look at the example.ts.
interface Todo {
id: TodoId;
done: boolean;
contents: any;
shared: any;
}
interface TodoState {
selectedTodo: Todo | null;
todo: Record<TodoId, Todo>;
username: string | null;
allDone: boolean;
}
const store = new Store<TodoState>(
// The initial state
{ todo: {}, selectedTodo: null, username: null, allDone: false },
);
// Logs the username every time the username changes
store.on('username').subscribe(console.log)
// Change the username
store.patch('huiibuh', 'username');API
Properties
| name | value | |--------|---------------| | state | S | | state$ | Observable<S> |
Methods
? stands for values which are infered. These values are typesave!
| name | parameters | returns | description |
|---------------|-------------------------------------------------------------------------------------------------------------------------|----------------|-----------------------------------------------------------------------------------|
| setState | state S | void | Completely replace the current state |
| patch | value ?, ...path ? The accessor path to the property you want to update | void | Update the value at a specific position of the state |
| on | ...path ? The accessor path to the property you want to subscribe to changes to | Observable | Select parts of the state with the name of a selector. Will update |
| selectCurrent | selector ? The name of the selector | ? | Get the current value of a selector |
