Skip to content

Commit

Permalink
Disable redux devtools by default to save memory
Browse files Browse the repository at this point in the history
  • Loading branch information
AlexNisnevich committed Nov 24, 2017
1 parent 873f8dd commit dbebc49
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 20 deletions.
1 change: 1 addition & 0 deletions src/common/constants.js
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ export const KEEP_DECKS_UNSHUFFLED = false;
export const DISABLE_TURN_TIMER = false;
export const DISABLE_AI = false;
export const DISPLAY_HEX_IDS = false;
export const ENABLE_REDUX_TIME_TRAVEL = false;

export const PARSER_URL = 'http://parser.wordbots.io'; // 'http://localhost:8080';
export const PARSE_DEBOUNCE_MS = 500;
Expand Down
38 changes: 18 additions & 20 deletions src/common/store/configureStore.js
Original file line number Diff line number Diff line change
@@ -1,51 +1,49 @@
import { createStore, applyMiddleware, compose } from 'redux';
import multi from 'redux-multi';
import thunk from 'redux-thunk';
import { compact } from 'lodash';

import { ALWAYS_ENABLE_DEV_TOOLS } from '../constants';
import { ALWAYS_ENABLE_DEV_TOOLS, ENABLE_REDUX_TIME_TRAVEL } from '../constants';
import promiseMiddleware from '../middleware/promiseMiddleware';
import createSocketMiddleware from '../middleware/socketMiddleware';
import rootReducer from '../reducers';
import * as socketActions from '../actions/socket';

const DEV_TOOLS_ENABLED = ALWAYS_ENABLE_DEV_TOOLS || !['production', 'test'].includes(process.env.NODE_ENV);

const middlewareBuilder = () => {
const universalMiddleware = [thunk, promiseMiddleware, multi];

let middleware = {};
let allComposeElements = [];

if (process.browser) {
const socketMiddleware = createSocketMiddleware({
excludedActions: [socketActions.CONNECTING, socketActions.CONNECTED, socketActions.DISCONNECTED]
});

if ((process.env.NODE_ENV === 'production' || process.env.NODE_ENV === 'test') && !ALWAYS_ENABLE_DEV_TOOLS) {
middleware = applyMiddleware(...universalMiddleware, socketMiddleware);
allComposeElements = [middleware];
} else {
if (DEV_TOOLS_ENABLED) {
const createLogger = require('redux-logger').createLogger;
const DevTools = require('../containers/DevTools').default;

middleware = applyMiddleware(...universalMiddleware, socketMiddleware, createLogger());
allComposeElements = [
middleware,
DevTools.instrument()
];

// react-addons-perf unsupported as of React 16.0.0.
// const Perf = require('react-addons-perf');
// window.Perf = Perf;

return [
applyMiddleware(...universalMiddleware, socketMiddleware, createLogger()),
ENABLE_REDUX_TIME_TRAVEL && DevTools.instrument()
];
} else {
return [
applyMiddleware(...universalMiddleware, socketMiddleware)
];
}
} else {
middleware = applyMiddleware(...universalMiddleware);
allComposeElements = [middleware];
return [
applyMiddleware(...universalMiddleware)
];
}

return allComposeElements;

};

const finalCreateStore = compose(...middlewareBuilder())(createStore);
const finalCreateStore = compose(...compact(middlewareBuilder()))(createStore);

export default function configureStore(initialState) {
const store = finalCreateStore(rootReducer, initialState);
Expand Down

0 comments on commit dbebc49

Please sign in to comment.