catalyst-core 0.0.1-beta.2 → 0.0.1-beta.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (45) hide show
  1. package/README.md +26 -13
  2. package/bin/catalyst.js +2 -3
  3. package/config.json +0 -1
  4. package/{LICENSE → license} +2 -1
  5. package/{logger/index.js → logger.js} +10 -10
  6. package/package.json +17 -19
  7. package/packages/create-framework-app/templates/redux-js/node_modules/catalyst/src/router.js +1 -0
  8. package/router/ClientRouter.js +10 -6
  9. package/router/ServerRouter.js +2 -11
  10. package/scripts/build.js +10 -4
  11. package/scripts/checkVersion.js +5 -0
  12. package/scripts/loadEnvironmentVariables.js +8 -21
  13. package/scripts/loadScriptsBeforeServerStarts.js +12 -20
  14. package/scripts/serve.js +11 -4
  15. package/scripts/start.js +2 -4
  16. package/scripts/validator.js +40 -11
  17. package/server/expressServer.js +50 -0
  18. package/server/renderer/document/Body.js +17 -18
  19. package/server/renderer/document/Head.js +6 -7
  20. package/server/renderer/document/index.js +2 -0
  21. package/server/renderer/extract.js +25 -24
  22. package/server/renderer/handler.js +212 -188
  23. package/server/renderer/index.js +6 -7
  24. package/server/renderer/render.js +21 -19
  25. package/server/startServer.js +65 -0
  26. package/server/utils/userAgentUtil.js +55 -0
  27. package/server/utils/validator.js +40 -10
  28. package/webpack/babel-plugins/remove-client.plugin.js +1 -1
  29. package/webpack/babel-plugins/remove-ssr.plugin.js +1 -1
  30. package/webpack/babel.config.client.js +2 -2
  31. package/webpack/base.babel.js +29 -36
  32. package/webpack/development.client.babel.js +11 -8
  33. package/webpack/production.client.babel.js +1 -2
  34. package/webpack/production.ssr.babel.js +3 -3
  35. package/webpack/scssParams.js +19 -15
  36. package/.prettierignore +0 -2
  37. package/.prettierrc.json +0 -7
  38. package/checkVersion.js +0 -3
  39. package/config/config.js +0 -24
  40. package/packages/create-framework-app/node_modules/.package-lock.json +0 -249
  41. package/reducer/index.js +0 -88
  42. package/reducer/loadableConfigReducer.js +0 -19
  43. package/store/index.dev.js +0 -73
  44. package/store/index.js +0 -25
  45. package/store/index.prod.js +0 -66
@@ -1,249 +0,0 @@
1
- {
2
- "lockfileVersion": 3,
3
- "requires": true,
4
- "packages": {
5
- "../..": {
6
- "version": "0.0.1",
7
- "license": "ISC",
8
- "dependencies": {
9
- "@babel/cli": "^7.23.0",
10
- "@babel/core": "^7.23.2",
11
- "@babel/node": "^7.22.19",
12
- "@babel/plugin-proposal-object-rest-spread": "^7.20.7",
13
- "@babel/plugin-transform-react-jsx": "^7.22.15",
14
- "@babel/preset-env": "^7.23.2",
15
- "@babel/preset-react": "^7.22.15",
16
- "@babel/register": "^7.22.15",
17
- "@loadable/babel-plugin": "^5.16.1",
18
- "@loadable/component": "^5.15.3",
19
- "@loadable/server": "^5.16.1",
20
- "@loadable/webpack-plugin": "^5.15.2",
21
- "@pmmmwh/react-refresh-webpack-plugin": "^0.5.11",
22
- "@svgr/webpack": "^8.1.0",
23
- "@tata1mg/router": "^0.0.1-alpha.13",
24
- "acorn-loose": "^8.4.0",
25
- "aws-sdk": "^2.1490.0",
26
- "axios": "^0.19.2",
27
- "babel-loader": "^9.1.3",
28
- "babel-plugin-dynamic-import-node": "^2.3.3",
29
- "babel-plugin-syntax-dynamic-import": "^6.18.0",
30
- "babel-plugin-transform-class-properties": "^6.24.1",
31
- "babel-plugin-transform-es2015-modules-commonjs": "^6.26.2",
32
- "babel-plugin-transform-export-extensions": "^6.22.0",
33
- "babel-plugin-transform-react-remove-prop-types": "^0.4.24",
34
- "body-parser": "^1.20.2",
35
- "compression": "^1.7.4",
36
- "cookie-parser": "^1.4.6",
37
- "css-hot-loader": "^1.4.4",
38
- "css-loader": "^6.8.1",
39
- "css-modules-require-hook": "^4.2.3",
40
- "dotenv-webpack": "^8.0.1",
41
- "esm-module-alias": "^2.0.3",
42
- "express": "^4.18.2",
43
- "express-static-gzip": "^2.1.7",
44
- "file-loader": "^6.2.0",
45
- "helmet": "^7.0.0",
46
- "html-loader": "^4.2.0",
47
- "img-loader": "^4.0.0",
48
- "isomorphic-dompurify": "^1.13.0",
49
- "lodash.template": "^4.5.0",
50
- "mini-css-extract-plugin": "^2.7.6",
51
- "module-alias": "^2.2.3",
52
- "node-dev": "^7.4.3",
53
- "postcss-loader": "^7.3.3",
54
- "react": "^18.2.0",
55
- "react-dom": "^18.2.0",
56
- "react-redux": "^8.1.3",
57
- "react-refresh": "^0.14.0",
58
- "react-router-dom": "^6.16.0",
59
- "redux": "^4.2.1",
60
- "redux-logger": "^3.0.6",
61
- "redux-thunk": "^2.4.2",
62
- "sass": "^1.69.5",
63
- "sass-loader": "^13.3.2",
64
- "sass-resources-loader": "^2.2.5",
65
- "ua-parser-js": "^1.0.37",
66
- "url-loader": "^4.1.1",
67
- "webpack": "^5.88.2",
68
- "webpack-bundle-analyzer": "^4.9.1",
69
- "webpack-cli": "^5.1.4",
70
- "webpack-dev-server": "^4.15.1",
71
- "webpack-merge": "^5.9.0",
72
- "webpack-node-externals": "^3.0.0",
73
- "winston": "^3.11.0",
74
- "winston-daily-rotate-file": "^5.0.0"
75
- },
76
- "bin": {
77
- "catalyst": "bin/catalyst.js",
78
- "framework": "bin/framework.js"
79
- },
80
- "devDependencies": {
81
- "@babel/cli": "^7.23.0",
82
- "@babel/core": "^7.23.2",
83
- "@babel/node": "^7.22.19",
84
- "@babel/plugin-proposal-object-rest-spread": "^7.20.7",
85
- "@babel/plugin-transform-react-jsx": "^7.22.15",
86
- "@babel/preset-env": "^7.23.2",
87
- "@babel/preset-react": "^7.22.15",
88
- "@babel/register": "^7.22.15",
89
- "@pmmmwh/react-refresh-webpack-plugin": "^0.5.11",
90
- "babel-loader": "^9.1.3",
91
- "babel-plugin-dynamic-import-node": "^2.3.3",
92
- "babel-plugin-syntax-dynamic-import": "^6.18.0",
93
- "babel-plugin-transform-class-properties": "^6.24.1",
94
- "babel-plugin-transform-es2015-modules-commonjs": "^6.26.2",
95
- "babel-plugin-transform-export-extensions": "^6.22.0",
96
- "body-parser": "^1.20.2",
97
- "compression": "^1.7.4",
98
- "cookie-parser": "^1.4.6",
99
- "css-loader": "^6.8.1",
100
- "css-modules-require-hook": "^4.2.3",
101
- "dotenv-webpack": "^8.0.1",
102
- "express": "^4.18.2",
103
- "express-static-gzip": "^2.1.7",
104
- "helmet": "^7.0.0",
105
- "mini-css-extract-plugin": "^2.7.6",
106
- "node-dev": "^7.4.3",
107
- "react-refresh": "^0.14.0",
108
- "redux-logger": "^3.0.6",
109
- "webpack": "^5.88.2",
110
- "webpack-bundle-analyzer": "^4.9.1",
111
- "webpack-cli": "^5.1.4",
112
- "webpack-dev-server": "^4.15.1",
113
- "webpack-merge": "^5.9.0"
114
- },
115
- "peerDependencies": {
116
- "isomorphic-dompurify": "^1.9.0",
117
- "react": "^18.2.0",
118
- "react-dom": "^18.2.0",
119
- "react-helmet-async": "^1.3.0",
120
- "react-redux": "^8.0.4",
121
- "react-router-dom": "^6.22.0"
122
- }
123
- },
124
- "node_modules/ansi-regex": {
125
- "extraneous": true
126
- },
127
- "node_modules/catalyst": {
128
- "resolved": "../..",
129
- "link": true
130
- },
131
- "node_modules/chalk": {
132
- "extraneous": true
133
- },
134
- "node_modules/chownr": {
135
- "extraneous": true
136
- },
137
- "node_modules/cli-cursor": {
138
- "extraneous": true
139
- },
140
- "node_modules/cli-spinners": {
141
- "extraneous": true
142
- },
143
- "node_modules/commander": {
144
- "extraneous": true
145
- },
146
- "node_modules/data-uri-to-buffer": {
147
- "extraneous": true
148
- },
149
- "node_modules/emoji-regex": {
150
- "extraneous": true
151
- },
152
- "node_modules/fetch-blob": {
153
- "extraneous": true
154
- },
155
- "node_modules/formdata-polyfill": {
156
- "extraneous": true
157
- },
158
- "node_modules/fs": {
159
- "extraneous": true
160
- },
161
- "node_modules/fs-minipass": {
162
- "extraneous": true
163
- },
164
- "node_modules/fs-minipass/node_modules/minipass": {
165
- "extraneous": true
166
- },
167
- "node_modules/get-east-asian-width": {
168
- "extraneous": true
169
- },
170
- "node_modules/https": {
171
- "extraneous": true
172
- },
173
- "node_modules/is-interactive": {
174
- "extraneous": true
175
- },
176
- "node_modules/is-unicode-supported": {
177
- "extraneous": true
178
- },
179
- "node_modules/kleur": {
180
- "extraneous": true
181
- },
182
- "node_modules/log-symbols": {
183
- "extraneous": true
184
- },
185
- "node_modules/log-symbols/node_modules/is-unicode-supported": {
186
- "extraneous": true
187
- },
188
- "node_modules/mimic-fn": {
189
- "extraneous": true
190
- },
191
- "node_modules/minipass": {
192
- "extraneous": true
193
- },
194
- "node_modules/minizlib": {
195
- "extraneous": true
196
- },
197
- "node_modules/minizlib/node_modules/minipass": {
198
- "extraneous": true
199
- },
200
- "node_modules/mkdirp": {
201
- "extraneous": true
202
- },
203
- "node_modules/node-domexception": {
204
- "extraneous": true
205
- },
206
- "node_modules/node-fetch": {
207
- "extraneous": true
208
- },
209
- "node_modules/onetime": {
210
- "extraneous": true
211
- },
212
- "node_modules/ora": {
213
- "extraneous": true
214
- },
215
- "node_modules/picocolors": {
216
- "extraneous": true
217
- },
218
- "node_modules/prompts": {
219
- "extraneous": true
220
- },
221
- "node_modules/restore-cursor": {
222
- "extraneous": true
223
- },
224
- "node_modules/signal-exit": {
225
- "extraneous": true
226
- },
227
- "node_modules/sisteransi": {
228
- "extraneous": true
229
- },
230
- "node_modules/stdin-discarder": {
231
- "extraneous": true
232
- },
233
- "node_modules/string-width": {
234
- "extraneous": true
235
- },
236
- "node_modules/strip-ansi": {
237
- "extraneous": true
238
- },
239
- "node_modules/tar": {
240
- "extraneous": true
241
- },
242
- "node_modules/web-streams-polyfill": {
243
- "extraneous": true
244
- },
245
- "node_modules/yallist": {
246
- "extraneous": true
247
- }
248
- }
249
- }
package/reducer/index.js DELETED
@@ -1,88 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = void 0;
7
- var _redux = require("redux");
8
- var _reducer = _interopRequireDefault(require("@containers/App/reducer"));
9
- var _loadableConfigReducer = _interopRequireDefault(require("./loadableConfigReducer"));
10
- var _validator = require("../scripts/validator");
11
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
12
- function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
13
- function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
14
- function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
15
- function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
16
- function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
17
- // Import your reducers here
18
- /**
19
- * @description A 'Reducer Manager' object, which keeps track of all the registered reducers and exposes a reduce() function. For detailed info :- https://redux.js.org/usage/code-splitting#using-a-reducer-manager
20
- */
21
- function createReducerManager() {
22
- // FRAMEWORK COMMENT THIS SHOULD BE EXPOSED TO USER
23
- // Create an object which maps keys to reducers
24
-
25
- // Create the initial combinedReducer
26
- const reducers = {
27
- shellReducer: (0, _validator.validateReducerFunction)(_reducer.default) && _reducer.default,
28
- loadableConfigReducer: _loadableConfigReducer.default
29
- };
30
- let reducerObj = (0, _redux.combineReducers)(reducers);
31
-
32
- // An array which is used to delete state keys when reducers are removed
33
- let keysToRemove = [];
34
- return {
35
- getReducerMap: () => (0, _redux.combineReducers)(reducers),
36
- // The root reducer function exposed by this object
37
-
38
- // This will be passed to the store
39
- reduce: (state, action) => {
40
- // If any reducers have been removed, clean up their state first
41
- if (keysToRemove.length > 0) {
42
- state = _objectSpread({}, state);
43
- for (let key of keysToRemove) {
44
- delete state[key];
45
- }
46
- keysToRemove = [];
47
- }
48
-
49
- // Delegate to the combined reducer
50
- return reducerObj(state, action);
51
- },
52
- // Adds a new reducer with the specified key
53
- add: reducer => {
54
- for (let key in reducer) {
55
- if (!key) {
56
- return;
57
- }
58
-
59
- // We will skip a step if the reducer is already present
60
- if (reducers[key]) {
61
- continue;
62
- }
63
-
64
- // Add the reducer to the reducer mapping
65
- reducers[key] = reducer[key];
66
- }
67
-
68
- // Generate a new combined reducer
69
- return (0, _redux.combineReducers)(reducers);
70
- },
71
- // Removes a reducer with the specified key
72
- remove: key => {
73
- if (!key || !reducers[key]) {
74
- return;
75
- }
76
-
77
- // Remove it from the reducer mapping
78
- delete reducers[key];
79
-
80
- // Add the key to the list of keys to clean up
81
- keysToRemove.push(key);
82
-
83
- // Generate a new combined reducer
84
- return (0, _redux.combineReducers)(reducers);
85
- }
86
- };
87
- }
88
- var _default = exports.default = createReducerManager;
@@ -1,19 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = void 0;
7
- const defaultState = {
8
- SERVER_SIDE_RENDER: true,
9
- CLIENT_ONLY_RENDER: false
10
- };
11
-
12
- /** loads loadable config reducer
13
- * @param {object} defaultState - default state in reducer
14
- * @return {object} reducer default state
15
- */
16
- const loadableConfigReducer = (state = defaultState) => {
17
- return state;
18
- };
19
- var _default = exports.default = loadableConfigReducer;
@@ -1,73 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = configureStore;
7
- var _redux = require("redux");
8
- var _reduxThunk = _interopRequireDefault(require("redux-thunk"));
9
- var _reduxLogger = require("redux-logger");
10
- var _index = _interopRequireDefault(require("../reducer/index.js"));
11
- var _api = require("@lib/api.js");
12
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13
- /**
14
- * Function that initializes the store with the initialstate and adds middlewares that can be used during action dispatch
15
- * @param {object} initialState Default state
16
- * @param {object} cookies additional headers if needed
17
- * @param {object} requestObj additional information
18
- * @return {object} the store itself
19
- */
20
- function configureStore(initialState, cookies, requestObj, customHeaders) {
21
- // The variable defined below acts as a flag when the store is initialized on the client side
22
- // Reason being that for the first time we need to actually need to forcefully set the reducer for which we have the initial data
23
- let initializeClient = true;
24
- const reducerManager = (0, _index.default)();
25
- const api = (0, _api.directAxiosInstance)(cookies, requestObj, customHeaders);
26
- const labsApi = (0, _api.labsAxiosInstance)(cookies, requestObj, customHeaders);
27
-
28
- // FRAMEWORK COMMENT. This should be exposed to user.
29
-
30
- // disable redux-logger in server - https://github.com/LogRocket/redux-logger/issues/6
31
- const reduxLogger = (0, _reduxLogger.createLogger)({
32
- predicate: () => typeof window !== "undefined"
33
- });
34
- const addReducer = reducer => {
35
- // Only executed once when for the first run in client - side
36
- if (initializeClient) {
37
- initializeClient = false;
38
- return store.replaceReducer(reducerManager.add(reducer));
39
- }
40
-
41
- // This blocks check if the reducer is already added or not in store
42
- // If not then it only add the missing reducers
43
- // And if the required reducers are already present then we simply return without performing any change
44
- let reducerToAdd = {};
45
- const currentState = store.getState();
46
- for (let key in reducer) {
47
- if (!currentState[key]) {
48
- reducerToAdd[key] = reducer[key];
49
- }
50
- }
51
- if (Object.keys(reducerToAdd).length > 0) {
52
- return store.replaceReducer(reducerManager.add(reducerToAdd));
53
- }
54
- return;
55
- };
56
- let middleware = [_reduxThunk.default.withExtraArgument({
57
- addReducer,
58
- api,
59
- labsApi
60
- }), reduxLogger];
61
-
62
- // Add universal enhancers here
63
- let enhancers = [];
64
- const composeEnhancers = typeof window !== "undefined" && window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ || _redux.compose;
65
- const enhancer = composeEnhancers(...[(0, _redux.applyMiddleware)(...middleware), ...enhancers]);
66
-
67
- // create store with enhancers, middleware, reducers, and initialState
68
- // When the store is initialized on the client side, we are passing a function that just returns the initial State from the server
69
- // This is way we are able to maintain the initial state from the server on the client side and then add the relevant reducers
70
- // Which then consumes the initial state
71
- const store = (0, _redux.createStore)(Object.keys(initialState).length === 0 ? reducerManager.getReducerMap() : () => initialState, initialState, enhancer);
72
- return store;
73
- }
package/store/index.js DELETED
@@ -1,25 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = void 0;
7
- var _indexProd = _interopRequireDefault(require("./index.prod.js"));
8
- var _indexDev = _interopRequireDefault(require("./index.dev.js"));
9
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
10
- /**
11
- * Function that initializes the store with the initialstate and adds middlewares that can be used during action dispatch
12
- * It returns different store based on NODE_ENV for eg: production store and development store.
13
- * @param {object} initialState Default state
14
- * @param {object} cookies additional headers if needed
15
- * @param {object} requestObj additional information
16
- * @param {object} customHeaders custom headers which needs to be used in axios instance
17
- * @return {object} redux configured store
18
- */
19
- const configureStore = (initialState, cookies, requestObj, customHeaders) => {
20
- if (process.env.NODE_ENV === "production") {
21
- return (0, _indexProd.default)(initialState, cookies, requestObj, customHeaders);
22
- }
23
- return (0, _indexDev.default)(initialState, cookies, requestObj, customHeaders);
24
- };
25
- var _default = exports.default = configureStore;
@@ -1,66 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = configureStore;
7
- var _redux = require("redux");
8
- var _reduxThunk = _interopRequireDefault(require("redux-thunk"));
9
- var _index = _interopRequireDefault(require("../reducer/index.js"));
10
- var _api = require("@lib/api.js");
11
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
12
- /**
13
- * Function that initializes the store with the initialstate and adds middlewares that can be used during action dispatch
14
- * @param {object} initialState Default state
15
- * @param {object} cookies additional headers if needed
16
- * @param {object} requestObj additional information
17
- * @return {object} the store itself
18
- */
19
- function configureStore(initialState, cookies, requestObj, customHeaders) {
20
- // The variable defined below acts as a flag when the store is initialized on the client side
21
- // Reason being that for the first time we need to actually need to forcefully set the reducer for which we have the initial data
22
- let initializeClient = true;
23
- const reducerManager = (0, _index.default)();
24
- // FRAMEWORK COMMENT. This should be exposed to user.
25
- const api = (0, _api.directAxiosInstance)(cookies, requestObj, customHeaders);
26
- const labsApi = (0, _api.labsAxiosInstance)(cookies, requestObj, customHeaders);
27
- const addReducer = reducer => {
28
- // Only executed once when for the first run in client - side
29
- if (initializeClient) {
30
- initializeClient = false;
31
- return store.replaceReducer(reducerManager.add(reducer));
32
- }
33
-
34
- // This blocks check if the reducer is already added or not in store
35
- // If not then it only add the missing reducers
36
- // And if the required reducers are already present then we simply return without performing any change
37
- let reducerToAdd = {};
38
- const currentState = store.getState();
39
- for (let key in reducer) {
40
- if (!currentState[key]) {
41
- reducerToAdd[key] = reducer[key];
42
- }
43
- }
44
- if (Object.keys(reducerToAdd).length > 0) {
45
- return store.replaceReducer(reducerManager.add(reducerToAdd));
46
- }
47
- return;
48
- };
49
- // FRAMEWORK COMMENT THIS WILL NOT BE PART OF FRAMEWORK. NEED TO GENERALISE IT
50
- let middleware = [_reduxThunk.default.withExtraArgument({
51
- api,
52
- labsApi,
53
- addReducer
54
- })];
55
-
56
- // Add universal enhancers here
57
- let enhancers = [];
58
- const enhancer = (0, _redux.compose)(...[(0, _redux.applyMiddleware)(...middleware), ...enhancers]);
59
-
60
- // create store with enhancers, middleware, reducers, and initialState
61
- // When the store is initialized on the client side, we are passing a function that just returns the initial State from the server
62
- // This is way we are able to maintain the initial state from the server on the client side and then add the relevant reducers
63
- // Which then consumes the initial state
64
- const store = (0, _redux.createStore)(Object.keys(initialState).length === 0 ? reducerManager.getReducerMap() : () => initialState, initialState, enhancer);
65
- return store;
66
- }