Skip to content

Commit cd01a4a

Browse files
committed
refactor: remove redux-invariant & redux-logging from production (microsoft#680)
* these middlewares are intend to be use only during development. * also move a few packages from devDependencies to dependencies
1 parent c06405c commit cd01a4a

File tree

4 files changed

+46
-42
lines changed

4 files changed

+46
-42
lines changed

.codecov.yml

+1
Original file line numberDiff line numberDiff line change
@@ -18,3 +18,4 @@ coverage:
1818
ignore:
1919
- "src/electron/start.js"
2020
- "src/providers/export/tensorFlowRecords/tensorFlowRecordsProtoBuf_pb.js"
21+
- "src/redux/store/store.ts"

package-lock.json

+16-30
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

+4-4
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,9 @@
2828
"rc-menu": "^7.4.21",
2929
"react": "^16.7.0",
3030
"react-dom": "^16.7.0",
31+
"react-jsonschema-form": "^1.3.0",
3132
"react-localization": "^1.0.13",
33+
"react-modal": "^3.8.1",
3234
"react-redux": "^5.1.1",
3335
"react-router-dom": "^4.3.1",
3436
"react-scripts": "2.1.1",
@@ -38,8 +40,6 @@
3840
"react-vis": "^1.11.6",
3941
"reactstrap": "^6.5.0",
4042
"redux": "^4.0.1",
41-
"redux-immutable-state-invariant": "^2.1.0",
42-
"redux-logger": "^3.0.6",
4343
"redux-thunk": "^2.3.0",
4444
"rimraf": "^2.6.2",
4545
"shortid": "^2.2.14",
@@ -106,8 +106,8 @@
106106
"jquery": "^3.3.1",
107107
"node-sass": "^4.10.0",
108108
"popper.js": "^1.14.6",
109-
"react-jsonschema-form": "^1.0.6",
110-
"react-modal": "^3.6.1",
109+
"redux-immutable-state-invariant": "^2.1.0",
110+
"redux-logger": "^3.0.6",
111111
"redux-mock-store": "^1.5.3",
112112
"ts-loader": "^5.3.0",
113113
"tslint": "^5.11.0",

src/redux/store/store.ts

+25-8
Original file line numberDiff line numberDiff line change
@@ -1,27 +1,44 @@
11
import { applyMiddleware, createStore, Store } from "redux";
2-
import reduxImmutableStateInvarient from "redux-immutable-state-invariant";
3-
import { createLogger } from "redux-logger";
42
import thunk from "redux-thunk";
53
import rootReducer from "../reducers";
64
import { IApplicationState } from "../../models/applicationState";
7-
import { createLocalStorage, mergeInitialState } from "../middleware/localStorage";
5+
import { mergeInitialState } from "../middleware/localStorage";
6+
import { Env } from "../../common/environment";
87

98
/**
10-
* Creates initial redux store from initial aplication state
9+
* Creates initial redux store from initial application state
1110
* @param initialState - Initial state of application
1211
* @param useLocalStorage - Whether or not to use localStorage middleware
1312
*/
1413
export default function createReduxStore(
1514
initialState?: IApplicationState,
1615
useLocalStorage: boolean = false): Store {
1716
const paths: string[] = ["appSettings", "connections", "recentProjects"];
18-
const middlewares = useLocalStorage
19-
? applyMiddleware(thunk, reduxImmutableStateInvarient(), createLogger(), createLocalStorage({ paths }))
20-
: applyMiddleware(thunk, reduxImmutableStateInvarient(), createLogger());
17+
18+
let middlewares = [thunk];
19+
20+
if (useLocalStorage) {
21+
const localStorage = require("../middleware/localStorage");
22+
const storage = localStorage.createLocalStorage({paths});
23+
middlewares = [
24+
...middlewares,
25+
storage,
26+
];
27+
}
28+
29+
if (Env.get() === "development") {
30+
const logger = require("redux-logger");
31+
const reduxImmutableStateInvariant = require("redux-immutable-state-invariant");
32+
middlewares = [
33+
...middlewares,
34+
reduxImmutableStateInvariant.default(),
35+
logger.createLogger(),
36+
];
37+
}
2138

2239
return createStore(
2340
rootReducer,
2441
useLocalStorage ? mergeInitialState(initialState, paths) : initialState,
25-
middlewares,
42+
applyMiddleware(...middlewares),
2643
);
2744
}

0 commit comments

Comments
 (0)