catalyst-core 0.0.1-beta.2 → 0.0.1-beta.4
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.
- package/.eslintignore +9 -0
- package/.eslintrc +92 -0
- package/README.md +58 -43
- package/babel.config.json +1 -5
- package/bin/catalyst.js +35 -35
- package/changelog.md +26 -0
- package/config.json +1 -2
- package/{LICENSE → license} +2 -1
- package/{logger/index.js → logger.js} +13 -10
- package/package.json +87 -85
- package/router/ClientRouter.js +10 -6
- package/router/ServerRouter.js +2 -11
- package/scripts/build.js +26 -11
- package/scripts/checkVersion.js +5 -0
- package/scripts/devBuild.js +42 -0
- package/scripts/devServe.js +43 -0
- package/scripts/loadEnvironmentVariables.js +8 -21
- package/scripts/loadScriptsBeforeServerStarts.js +13 -21
- package/scripts/serve.js +27 -11
- package/scripts/start.js +19 -12
- package/scripts/validator.js +39 -11
- package/server/expressServer.js +50 -0
- package/server/renderer/document/Body.js +17 -18
- package/server/renderer/document/Head.js +7 -8
- package/server/renderer/document/index.js +2 -0
- package/server/renderer/extract.js +25 -24
- package/server/renderer/handler.js +220 -208
- package/server/renderer/index.js +6 -7
- package/server/renderer/render.js +32 -19
- package/server/startServer.js +66 -0
- package/server/utils/metaTags.js +13 -0
- package/server/utils/userAgentUtil.js +51 -0
- package/server/utils/validator.js +39 -10
- package/webpack/babel-plugins/remove-client.plugin.js +1 -1
- package/webpack/babel-plugins/remove-ssr.plugin.js +1 -1
- package/webpack/babel.config.client.js +3 -3
- package/webpack/babel.config.ssr.js +1 -1
- package/webpack/base.babel.js +37 -36
- package/webpack/development.client.babel.js +11 -8
- package/webpack/production.client.babel.js +1 -2
- package/webpack/production.ssr.babel.js +3 -3
- package/webpack/scssParams.js +35 -15
- package/.prettierignore +0 -2
- package/.prettierrc.json +0 -7
- package/checkVersion.js +0 -3
- package/config/config.js +0 -24
- package/packages/create-framework-app/node_modules/.package-lock.json +0 -249
- package/packages/create-framework-app/templates/redux-js/node_modules/@babel/core/lib/config/caching.js +0 -261
- package/packages/create-framework-app/templates/redux-js/node_modules/@remix-run/router/dist/router.js +0 -4327
- package/packages/create-framework-app/templates/redux-js/node_modules/catalyst/router.js +0 -15
- package/packages/create-framework-app/templates/redux-js/node_modules/http-proxy-middleware/dist/router.js +0 -46
- package/reducer/index.js +0 -88
- package/reducer/loadableConfigReducer.js +0 -19
- package/store/index.dev.js +0 -73
- package/store/index.js +0 -25
- package/store/index.prod.js +0 -66
- package/types/caching.d.ts +0 -1
- package/types/config/config.d.ts +0 -19
- package/types/index.d.ts +0 -1
- package/types/logger/index.d.ts +0 -14
- package/types/reducer/index.d.ts +0 -22
- package/types/reducer/loadableConfigReducer.d.ts +0 -9
- package/types/router/ClientRouter.d.ts +0 -5
- package/types/router/ServerRouter.d.ts +0 -7
- package/types/router/index.d.ts +0 -8
- package/types/router.d.ts +0 -1
- package/types/scripts/build.d.ts +0 -1
- package/types/scripts/loadEnvironmentVariables.d.ts +0 -5
- package/types/scripts/loadScriptsBeforeServerStarts.d.ts +0 -1
- package/types/scripts/prepare.d.ts +0 -1
- package/types/scripts/registerAliases.d.ts +0 -1
- package/types/scripts/serve.d.ts +0 -1
- package/types/scripts/start.d.ts +0 -1
- package/types/scripts/validator.d.ts +0 -9
- package/types/scripts/verifyConfig.d.ts +0 -1
- package/types/server/mainIndex.d.ts +0 -1
- package/types/server/mainServer.d.ts +0 -2
- package/types/server/renderer/document/Body.d.ts +0 -11
- package/types/server/renderer/document/Head.d.ts +0 -11
- package/types/server/renderer/document/index.d.ts +0 -2
- package/types/server/renderer/extract.d.ts +0 -18
- package/types/server/renderer/handler.d.ts +0 -6
- package/types/server/renderer/index.d.ts +0 -2
- package/types/server/renderer/render.d.ts +0 -38
- package/types/server/renderer/userAgentUtil.d.ts +0 -1
- package/types/store/index.d.ts +0 -11
- package/types/store/index.dev.d.ts +0 -8
- package/types/store/index.prod.d.ts +0 -8
- package/types/webpack/babel-plugins/remove-client.plugin.d.ts +0 -10
- package/types/webpack/babel-plugins/remove-ssr.plugin.d.ts +0 -10
- package/types/webpack/babel.config.client.d.ts +0 -21
- package/types/webpack/babel.config.d.ts +0 -16
- package/types/webpack/babel.config.ssr.d.ts +0 -21
- package/types/webpack/base.babel.d.ts +0 -184
- package/types/webpack/development.client.babel.d.ts +0 -1
- package/types/webpack/plugins/mime-types.d.ts +0 -78
- package/types/webpack/plugins/route-manifest-plugin.d.ts +0 -1
- package/types/webpack/plugins/upload-assets-plugin.d.ts +0 -1
- package/types/webpack/production.client.babel.d.ts +0 -174
- package/types/webpack/production.ssr.babel.d.ts +0 -2
- package/types/webpack/scssParams.d.ts +0 -2
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
var _router = require("@tata1mg/router");
|
|
7
|
-
Object.keys(_router).forEach(function (key) {
|
|
8
|
-
if (key === "default" || key === "__esModule") return;
|
|
9
|
-
Object.defineProperty(exports, key, {
|
|
10
|
-
enumerable: true,
|
|
11
|
-
get: function () {
|
|
12
|
-
return _router[key];
|
|
13
|
-
}
|
|
14
|
-
});
|
|
15
|
-
});
|
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getTarget = void 0;
|
|
4
|
-
const isPlainObj = require("is-plain-obj");
|
|
5
|
-
const logger_1 = require("./logger");
|
|
6
|
-
const logger = (0, logger_1.getInstance)();
|
|
7
|
-
async function getTarget(req, config) {
|
|
8
|
-
let newTarget;
|
|
9
|
-
const router = config.router;
|
|
10
|
-
if (isPlainObj(router)) {
|
|
11
|
-
newTarget = getTargetFromProxyTable(req, router);
|
|
12
|
-
}
|
|
13
|
-
else if (typeof router === 'function') {
|
|
14
|
-
newTarget = await router(req);
|
|
15
|
-
}
|
|
16
|
-
return newTarget;
|
|
17
|
-
}
|
|
18
|
-
exports.getTarget = getTarget;
|
|
19
|
-
function getTargetFromProxyTable(req, table) {
|
|
20
|
-
let result;
|
|
21
|
-
const host = req.headers.host;
|
|
22
|
-
const path = req.url;
|
|
23
|
-
const hostAndPath = host + path;
|
|
24
|
-
for (const [key] of Object.entries(table)) {
|
|
25
|
-
if (containsPath(key)) {
|
|
26
|
-
if (hostAndPath.indexOf(key) > -1) {
|
|
27
|
-
// match 'localhost:3000/api'
|
|
28
|
-
result = table[key];
|
|
29
|
-
logger.debug('[HPM] Router table match: "%s"', key);
|
|
30
|
-
break;
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
else {
|
|
34
|
-
if (key === host) {
|
|
35
|
-
// match 'localhost:3000'
|
|
36
|
-
result = table[key];
|
|
37
|
-
logger.debug('[HPM] Router table match: "%s"', host);
|
|
38
|
-
break;
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
return result;
|
|
43
|
-
}
|
|
44
|
-
function containsPath(v) {
|
|
45
|
-
return v.indexOf('/') > -1;
|
|
46
|
-
}
|
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;
|
package/store/index.dev.js
DELETED
|
@@ -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;
|
package/store/index.prod.js
DELETED
|
@@ -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
|
-
}
|
package/types/caching.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
package/types/config/config.d.ts
DELETED
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
declare namespace _default {
|
|
2
|
-
let S3_BUCKET: string;
|
|
3
|
-
let S3_FOLDER: string;
|
|
4
|
-
let CDN_ASSET_PATH: string;
|
|
5
|
-
let APPLICATION_PORT: string;
|
|
6
|
-
let APPLICATION_BASE_URL: string;
|
|
7
|
-
let SERVER_PATH: string;
|
|
8
|
-
let OUTPUT_PATH: string;
|
|
9
|
-
let PUBLIC_OUTPUT_PATH: string;
|
|
10
|
-
let PUBLIC_ASSET_PATH: string;
|
|
11
|
-
let LOCAL_ASSET_PATH: string;
|
|
12
|
-
let EXTERNAL_BASE_URL: string;
|
|
13
|
-
let DEV_SERVER_PORT: number;
|
|
14
|
-
let DEV_SERVER_HOSTNAME: string;
|
|
15
|
-
let DEV_SERVER_HOST_URL: string;
|
|
16
|
-
let ENV_NAME: string;
|
|
17
|
-
let BUILD_ENV: string;
|
|
18
|
-
}
|
|
19
|
-
export default _default;
|
package/types/index.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export * from "./server/renderer/document/index";
|
package/types/logger/index.d.ts
DELETED
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @description Logger library with rotational strategy. Creates a logs folder in root.
|
|
3
|
-
* With debug, error and info log directories with their respective log files.
|
|
4
|
-
*
|
|
5
|
-
* @format Logstash with timestamp
|
|
6
|
-
* @param config { @enableDebugLogs: Bool // default: true }
|
|
7
|
-
* @returns loggerInstance
|
|
8
|
-
*
|
|
9
|
-
*/
|
|
10
|
-
export function configureLogger(config?: any): {
|
|
11
|
-
debug: () => void;
|
|
12
|
-
error: (msg: any) => void;
|
|
13
|
-
info: (msg: any) => void;
|
|
14
|
-
};
|
package/types/reducer/index.d.ts
DELETED
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
export default createReducerManager;
|
|
2
|
-
/**
|
|
3
|
-
* @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
|
|
4
|
-
*/
|
|
5
|
-
declare function createReducerManager(): {
|
|
6
|
-
getReducerMap: () => import("redux").Reducer<import("redux").CombinedState<{
|
|
7
|
-
shellReducer: unknown;
|
|
8
|
-
loadableConfigReducer: never;
|
|
9
|
-
}>, import("redux").Action<any>>;
|
|
10
|
-
reduce: (state: any, action: any) => import("redux").CombinedState<{
|
|
11
|
-
shellReducer: unknown;
|
|
12
|
-
loadableConfigReducer: never;
|
|
13
|
-
}>;
|
|
14
|
-
add: (reducer: any) => import("redux").Reducer<import("redux").CombinedState<{
|
|
15
|
-
shellReducer: unknown;
|
|
16
|
-
loadableConfigReducer: never;
|
|
17
|
-
}>, import("redux").Action<any>> | undefined;
|
|
18
|
-
remove: (key: any) => import("redux").Reducer<import("redux").CombinedState<{
|
|
19
|
-
shellReducer: unknown;
|
|
20
|
-
loadableConfigReducer: never;
|
|
21
|
-
}>, import("redux").Action<any>> | undefined;
|
|
22
|
-
};
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
export default loadableConfigReducer;
|
|
2
|
-
/** loads loadable config reducer
|
|
3
|
-
* @param {object} defaultState - default state in reducer
|
|
4
|
-
* @return {object} reducer default state
|
|
5
|
-
*/
|
|
6
|
-
declare function loadableConfigReducer(state?: {
|
|
7
|
-
SERVER_SIDE_RENDER: boolean;
|
|
8
|
-
CLIENT_ONLY_RENDER: boolean;
|
|
9
|
-
}): object;
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
export default ServerRouter;
|
|
2
|
-
/**
|
|
3
|
-
* @description return
|
|
4
|
-
* @param {object} reduxData - redux data
|
|
5
|
-
* @returns returns server routes
|
|
6
|
-
*/
|
|
7
|
-
declare function ServerRouter(reduxData: object): import("react").ReactElement<any, string | import("react").JSXElementConstructor<any>> | null;
|
package/types/router/index.d.ts
DELETED
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
export function preparedRoutes(): any;
|
|
2
|
-
export default getRoutes;
|
|
3
|
-
/**
|
|
4
|
-
* @description prepares routes from routes defined inside template.
|
|
5
|
-
* Adds path and element key inside each route.
|
|
6
|
-
* @returns returns routes list after modifiing template routes
|
|
7
|
-
*/
|
|
8
|
-
declare const getRoutes: any;
|
package/types/router.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export * from "@tata1mg/router";
|
package/types/scripts/build.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
package/types/scripts/serve.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
package/types/scripts/start.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
export function validatePreInitServer(fn: any): true | undefined;
|
|
2
|
-
export function validateMiddleware(fn: any): true | undefined;
|
|
3
|
-
export function validateReducerFunction(fn: any): true | undefined;
|
|
4
|
-
export function validateConfigFile(obj: any): true | undefined;
|
|
5
|
-
export function validatePackageJson(obj: any): true | undefined;
|
|
6
|
-
export function validateModuleAlias(obj: any): true | undefined;
|
|
7
|
-
export function validateConfigureStore(fn: any): true | undefined;
|
|
8
|
-
export function validateGetRoutes(fn: any): true | undefined;
|
|
9
|
-
export function validateCustomDocument(fn: any): true | undefined;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Body component which will be used in page component
|
|
3
|
-
* @param {object} initialState - redux store state
|
|
4
|
-
* @param {object} statusCode - api config present in cache list
|
|
5
|
-
* @param {object} firstFoldCss - user defined components for meta tags input
|
|
6
|
-
* @param {object} firstFoldJS - user defined components for meta tags input
|
|
7
|
-
* @param {object} jsx - user defined components for meta tags input
|
|
8
|
-
* @param {object} fetcherData - router fetched data
|
|
9
|
-
*/
|
|
10
|
-
export function Body(props: any): React.JSX.Element;
|
|
11
|
-
import React from "react";
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Head component which will be used in page rendering
|
|
3
|
-
* @param {string} pageCss - includes all styles for page css
|
|
4
|
-
* @param {object} pageJS - async scripts for loading chunks
|
|
5
|
-
* @param {function} metaTagFunction - user defined function which returns meta tags in array
|
|
6
|
-
* @param {boolean} isBot - checks if request is made by bot
|
|
7
|
-
* @param {string} publicAssetPath - public asset path for assets
|
|
8
|
-
* @param {object} fetcherData - router fetched data
|
|
9
|
-
*/
|
|
10
|
-
export function Head(props: any): React.JSX.Element;
|
|
11
|
-
import React from "react";
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Stores css chunks styles into cache in string format
|
|
3
|
-
* @param {string} key - router path
|
|
4
|
-
* @param {object} data - css elements array extracted through loadable chunk extracter
|
|
5
|
-
*/
|
|
6
|
-
export function cacheCSS(key: string, data: object): void;
|
|
7
|
-
/**
|
|
8
|
-
* Stores javascript into cache
|
|
9
|
-
* @param {string} key - router path
|
|
10
|
-
* @param {object} data - js elements array extracted through loadable chunk extracter
|
|
11
|
-
*/
|
|
12
|
-
export function cacheJS(key: string, data: object): void;
|
|
13
|
-
/**
|
|
14
|
-
* stores css and js in cache
|
|
15
|
-
* @param {object} res - response object
|
|
16
|
-
* @param {string} route - route path
|
|
17
|
-
*/
|
|
18
|
-
export default function _default(res: object, route: string): void;
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
declare namespace _default {
|
|
2
|
-
export { renderStart };
|
|
3
|
-
export { renderEnd };
|
|
4
|
-
}
|
|
5
|
-
export default _default;
|
|
6
|
-
/**
|
|
7
|
-
* returns data which will be used in head component for page rendering
|
|
8
|
-
* @param {string} pageCss - includes all styles for page css
|
|
9
|
-
* @param {string} pageJS - async scripts for loading chunks
|
|
10
|
-
* @param {function} metaTagFunction - user defined function which returns meta tags in array
|
|
11
|
-
* @param {boolean} isBot - checks if request is made by bot
|
|
12
|
-
* @param {object} fetcherData - router fetched data
|
|
13
|
-
*/
|
|
14
|
-
declare function renderStart(pageCss: string, pageJS: string, metaTagFunction: Function, isBot: boolean, fetcherData: object): {
|
|
15
|
-
pageCss: string;
|
|
16
|
-
pageJS: string;
|
|
17
|
-
metaTagFunction: Function;
|
|
18
|
-
isBot: boolean;
|
|
19
|
-
publicAssetPath: string;
|
|
20
|
-
fetcherData: object;
|
|
21
|
-
};
|
|
22
|
-
/**
|
|
23
|
-
* returns data which will be used in body component for page rendering
|
|
24
|
-
* @param {object} webExtractor - loadable object which holds chunking function
|
|
25
|
-
* @param {string} initialState - reducer initial state
|
|
26
|
-
* @param {function} res - response object
|
|
27
|
-
* @param {boolean} jsx - jsx which needs to be render on server side
|
|
28
|
-
* @param {string|number|null} errorCode - error code
|
|
29
|
-
* @param {object} fetcherData - router fetched data
|
|
30
|
-
*/
|
|
31
|
-
declare function renderEnd(webExtractor: object, initialState: string | undefined, res: Function, jsx: boolean, errorCode: string | number | null, fetcherData: object): {
|
|
32
|
-
initialState: string;
|
|
33
|
-
firstFoldCss: string;
|
|
34
|
-
firstFoldJS: string;
|
|
35
|
-
jsx: boolean;
|
|
36
|
-
errorCode: string | number | null;
|
|
37
|
-
fetcherData: object;
|
|
38
|
-
};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export function getUserAgentDetails(ua: string): object;
|
package/types/store/index.d.ts
DELETED
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
export default configureStore;
|
|
2
|
-
/**
|
|
3
|
-
* Function that initializes the store with the initialstate and adds middlewares that can be used during action dispatch
|
|
4
|
-
* It returns different store based on NODE_ENV for eg: production store and development store.
|
|
5
|
-
* @param {object} initialState Default state
|
|
6
|
-
* @param {object} cookies additional headers if needed
|
|
7
|
-
* @param {object} requestObj additional information
|
|
8
|
-
* @param {object} customHeaders custom headers which needs to be used in axios instance
|
|
9
|
-
* @return {object} redux configured store
|
|
10
|
-
*/
|
|
11
|
-
declare function configureStore(initialState: object, cookies: object, requestObj: object, customHeaders: object): object;
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Function that initializes the store with the initialstate and adds middlewares that can be used during action dispatch
|
|
3
|
-
* @param {object} initialState Default state
|
|
4
|
-
* @param {object} cookies additional headers if needed
|
|
5
|
-
* @param {object} requestObj additional information
|
|
6
|
-
* @return {object} the store itself
|
|
7
|
-
*/
|
|
8
|
-
export default function configureStore(initialState: object, cookies: object, requestObj: object, customHeaders: any): object;
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Function that initializes the store with the initialstate and adds middlewares that can be used during action dispatch
|
|
3
|
-
* @param {object} initialState Default state
|
|
4
|
-
* @param {object} cookies additional headers if needed
|
|
5
|
-
* @param {object} requestObj additional information
|
|
6
|
-
* @return {object} the store itself
|
|
7
|
-
*/
|
|
8
|
-
export default function configureStore(initialState: object, cookies: object, requestObj: object, customHeaders: any): object;
|