Immer
import { createStore, immer } from '@sinuxjs/core';
const store = createStore(
{ items: [{ id: 1, text: 'Hello', done: false }] },
{
toggleItem: (state, id: number) => {
// Mutate the draft directly -- immer makes it immutable
const item = state.items.find(i => i.id === id);
if (item) item.done = !item.done;
},
},
[immer()]
);
- All signal handlers receive an Immer draft
- Mutate directly -- no spread operators needed
- Backward compatible: returning an object still works
immeris a peer dependency -- install it separately:npm install immer