This middleware logs store state changes to the console. It is useful for debugging and tracking state changes over time.
import { createStore, type Store, consoleLogMiddleware } from 'astand'; interface CounterState { count: number; } export interface CounterStore extends Store<CounterState> { increment: () => void; decrement: () => void; } const initialState: CounterState = { count: 0 }; const options = { middleware: [consoleLogMiddleware]; }; const baseCounterStore = createStore<CounterState>(initialState, options); export const counterStore: CounterStore = { ...baseCounterStore, increment: () => { baseCounterStore.setState((prev) => ({ count: prev.count + 1 })); }, decrement: () => { baseCounterStore.setState((prev) => ({ count: prev.count - 1 })); } };
Actions: