mirror of
https://github.com/Kong/insomnia
synced 2024-11-08 23:00:30 +00:00
28378dc3fd
* use babel-preset-typescript * run type-check in release process
29 lines
933 B
TypeScript
29 lines
933 B
TypeScript
/// <reference types="webpack-env" />
|
||
import { applyMiddleware, compose, createStore, Store } from 'redux';
|
||
import thunkMiddleware from 'redux-thunk';
|
||
|
||
import { reducer } from './modules';
|
||
|
||
// TODO there's a circular dependency between this file and /redux/create
|
||
export default function() {
|
||
const composeEnhancers =
|
||
typeof window === 'object' && window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__
|
||
? window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__({
|
||
// Specify extension’s options like name, actionsBlacklist, actionsCreators, serialize...
|
||
})
|
||
: compose;
|
||
const middleware = [thunkMiddleware];
|
||
const enhancer = composeEnhancers(
|
||
applyMiddleware(...middleware), // other store enhancers if any
|
||
);
|
||
const store = createStore(reducer, enhancer);
|
||
|
||
if (__DEV__ && module.hot) {
|
||
module.hot.accept('./modules/index', () => {
|
||
store.replaceReducer(reducer);
|
||
});
|
||
}
|
||
|
||
return store as Store;
|
||
}
|