Passed
Pull Request — master (#132)
by Huu-Phat
04:05
created

configureStore.js ➔ errorHandler   A

Complexity

Conditions 1

Size

Total Lines 3
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
eloc 2
dl 0
loc 3
c 0
b 0
f 0
rs 10
cc 1
1
import { createStore, applyMiddleware } from 'redux'
2
import { persistStore, persistReducer } from 'redux-persist'
3
import createSagaMiddleware from 'redux-saga'
4
import storage from 'redux-persist/lib/storage'
5
import autoMergeLevel2 from 'redux-persist/lib/stateReconciler/autoMergeLevel2'
6
import reduxCatch from 'redux-catch'
7
import rootReducer from 'core/state/rootReducer'
8
import rootSagas from 'core/state/rootSagas'
9
10
import { assignError } from 'core/state/app/actions'
11
12
const persistConfig = {
13
  key: 'root',
14
  storage,
15
  stateReconciler: autoMergeLevel2,
16
  whitelist: ['drawer']
17
}
18
const sagaMiddleware = createSagaMiddleware()
19
const persistedReducer = persistReducer(persistConfig, rootReducer)
20
21
function errorHandler(error, _1, _2, dispatch) {
22
  dispatch(assignError(error))
23
}
24
25
const configureStore = initState => {
26
  const store = createStore(
27
    persistedReducer,
28
    initState,
29
    applyMiddleware(sagaMiddleware, reduxCatch(errorHandler))
30
  )
31
  sagaMiddleware.run(rootSagas)
32
  const persistor = persistStore(store)
33
  return { store, persistor }
34
}
35
36
export default configureStore
37