Skip to content

Instantly share code, notes, and snippets.

@treyhuffine
Last active February 25, 2018 19:17
Show Gist options
  • Save treyhuffine/bbf52e788e109910d5d41a64c79540cb to your computer and use it in GitHub Desktop.
Save treyhuffine/bbf52e788e109910d5d41a64c79540cb to your computer and use it in GitHub Desktop.
The core Redux createStore library
const createStore = (reducer, initialState) => {
const store = {};
store.state = initialState;
store.listeners = [];
store.getState = () => store.state;
store.subscribe = (listener) => {
store.listeners.push(listener);
};
store.dispatch = (action) => {
store.state = reducer(store.state, action);
store.listeners.forEach(listener => listener());
};
return store;
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment