All files / src/store index.js

100% Statements 21/21
83.33% Branches 10/12
100% Functions 3/3
100% Lines 10/10
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 296x                     12x 4x 4x 4x       4x       8x 8x   4x   6x  
import merge from 'lodash.merge'
import {combineReducers} from 'redux'
import {routerReducer as routing} from 'react-router-redux'
 
let configureStore = null
if (process.env.NODE_ENV === 'production' || process.env.NODE_ENV === 'test') {
  configureStore = require('./store.production')
} else {
  configureStore = require('./store.development')
}
 
export default function createStore (reducers) {
  const configuredState = safeParse(process.env.STORE)
  const locallyStoredState = safeParse(window.localStorage ? window.localStorage.getItem('state') : {})
  const store = configureStore(
    combineReducers({routing, ...reducers}),
    merge(configuredState, locallyStoredState)
  )
  return store
}
 
function safeParse (str) {
  try {
    return JSON.parse(str) || {}
  } catch (e) {
    return {}
  }
}