function combineReducers(reducers) {
  return (state = {}, action) => {
    return Object.keys(reducers).reduce((nextState, key) => {
      nextState[key] = reducers[key](
        // eslint-disable-line no-param-reassign
        state[key],
        action
      )
      return nextState
    }, {})
  }
}
Combine reducers utility (abreveated version of redux's combineReducer).
Turns an object whose values are different reducer functions, into a single
reducer function.
@param {object} reducers An object whose values correspond to different
reducer functions that need to be combined into one.
@returns {Function} A reducer function that invokes every reducer inside the
passed object, and builds a state object with the same shape.
@private