@modif93/sv-stored
v0.1.0
Published
Zustand-style middleware composition for Svelte stores.
Maintainers
Readme
@modif93/sv-stored
Zustand-style middleware composition for Svelte stores.
import { createStored, logger, persist } from '@modif93/sv-stored';
type Counter = {
count: number;
increment: () => void;
reset: () => void;
};
export const counter = createStored<Counter>(
(set) => ({
count: 0,
increment: () => set((state) => ({ count: state.count + 1 }), false, 'increment'),
reset: () => set({ count: 0 }, false, 'reset')
}),
{
middlewares: [persist({ name: 'counter' }), logger('counter')]
}
);
export const count = counter.select((state) => state.count);createStored returns a normal Svelte writable store plus helpers:
subscribe,set,update— Svelte store contractget()— read current state synchronouslysetState(partial, replace?, action?)— shallow-merge partial object updatesselect(selector, equality?)— readable selector storereadonly()— read-only facade
