import { reducer } from './reducers'; //import your reducer let state; const getState = () => state; const listeners = []; const dispatch = action => { state = reducer(action, state); listeners.forEach(listener => listener()) }; const subscribe = (listener) => { listeners.push(listener) return () => { listeners.filter(lis => lis !== listener) } }; dispatch({}); const reducers = () => reducer; reducers(); //getting the reducers function Async(cb, request) { request(cb); } //helps to do async things const thunk = function(cb, request, delay) { if (delay) { return setTimeout(() => { Async(cb, request); }, delay); } Async(cb, request); }; export { getState, dispatch, thunk,subscribe};