> For the complete documentation index, see [llms.txt](https://vytautaspranskunas.gitbook.io/react-state-rxjs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://vytautaspranskunas.gitbook.io/react-state-rxjs/core-concepts/store/operators.md).

# Operators

Store has multiple operators:

* **Select** - select peace of the state by provided path. Returns new observable. `this.store.selecte(['todos'])`
* **Initialize** - initialize store with with new state. Returns observable holding initialized state. `this.store.initialize(['todos', 'filter'], {newItem: false, usedItem: true})`
* **Clear** - resets whole state to initial state. `this.store.clear()`
* **Reset** - resets selected peace of state to its initial state: `this.store.select(['todos']).reset()`&#x20;
* **Map** - transforms and returns state value.
* **Update** - updates selected state.&#x20;

```typescript
this.store.update((state: Map<any, any>) => {
        // For ImmutableJs
        state.set('itemToStore', 'changed value');
        // For immer
        state.itemToStore = 'changed value'
});
```

According to immutableJS there is second parameter that can be passed to update function `wrapToWithMutations` It is used when you want to do multiple updates before triggering mutation. <https://stackoverflow.com/questions/28510753/when-should-i-use-withmutations-on-a-map-in-immutable-js>
