Skip to content

Instantly share code, notes, and snippets.

@mozkoq
Created April 6, 2017 00:19
Show Gist options
  • Save mozkoq/3926d967470832b6b0776e2bcf244faa to your computer and use it in GitHub Desktop.
Save mozkoq/3926d967470832b6b0776e2bcf244faa to your computer and use it in GitHub Desktop.
My create store
const createStore = (reducer, initialState) => {
let state = initialState
let listeners = []
const getState = () => state
const dispatch = action => {
state = reducer(state, action)
listeners.forEach(listener => listener())
}
const subscribe = subscriber => {
listeners = append(subscriber, listeners)
return () =>
listeners = listeners.filter(listener => listener != subscriber)
}
return {
getState,
dispatch,
subscribe,
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment