UNPKG

6.64 kBSource Map (JSON)View Raw
1{"version":3,"sources":["../src/redux/create.js"],"names":["inject","attachReducers","getStore","createStore","store","createReducers","asyncReducers","router","combine","reducers","persistConfig","forEach","name","reducer","__esModule","default","replaceReducer","getNoopReducers","data","reduce","prev","next","state","history","helpers","middleware","__CLIENT__","__DEVELOPMENT__","logger","require","createLogger","collapsed","push","enhancers","__DEVTOOLS__","persistState","DevTools","Array","prototype","apply","window","devToolsExtension","instrument","location","href","match","finalCreateStore","noopReducers","partial","persistoid","subscribe","update","getState","dispatch","type"],"mappings":"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","file":"create.js","sourcesContent":["import _ from 'lodash';\r\nimport { createStore as _createStore, applyMiddleware, compose, combineReducers } from 'redux';\r\nimport { routerMiddleware, routerReducer } from 'react-router-redux';\r\nimport { createPersistoid, persistCombineReducers, REGISTER } from 'redux-persist';\r\nimport clientMiddleware from './middleware/clientMiddleware';\r\nvar store;\r\nfunction createReducers(asyncReducers) {\r\n return {\r\n router: routerReducer,\r\n ...asyncReducers\r\n };\r\n}\r\nfunction combine(reducers, persistConfig) {\r\n if (persistConfig) {\r\n return persistCombineReducers(persistConfig, reducers);\r\n }\r\n return combineReducers(reducers);\r\n}\r\n\r\nexport function inject(store, reducers, persistConfig) {\r\n Object.entries(reducers).forEach(([name, reducer]) => {\r\n if (store.asyncReducers[name]) return;\r\n store.asyncReducers[name] = reducer.__esModule ? reducer.default : reducer;\r\n });\r\n\r\n store.replaceReducer(combine(createReducers(store.asyncReducers), persistConfig));\r\n}\r\nexport function attachReducers(reducers) {\r\n \r\n}\r\nexport function getStore () {\r\n return store;\r\n}\r\n\r\nfunction getNoopReducers(reducers, data) {\r\n if (!data) return {};\r\n return Object.keys(data).reduce(\r\n (prev, next) => (reducers[next] ? prev : { ...prev, [next]: (state = {}) => state }),\r\n {}\r\n );\r\n}\r\n\r\nexport default function createStore({ history, data, helpers, persistConfig, reducer}) {\r\n const middleware = [clientMiddleware(helpers), routerMiddleware(history)];\r\n\r\n if (__CLIENT__ && __DEVELOPMENT__) {\r\n const logger = require('redux-logger').createLogger({\r\n collapsed: true\r\n });\r\n middleware.push(logger.__esModule ? logger.default : logger);\r\n }\r\n\r\n const enhancers = [applyMiddleware(...middleware)];\r\n\r\n if (__CLIENT__ && __DEVTOOLS__) {\r\n const { persistState } = require('redux-devtools');\r\n const DevTools = require('../helpers/DevTools/DevTools');\r\n\r\n Array.prototype.push.apply(enhancers, [\r\n window.devToolsExtension ? window.devToolsExtension() : DevTools.instrument(),\r\n persistState(window.location.href.match(/[?&]debug_session=([^&]+)\\b/))\r\n ]);\r\n }\r\n\r\n const finalCreateStore = compose(...enhancers)(_createStore);\r\n const reducers = createReducers();\r\n \r\n const noopReducers = getNoopReducers(reducers, data);\r\n const asyncReducers = { ...noopReducers, ...reducers,...reducer };\r\n store = finalCreateStore(combine(asyncReducers, persistConfig), data);\r\n store.asyncReducers = asyncReducers;\r\n store.inject = _.partial(inject, store, _, persistConfig);\r\n\r\n if (persistConfig) {\r\n const persistoid = createPersistoid(persistConfig);\r\n store.subscribe(() => {\r\n persistoid.update(store.getState());\r\n });\r\n store.dispatch({ type: REGISTER });\r\n }\r\n\r\n // if (__DEVELOPMENT__ && module.hot) {\r\n // module.hot.accept('./reducer', () => {\r\n // let reducer = require('./reducer');\r\n // reducer = combine((reducer.__esModule ? reducer.default : reducer)(store.asyncReducers), persistConfig);\r\n // store.replaceReducer(reducer);\r\n // });\r\n // }\r\n\r\n return store;\r\n}\r\n"]}
\No newline at end of file