11import { History } from "history" ;
22const appConfig = require ( "../../../config/main" ) ;
3+ const localConfig = require ( "../../../config/main.local" ) ;
4+ import * as createRavenMiddleware from "raven-for-redux" ;
5+ import * as Raven from "raven-js" ;
36import { routerMiddleware } from "react-router-redux" ;
47import { applyMiddleware , compose , createStore } from "redux" ;
58import { createLogger } from "redux-logger" ;
@@ -14,19 +17,25 @@ interface IExtendedStore extends Redux.Store<IStore> {
1417
1518export function configureStore ( history : History , initialState ?: IStore ) : IExtendedStore {
1619
20+ const mergedConfig = { ...appConfig , ...localConfig } ;
1721 const sagaMiddleware = createSagaMiddleware ( ) ;
1822 const middlewares : Redux . Middleware [ ] = [
1923 routerMiddleware ( history ) ,
2024 sagaMiddleware
2125 ] ;
2226
2327 /** Add Only Dev. Middlewares */
24- if ( appConfig . env !== "production" && process . env . BROWSER ) {
28+ if ( mergedConfig . env !== "production" && process . env . BROWSER ) {
2529 const logger = createLogger ( ) ;
2630 middlewares . push ( logger ) ;
2731 }
2832
29- const composeEnhancers = ( appConfig . env !== "production" &&
33+ if ( mergedConfig . sentry && process . env . BROWSER ) {
34+ Raven . config ( mergedConfig . sentry . dsn ) . setRelease ( mergedConfig . sentry . release ) . install ( ) ;
35+ middlewares . unshift ( createRavenMiddleware ( Raven ) ) ;
36+ }
37+
38+ const composeEnhancers = ( mergedConfig . env !== "production" &&
3039 typeof window === "object" &&
3140 ( typeof window . __REDUX_DEVTOOLS_EXTENSION_COMPOSE__ === "function" ) &&
3241 window . __REDUX_DEVTOOLS_EXTENSION_COMPOSE__ ( { shouldHotReload : false } ) ) || compose ;
@@ -35,7 +44,7 @@ export function configureStore(history: History, initialState?: IStore): IExtend
3544 applyMiddleware ( ...middlewares )
3645 ) ) ;
3746
38- if ( appConfig . env === "development" && ( module as any ) . hot ) {
47+ if ( mergedConfig . env === "development" && ( module as any ) . hot ) {
3948 ( module as any ) . hot . accept ( "./rootReducer" , ( ) => {
4049 store . replaceReducer ( ( require ( "./rootReducer" ) . default ) ) ;
4150 } ) ;
0 commit comments