joyent-portal/frontend/src/state/store.js

30 lines
719 B
JavaScript

const createLogger = require('redux-logger');
const enableBatching = require('redux-batched-actions').enableBatching;
const promiseMiddleware = require('redux-promise-middleware').default;
const redux = require('redux');
const thunk = require('redux-thunk').default;
const createReducer = require('@state/reducers');
const {
createStore,
compose,
applyMiddleware
} = redux;
const composeEnhancers = window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ || compose;
module.exports = (state = Object.freeze({})) => {
return createStore(
enableBatching(createReducer()),
state,
composeEnhancers(
applyMiddleware(
createLogger(),
promiseMiddleware(),
thunk
)
)
);
};