11 lines
347 B
JavaScript
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); },
|
|
};
|
|
}
|