Files

11 lines
347 B
JavaScript

export function createStore(initial) {
let state = { ...initial };
const subscribers = new Set();
return {
get() { return { ...state }; },
set(updates) { state = { ...state, ...updates }; subscribers.forEach(fn => fn(state)); },
subscribe(fn) { subscribers.add(fn); return () => subscribers.delete(fn); },
};
}