@modern-js/runtime 1.3.5 → 1.4.2
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/CHANGELOG.md +67 -0
- package/dist/js/modern/cli/index.js +4 -4
- package/dist/js/modern/common.js +1 -0
- package/dist/js/modern/exports/model.js +2 -1
- package/dist/js/modern/exports/router.js +2 -1
- package/dist/js/modern/exports/server.js +0 -1
- package/dist/js/modern/exports/ssr.js +2 -1
- package/dist/js/modern/router/cli/index.js +106 -0
- package/dist/js/modern/router/index.js +2 -0
- package/dist/js/modern/router/runtime/DefaultNotFound.js +13 -0
- package/dist/js/modern/router/runtime/index.js +4 -0
- package/dist/js/modern/router/runtime/plugin.js +88 -0
- package/dist/js/modern/router/runtime/utils.js +108 -0
- package/dist/js/modern/ssr/cli/index.js +120 -0
- package/dist/js/modern/ssr/index.js +109 -0
- package/dist/js/modern/ssr/index.node.js +78 -0
- package/dist/js/modern/ssr/prefetch.js +58 -0
- package/dist/js/modern/ssr/react/index.js +2 -0
- package/dist/js/modern/ssr/react/nossr/index.js +13 -0
- package/dist/js/modern/ssr/react/prerender/index.js +104 -0
- package/dist/js/modern/ssr/react/prerender/type.js +0 -0
- package/dist/js/modern/ssr/react/prerender/util.js +99 -0
- package/dist/js/modern/ssr/serverRender/entry.js +179 -0
- package/dist/js/modern/ssr/serverRender/helmet.js +46 -0
- package/dist/js/modern/ssr/serverRender/index.js +29 -0
- package/dist/js/modern/ssr/serverRender/loadable.js +48 -0
- package/dist/js/modern/ssr/serverRender/measure.js +11 -0
- package/dist/js/modern/ssr/serverRender/reduce.js +7 -0
- package/dist/js/modern/ssr/serverRender/styledComponent.js +8 -0
- package/dist/js/modern/ssr/serverRender/template.js +90 -0
- package/dist/js/modern/ssr/serverRender/type.js +8 -0
- package/dist/js/modern/ssr/utils.js +51 -0
- package/dist/js/modern/state/cli/index.js +110 -0
- package/dist/js/modern/state/index.js +2 -0
- package/dist/js/modern/state/plugins.js +7 -0
- package/dist/js/modern/state/runtime/index.js +4 -0
- package/dist/js/modern/state/runtime/plugin.js +71 -0
- package/dist/js/modern/state/types.js +1 -0
- package/dist/js/node/cli/index.js +5 -5
- package/dist/js/node/common.js +10 -0
- package/dist/js/node/exports/model.js +19 -5
- package/dist/js/node/exports/router.js +19 -5
- package/dist/js/node/exports/server.js +0 -17
- package/dist/js/node/exports/ssr.js +19 -5
- package/dist/js/node/router/cli/index.js +122 -0
- package/dist/js/node/router/index.js +30 -0
- package/dist/js/node/router/runtime/DefaultNotFound.js +26 -0
- package/dist/js/node/router/runtime/index.js +39 -0
- package/dist/js/node/router/runtime/plugin.js +111 -0
- package/dist/js/node/router/runtime/utils.js +128 -0
- package/dist/js/node/ssr/cli/index.js +136 -0
- package/dist/js/node/ssr/index.js +138 -0
- package/dist/js/node/ssr/index.node.js +105 -0
- package/dist/js/node/ssr/prefetch.js +75 -0
- package/dist/js/node/ssr/react/index.js +21 -0
- package/dist/js/node/ssr/react/nossr/index.js +28 -0
- package/dist/js/node/ssr/react/prerender/index.js +121 -0
- package/dist/js/node/ssr/react/prerender/type.js +0 -0
- package/dist/js/node/ssr/react/prerender/util.js +119 -0
- package/dist/js/node/ssr/serverRender/entry.js +208 -0
- package/dist/js/node/ssr/serverRender/helmet.js +52 -0
- package/dist/js/node/ssr/serverRender/index.js +46 -0
- package/dist/js/node/ssr/serverRender/loadable.js +60 -0
- package/dist/js/node/ssr/serverRender/measure.js +20 -0
- package/dist/js/node/ssr/serverRender/reduce.js +14 -0
- package/dist/js/node/ssr/serverRender/styledComponent.js +18 -0
- package/dist/js/node/ssr/serverRender/template.js +103 -0
- package/dist/js/node/ssr/serverRender/type.js +15 -0
- package/dist/js/node/ssr/utils.js +65 -0
- package/dist/js/node/state/cli/index.js +127 -0
- package/dist/js/node/state/index.js +30 -0
- package/dist/js/node/state/plugins.js +35 -0
- package/dist/js/node/state/runtime/index.js +61 -0
- package/dist/js/node/state/runtime/plugin.js +101 -0
- package/dist/js/node/state/types.js +5 -0
- package/dist/js/treeshaking/cli/index.js +4 -4
- package/dist/js/treeshaking/common.js +3 -0
- package/dist/js/treeshaking/exports/model.js +2 -1
- package/dist/js/treeshaking/exports/router.js +2 -1
- package/dist/js/treeshaking/exports/server.js +0 -1
- package/dist/js/treeshaking/exports/ssr.js +2 -1
- package/dist/js/treeshaking/router/cli/index.js +100 -0
- package/dist/js/treeshaking/router/index.js +2 -0
- package/dist/js/treeshaking/router/runtime/DefaultNotFound.js +15 -0
- package/dist/js/treeshaking/router/runtime/index.js +4 -0
- package/dist/js/treeshaking/router/runtime/plugin.js +89 -0
- package/dist/js/treeshaking/router/runtime/utils.js +106 -0
- package/dist/js/treeshaking/ssr/cli/index.js +113 -0
- package/dist/js/treeshaking/ssr/index.js +129 -0
- package/dist/js/treeshaking/ssr/index.node.js +100 -0
- package/dist/js/treeshaking/ssr/prefetch.js +97 -0
- package/dist/js/treeshaking/ssr/react/index.js +2 -0
- package/dist/js/treeshaking/ssr/react/nossr/index.js +16 -0
- package/dist/js/treeshaking/ssr/react/prerender/index.js +119 -0
- package/dist/js/treeshaking/ssr/react/prerender/type.js +0 -0
- package/dist/js/treeshaking/ssr/react/prerender/util.js +115 -0
- package/dist/js/treeshaking/ssr/serverRender/entry.js +267 -0
- package/dist/js/treeshaking/ssr/serverRender/helmet.js +37 -0
- package/dist/js/treeshaking/ssr/serverRender/index.js +69 -0
- package/dist/js/treeshaking/ssr/serverRender/loadable.js +59 -0
- package/dist/js/treeshaking/ssr/serverRender/measure.js +17 -0
- package/dist/js/treeshaking/ssr/serverRender/reduce.js +11 -0
- package/dist/js/treeshaking/ssr/serverRender/styledComponent.js +8 -0
- package/dist/js/treeshaking/ssr/serverRender/template.js +111 -0
- package/dist/js/treeshaking/ssr/serverRender/type.js +8 -0
- package/dist/js/treeshaking/ssr/utils.js +53 -0
- package/dist/js/treeshaking/state/cli/index.js +100 -0
- package/dist/js/treeshaking/state/index.js +2 -0
- package/dist/js/treeshaking/state/plugins.js +13 -0
- package/dist/js/treeshaking/state/runtime/index.js +4 -0
- package/dist/js/treeshaking/state/runtime/plugin.js +63 -0
- package/dist/js/treeshaking/state/types.js +1 -0
- package/dist/types/common.d.ts +1 -0
- package/dist/types/exports/model.d.ts +2 -1
- package/dist/types/exports/router.d.ts +2 -1
- package/dist/types/exports/server.d.ts +0 -1
- package/dist/types/exports/ssr.d.ts +2 -1
- package/dist/types/index.d.ts +2 -2
- package/dist/types/router/cli/index.d.ts +5 -0
- package/dist/types/router/index.d.ts +2 -0
- package/dist/types/router/runtime/DefaultNotFound.d.ts +2 -0
- package/dist/types/router/runtime/index.d.ts +6 -0
- package/dist/types/router/runtime/plugin.d.ts +51 -0
- package/dist/types/router/runtime/utils.d.ts +6 -0
- package/dist/types/ssr/cli/index.d.ts +5 -0
- package/dist/types/ssr/index.d.ts +18 -0
- package/dist/types/ssr/index.node.d.ts +4 -0
- package/dist/types/ssr/prefetch.d.ts +13 -0
- package/dist/types/ssr/react/index.d.ts +2 -0
- package/dist/types/ssr/react/nossr/index.d.ts +2 -0
- package/dist/types/ssr/react/prerender/index.d.ts +1 -0
- package/dist/types/ssr/react/prerender/type.d.ts +29 -0
- package/dist/types/ssr/react/prerender/util.d.ts +6 -0
- package/dist/types/ssr/serverRender/entry.d.ts +20 -0
- package/dist/types/ssr/serverRender/helmet.d.ts +2 -0
- package/dist/types/ssr/serverRender/index.d.ts +8 -0
- package/dist/types/ssr/serverRender/loadable.d.ts +2 -0
- package/dist/types/ssr/serverRender/measure.d.ts +1 -0
- package/dist/types/ssr/serverRender/reduce.d.ts +3 -0
- package/dist/types/ssr/serverRender/styledComponent.d.ts +2 -0
- package/dist/types/ssr/serverRender/template.d.ts +14 -0
- package/dist/types/ssr/serverRender/type.d.ts +32 -0
- package/dist/types/ssr/utils.d.ts +8 -0
- package/dist/types/state/cli/index.d.ts +5 -0
- package/dist/types/state/index.d.ts +2 -0
- package/dist/types/state/plugins.d.ts +4 -0
- package/dist/types/state/runtime/index.d.ts +4 -0
- package/dist/types/state/runtime/plugin.d.ts +17 -0
- package/dist/types/state/types.d.ts +17 -0
- package/package.json +36 -20
- package/types/model.d.ts +4 -1
- package/dist/js/modern/exports/request.js +0 -1
- package/dist/js/node/exports/request.js +0 -13
- package/dist/js/treeshaking/exports/request.js +0 -1
- package/dist/types/exports/request.d.ts +0 -1
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
var _exportNames = {};
|
|
7
|
+
Object.defineProperty(exports, "default", {
|
|
8
|
+
enumerable: true,
|
|
9
|
+
get: function () {
|
|
10
|
+
return _runtime.default;
|
|
11
|
+
}
|
|
12
|
+
});
|
|
13
|
+
|
|
14
|
+
var _runtime = _interopRequireWildcard(require("./runtime"));
|
|
15
|
+
|
|
16
|
+
Object.keys(_runtime).forEach(function (key) {
|
|
17
|
+
if (key === "default" || key === "__esModule") return;
|
|
18
|
+
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
|
19
|
+
if (key in exports && exports[key] === _runtime[key]) return;
|
|
20
|
+
Object.defineProperty(exports, key, {
|
|
21
|
+
enumerable: true,
|
|
22
|
+
get: function () {
|
|
23
|
+
return _runtime[key];
|
|
24
|
+
}
|
|
25
|
+
});
|
|
26
|
+
});
|
|
27
|
+
|
|
28
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
29
|
+
|
|
30
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.DefaultNotFound = void 0;
|
|
7
|
+
|
|
8
|
+
var _react = _interopRequireDefault(require("react"));
|
|
9
|
+
|
|
10
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
11
|
+
|
|
12
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
13
|
+
|
|
14
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
15
|
+
const DefaultNotFound = () => /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
|
|
16
|
+
style: {
|
|
17
|
+
margin: '150px auto',
|
|
18
|
+
textAlign: 'center',
|
|
19
|
+
display: 'flex',
|
|
20
|
+
alignItems: 'center',
|
|
21
|
+
justifyContent: 'center'
|
|
22
|
+
},
|
|
23
|
+
children: "404"
|
|
24
|
+
});
|
|
25
|
+
|
|
26
|
+
exports.DefaultNotFound = DefaultNotFound;
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
var _exportNames = {};
|
|
7
|
+
exports.default = void 0;
|
|
8
|
+
|
|
9
|
+
var _plugin = require("./plugin");
|
|
10
|
+
|
|
11
|
+
var _reactRouterDom = require("react-router-dom");
|
|
12
|
+
|
|
13
|
+
Object.keys(_reactRouterDom).forEach(function (key) {
|
|
14
|
+
if (key === "default" || key === "__esModule") return;
|
|
15
|
+
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
|
16
|
+
if (key in exports && exports[key] === _reactRouterDom[key]) return;
|
|
17
|
+
Object.defineProperty(exports, key, {
|
|
18
|
+
enumerable: true,
|
|
19
|
+
get: function () {
|
|
20
|
+
return _reactRouterDom[key];
|
|
21
|
+
}
|
|
22
|
+
});
|
|
23
|
+
});
|
|
24
|
+
|
|
25
|
+
var _history = require("history");
|
|
26
|
+
|
|
27
|
+
Object.keys(_history).forEach(function (key) {
|
|
28
|
+
if (key === "default" || key === "__esModule") return;
|
|
29
|
+
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
|
30
|
+
if (key in exports && exports[key] === _history[key]) return;
|
|
31
|
+
Object.defineProperty(exports, key, {
|
|
32
|
+
enumerable: true,
|
|
33
|
+
get: function () {
|
|
34
|
+
return _history[key];
|
|
35
|
+
}
|
|
36
|
+
});
|
|
37
|
+
});
|
|
38
|
+
var _default = _plugin.routerPlugin;
|
|
39
|
+
exports.default = _default;
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.routerPlugin = void 0;
|
|
7
|
+
|
|
8
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
9
|
+
|
|
10
|
+
var _history = require("history");
|
|
11
|
+
|
|
12
|
+
var _reactRouterDom = require("react-router-dom");
|
|
13
|
+
|
|
14
|
+
var _runtimeCore = require("@modern-js/runtime-core");
|
|
15
|
+
|
|
16
|
+
var _hoistNonReactStatics = _interopRequireDefault(require("hoist-non-react-statics"));
|
|
17
|
+
|
|
18
|
+
var _common = require("../../common");
|
|
19
|
+
|
|
20
|
+
var _utils = require("./utils");
|
|
21
|
+
|
|
22
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
23
|
+
|
|
24
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
25
|
+
|
|
26
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
27
|
+
|
|
28
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
29
|
+
|
|
30
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
31
|
+
|
|
32
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
33
|
+
|
|
34
|
+
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
35
|
+
|
|
36
|
+
const routerPlugin = ({
|
|
37
|
+
serverBase: _serverBase = [],
|
|
38
|
+
history: customHistory,
|
|
39
|
+
supportHtml5History: _supportHtml5History = true,
|
|
40
|
+
routesConfig,
|
|
41
|
+
historyOptions: _historyOptions = {}
|
|
42
|
+
}) => {
|
|
43
|
+
const isBrow = (0, _common.isBrowser)();
|
|
44
|
+
|
|
45
|
+
const select = pathname => _serverBase.find(baseUrl => pathname.search(baseUrl) === 0) || '/';
|
|
46
|
+
|
|
47
|
+
return {
|
|
48
|
+
name: '@modern-js/plugin-router',
|
|
49
|
+
setup: () => {
|
|
50
|
+
return {
|
|
51
|
+
hoc: ({
|
|
52
|
+
App
|
|
53
|
+
}, next) => {
|
|
54
|
+
const getRouteApp = () => {
|
|
55
|
+
if (isBrow) {
|
|
56
|
+
var _window$_SERVER_DATA;
|
|
57
|
+
|
|
58
|
+
const baseUrl = ((_window$_SERVER_DATA = window._SERVER_DATA) === null || _window$_SERVER_DATA === void 0 ? void 0 : _window$_SERVER_DATA.router.baseUrl) || select(location.pathname);
|
|
59
|
+
_historyOptions.basename = baseUrl === '/' ? (0, _utils.urlJoin)(baseUrl, _historyOptions.basename) : baseUrl;
|
|
60
|
+
const history = customHistory || (_supportHtml5History ? (0, _history.createBrowserHistory)(_historyOptions) : (0, _history.createHashHistory)(_historyOptions));
|
|
61
|
+
return props => /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactRouterDom.Router, {
|
|
62
|
+
history: history,
|
|
63
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(App, _objectSpread(_objectSpread({}, props), {}, {
|
|
64
|
+
children: routesConfig ? (0, _utils.renderRoutes)(routesConfig, props) : null
|
|
65
|
+
}))
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
return props => {
|
|
70
|
+
const runtimeContext = (0, _react.useContext)(_runtimeCore.RuntimeReactContext);
|
|
71
|
+
const {
|
|
72
|
+
ssrContext
|
|
73
|
+
} = runtimeContext;
|
|
74
|
+
const location = (0, _utils.getLocation)(ssrContext);
|
|
75
|
+
const routerContext = (ssrContext === null || ssrContext === void 0 ? void 0 : ssrContext.redirection) || {};
|
|
76
|
+
const request = ssrContext === null || ssrContext === void 0 ? void 0 : ssrContext.request;
|
|
77
|
+
const baseUrl = request === null || request === void 0 ? void 0 : request.baseUrl;
|
|
78
|
+
const basename = baseUrl === '/' ? (0, _utils.urlJoin)(baseUrl, _historyOptions.basename) : baseUrl;
|
|
79
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactRouterDom.StaticRouter, {
|
|
80
|
+
basename: basename === '/' ? '' : basename,
|
|
81
|
+
location: location,
|
|
82
|
+
context: routerContext,
|
|
83
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(App, _objectSpread(_objectSpread({}, props), {}, {
|
|
84
|
+
children: routesConfig ? (0, _utils.renderRoutes)(routesConfig, props) : null
|
|
85
|
+
}))
|
|
86
|
+
});
|
|
87
|
+
};
|
|
88
|
+
};
|
|
89
|
+
|
|
90
|
+
let RouteApp = getRouteApp();
|
|
91
|
+
|
|
92
|
+
if (App) {
|
|
93
|
+
RouteApp = (0, _hoistNonReactStatics.default)(RouteApp, App);
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
if (routesConfig !== null && routesConfig !== void 0 && routesConfig.globalApp) {
|
|
97
|
+
return next({
|
|
98
|
+
App: (0, _hoistNonReactStatics.default)(RouteApp, routesConfig.globalApp)
|
|
99
|
+
});
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
return next({
|
|
103
|
+
App: RouteApp
|
|
104
|
+
});
|
|
105
|
+
}
|
|
106
|
+
};
|
|
107
|
+
}
|
|
108
|
+
};
|
|
109
|
+
};
|
|
110
|
+
|
|
111
|
+
exports.routerPlugin = routerPlugin;
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.getLocation = getLocation;
|
|
7
|
+
exports.renderRoutes = renderRoutes;
|
|
8
|
+
exports.standardSlash = standardSlash;
|
|
9
|
+
exports.urlJoin = void 0;
|
|
10
|
+
|
|
11
|
+
var _react = _interopRequireDefault(require("react"));
|
|
12
|
+
|
|
13
|
+
var _reactRouterDom = require("react-router-dom");
|
|
14
|
+
|
|
15
|
+
var _DefaultNotFound = require("./DefaultNotFound");
|
|
16
|
+
|
|
17
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
18
|
+
|
|
19
|
+
const _excluded = ["Component"];
|
|
20
|
+
|
|
21
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
22
|
+
|
|
23
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
24
|
+
|
|
25
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
26
|
+
|
|
27
|
+
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
28
|
+
|
|
29
|
+
function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
|
|
30
|
+
|
|
31
|
+
function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
|
|
32
|
+
|
|
33
|
+
function renderRoutes(routesConfig, extraProps = {}) {
|
|
34
|
+
const Layout = _ref => {
|
|
35
|
+
let {
|
|
36
|
+
Component
|
|
37
|
+
} = _ref,
|
|
38
|
+
props = _objectWithoutProperties(_ref, _excluded);
|
|
39
|
+
|
|
40
|
+
const GlobalLayout = routesConfig === null || routesConfig === void 0 ? void 0 : routesConfig.globalApp;
|
|
41
|
+
|
|
42
|
+
if (!GlobalLayout) {
|
|
43
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(Component, _objectSpread({}, props));
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(GlobalLayout, _objectSpread({
|
|
47
|
+
Component: Component
|
|
48
|
+
}, props));
|
|
49
|
+
};
|
|
50
|
+
|
|
51
|
+
const findMatchedRoute = pathname => {
|
|
52
|
+
var _routesConfig$routes;
|
|
53
|
+
|
|
54
|
+
return routesConfig === null || routesConfig === void 0 ? void 0 : (_routesConfig$routes = routesConfig.routes) === null || _routesConfig$routes === void 0 ? void 0 : _routesConfig$routes.find(route => {
|
|
55
|
+
const info = (0, _reactRouterDom.matchPath)(pathname, {
|
|
56
|
+
path: route.path,
|
|
57
|
+
exact: route.exact,
|
|
58
|
+
sensitive: route.sensitive
|
|
59
|
+
});
|
|
60
|
+
return Boolean(info);
|
|
61
|
+
});
|
|
62
|
+
};
|
|
63
|
+
|
|
64
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactRouterDom.Route, {
|
|
65
|
+
path: "/",
|
|
66
|
+
render: props => {
|
|
67
|
+
const matchedRoute = findMatchedRoute(props.location.pathname);
|
|
68
|
+
|
|
69
|
+
if (!matchedRoute) {
|
|
70
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_DefaultNotFound.DefaultNotFound, {});
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactRouterDom.Route, {
|
|
74
|
+
path: matchedRoute.path,
|
|
75
|
+
exact: matchedRoute.exact,
|
|
76
|
+
sensitive: matchedRoute.sensitive,
|
|
77
|
+
render: routeProps => /*#__PURE__*/(0, _jsxRuntime.jsx)(Layout, _objectSpread(_objectSpread({
|
|
78
|
+
Component: matchedRoute.component
|
|
79
|
+
}, routeProps), extraProps))
|
|
80
|
+
});
|
|
81
|
+
}
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
function getLocation(serverContext) {
|
|
86
|
+
const {
|
|
87
|
+
pathname,
|
|
88
|
+
url
|
|
89
|
+
} = (serverContext === null || serverContext === void 0 ? void 0 : serverContext.request) || {};
|
|
90
|
+
const cleanUrl = url.replace('http://', '').replace('https://', '');
|
|
91
|
+
const index = (cleanUrl || '').indexOf(pathname);
|
|
92
|
+
|
|
93
|
+
if (index === -1) {
|
|
94
|
+
return pathname;
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
return cleanUrl.substring(index);
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
const urlJoin = (...parts) => {
|
|
101
|
+
const separator = '/';
|
|
102
|
+
const replace = new RegExp(`${separator}{1,}`, 'g');
|
|
103
|
+
return standardSlash(parts.join(separator).replace(replace, separator));
|
|
104
|
+
};
|
|
105
|
+
|
|
106
|
+
exports.urlJoin = urlJoin;
|
|
107
|
+
|
|
108
|
+
function standardSlash(str) {
|
|
109
|
+
let addr = str;
|
|
110
|
+
|
|
111
|
+
if (!addr || typeof addr !== 'string') {
|
|
112
|
+
return addr;
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
if (addr.startsWith('.')) {
|
|
116
|
+
addr = addr.slice(1);
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
if (!addr.startsWith('/')) {
|
|
120
|
+
addr = `/${addr}`;
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
if (addr.endsWith('/') && addr !== '/') {
|
|
124
|
+
addr = addr.slice(0, addr.length - 1);
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
return addr;
|
|
128
|
+
}
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
|
|
8
|
+
var _path = _interopRequireDefault(require("path"));
|
|
9
|
+
|
|
10
|
+
var _utils = require("@modern-js/utils");
|
|
11
|
+
|
|
12
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
13
|
+
|
|
14
|
+
const PLUGIN_IDENTIFIER = 'ssr';
|
|
15
|
+
|
|
16
|
+
var _default = () => ({
|
|
17
|
+
name: '@modern-js/plugin-ssr',
|
|
18
|
+
required: ['@modern-js/runtime'],
|
|
19
|
+
setup: api => {
|
|
20
|
+
const ssrConfigMap = new Map();
|
|
21
|
+
let pluginsExportsUtils;
|
|
22
|
+
|
|
23
|
+
const ssrModulePath = _path.default.resolve(__dirname, '../');
|
|
24
|
+
|
|
25
|
+
return {
|
|
26
|
+
config() {
|
|
27
|
+
const appContext = api.useAppContext();
|
|
28
|
+
pluginsExportsUtils = (0, _utils.createRuntimeExportsUtils)(appContext.internalDirectory, 'plugins');
|
|
29
|
+
return {
|
|
30
|
+
source: {
|
|
31
|
+
alias: {
|
|
32
|
+
'@modern-js/runtime/plugins': pluginsExportsUtils.getPath()
|
|
33
|
+
}
|
|
34
|
+
},
|
|
35
|
+
tools: {
|
|
36
|
+
webpackChain: (chain, {
|
|
37
|
+
name,
|
|
38
|
+
CHAIN_ID
|
|
39
|
+
}) => {
|
|
40
|
+
const userConfig = api.useResolvedConfigContext();
|
|
41
|
+
|
|
42
|
+
if ((0, _utils.isUseSSRBundle)(userConfig) && name !== 'server') {
|
|
43
|
+
// eslint-disable-next-line @typescript-eslint/no-require-imports, @typescript-eslint/no-var-requires
|
|
44
|
+
const LoadableWebpackPlugin = require('@modern-js/webpack/@loadable/webpack-plugin');
|
|
45
|
+
|
|
46
|
+
chain.plugin(CHAIN_ID.PLUGIN.LOADABLE).use(LoadableWebpackPlugin, [{
|
|
47
|
+
filename: _utils.LOADABLE_STATS_FILE
|
|
48
|
+
}]);
|
|
49
|
+
}
|
|
50
|
+
},
|
|
51
|
+
babel: config => {
|
|
52
|
+
const userConfig = api.useResolvedConfigContext();
|
|
53
|
+
|
|
54
|
+
if ((0, _utils.isUseSSRBundle)(userConfig)) {
|
|
55
|
+
config.plugins.push(require.resolve('@loadable/babel-plugin'));
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
};
|
|
60
|
+
},
|
|
61
|
+
|
|
62
|
+
modifyEntryImports({
|
|
63
|
+
entrypoint,
|
|
64
|
+
imports
|
|
65
|
+
}) {
|
|
66
|
+
const {
|
|
67
|
+
entryName
|
|
68
|
+
} = entrypoint;
|
|
69
|
+
const userConfig = api.useResolvedConfigContext();
|
|
70
|
+
const {
|
|
71
|
+
packageName,
|
|
72
|
+
entrypoints
|
|
73
|
+
} = api.useAppContext();
|
|
74
|
+
pluginsExportsUtils.addExport(`export { default as ssr } from '${ssrModulePath}'`); // if use ssg then set ssr config to true
|
|
75
|
+
|
|
76
|
+
const ssrConfig = (0, _utils.getEntryOptions)(entryName, userConfig.server.ssr, userConfig.server.ssrByEntries, packageName);
|
|
77
|
+
const ssgConfig = userConfig.output.ssg;
|
|
78
|
+
const useSSG = (0, _utils.isSingleEntry)(entrypoints) ? Boolean(ssgConfig) : ssgConfig === true || typeof (ssgConfig === null || ssgConfig === void 0 ? void 0 : ssgConfig[0]) === 'function' || Boolean(ssgConfig === null || ssgConfig === void 0 ? void 0 : ssgConfig[entryName]);
|
|
79
|
+
ssrConfigMap.set(entryName, ssrConfig || useSSG);
|
|
80
|
+
|
|
81
|
+
if (ssrConfig || useSSG) {
|
|
82
|
+
imports.push({
|
|
83
|
+
value: '@modern-js/runtime/plugins',
|
|
84
|
+
specifiers: [{
|
|
85
|
+
imported: PLUGIN_IDENTIFIER
|
|
86
|
+
}]
|
|
87
|
+
});
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
return {
|
|
91
|
+
entrypoint,
|
|
92
|
+
imports
|
|
93
|
+
};
|
|
94
|
+
},
|
|
95
|
+
|
|
96
|
+
modifyEntryRuntimePlugins({
|
|
97
|
+
entrypoint,
|
|
98
|
+
plugins
|
|
99
|
+
}) {
|
|
100
|
+
if (ssrConfigMap.get(entrypoint.entryName)) {
|
|
101
|
+
plugins.push({
|
|
102
|
+
name: PLUGIN_IDENTIFIER,
|
|
103
|
+
options: ssrConfigMap.get(entrypoint.entryName)
|
|
104
|
+
});
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
return {
|
|
108
|
+
entrypoint,
|
|
109
|
+
plugins
|
|
110
|
+
};
|
|
111
|
+
},
|
|
112
|
+
|
|
113
|
+
modifyEntryExport({
|
|
114
|
+
entrypoint,
|
|
115
|
+
exportStatement
|
|
116
|
+
}) {
|
|
117
|
+
if (ssrConfigMap.get(entrypoint.entryName)) {
|
|
118
|
+
return {
|
|
119
|
+
entrypoint,
|
|
120
|
+
exportStatement: [`export function ${_utils.SERVER_RENDER_FUNCTION_NAME}(context) {
|
|
121
|
+
return bootstrap(AppWrapper, context)
|
|
122
|
+
}`, exportStatement].join('\n')
|
|
123
|
+
};
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
return {
|
|
127
|
+
entrypoint,
|
|
128
|
+
exportStatement
|
|
129
|
+
};
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
};
|
|
133
|
+
}
|
|
134
|
+
});
|
|
135
|
+
|
|
136
|
+
exports.default = _default;
|
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
var _exportNames = {};
|
|
7
|
+
exports.default = void 0;
|
|
8
|
+
|
|
9
|
+
var _reactDom = _interopRequireDefault(require("react-dom"));
|
|
10
|
+
|
|
11
|
+
var _component = require("@loadable/component");
|
|
12
|
+
|
|
13
|
+
var _type = require("./serverRender/type");
|
|
14
|
+
|
|
15
|
+
var _utils = require("./utils");
|
|
16
|
+
|
|
17
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
18
|
+
|
|
19
|
+
var _react = require("./react");
|
|
20
|
+
|
|
21
|
+
Object.keys(_react).forEach(function (key) {
|
|
22
|
+
if (key === "default" || key === "__esModule") return;
|
|
23
|
+
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
|
24
|
+
if (key in exports && exports[key] === _react[key]) return;
|
|
25
|
+
Object.defineProperty(exports, key, {
|
|
26
|
+
enumerable: true,
|
|
27
|
+
get: function () {
|
|
28
|
+
return _react[key];
|
|
29
|
+
}
|
|
30
|
+
});
|
|
31
|
+
});
|
|
32
|
+
|
|
33
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
34
|
+
|
|
35
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
36
|
+
|
|
37
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
38
|
+
|
|
39
|
+
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
40
|
+
|
|
41
|
+
const ssr = () => ({
|
|
42
|
+
name: '@modern-js/plugin-ssr',
|
|
43
|
+
setup: () => {
|
|
44
|
+
const mockResp = (0, _utils.mockResponse)();
|
|
45
|
+
return {
|
|
46
|
+
client: async ({
|
|
47
|
+
App,
|
|
48
|
+
context,
|
|
49
|
+
rootElement
|
|
50
|
+
}) => {
|
|
51
|
+
var _window, _window$_SSR_DATA;
|
|
52
|
+
|
|
53
|
+
const renderLevel = (_window = window) === null || _window === void 0 ? void 0 : (_window$_SSR_DATA = _window._SSR_DATA) === null || _window$_SSR_DATA === void 0 ? void 0 : _window$_SSR_DATA.renderLevel;
|
|
54
|
+
|
|
55
|
+
if (renderLevel === _type.RenderLevel.CLIENT_RENDER) {
|
|
56
|
+
var _prefetch, _ref;
|
|
57
|
+
|
|
58
|
+
await (App === null || App === void 0 ? void 0 : (_prefetch = (_ref = App).prefetch) === null || _prefetch === void 0 ? void 0 : _prefetch.call(_ref, context));
|
|
59
|
+
|
|
60
|
+
_reactDom.default.render( /*#__PURE__*/(0, _jsxRuntime.jsx)(App, {
|
|
61
|
+
context: context
|
|
62
|
+
}), rootElement);
|
|
63
|
+
} else if (renderLevel === _type.RenderLevel.SERVER_RENDER) {
|
|
64
|
+
(0, _component.loadableReady)(() => {
|
|
65
|
+
const hydrateContext = _objectSpread(_objectSpread({}, context), {}, {
|
|
66
|
+
_hydration: true
|
|
67
|
+
});
|
|
68
|
+
|
|
69
|
+
_reactDom.default.hydrate( /*#__PURE__*/(0, _jsxRuntime.jsx)(App, {
|
|
70
|
+
context: hydrateContext
|
|
71
|
+
}), rootElement, () => {
|
|
72
|
+
// won't cause component re-render because context's reference identity doesn't change
|
|
73
|
+
delete hydrateContext._hydration;
|
|
74
|
+
});
|
|
75
|
+
});
|
|
76
|
+
} else {
|
|
77
|
+
// unknown renderlevel or renderlevel is server prefetch.
|
|
78
|
+
_reactDom.default.render( /*#__PURE__*/(0, _jsxRuntime.jsx)(App, {
|
|
79
|
+
context: context
|
|
80
|
+
}), rootElement);
|
|
81
|
+
}
|
|
82
|
+
},
|
|
83
|
+
|
|
84
|
+
init({
|
|
85
|
+
context
|
|
86
|
+
}, next) {
|
|
87
|
+
var _window2, _window2$_SSR_DATA, _window2$_SSR_DATA$co;
|
|
88
|
+
|
|
89
|
+
const request = (_window2 = window) === null || _window2 === void 0 ? void 0 : (_window2$_SSR_DATA = _window2._SSR_DATA) === null || _window2$_SSR_DATA === void 0 ? void 0 : (_window2$_SSR_DATA$co = _window2$_SSR_DATA.context) === null || _window2$_SSR_DATA$co === void 0 ? void 0 : _window2$_SSR_DATA$co.request;
|
|
90
|
+
|
|
91
|
+
if (!request) {
|
|
92
|
+
return next({
|
|
93
|
+
context
|
|
94
|
+
});
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
context.ssrContext.response = mockResp;
|
|
98
|
+
context.ssrContext.request = (0, _utils.formatClient)(request);
|
|
99
|
+
return next({
|
|
100
|
+
context
|
|
101
|
+
});
|
|
102
|
+
},
|
|
103
|
+
|
|
104
|
+
pickContext: ({
|
|
105
|
+
context,
|
|
106
|
+
pickedContext
|
|
107
|
+
}, next) => {
|
|
108
|
+
var _window3, _window3$_SSR_DATA, _window3$_SSR_DATA$co;
|
|
109
|
+
|
|
110
|
+
const request = (_window3 = window) === null || _window3 === void 0 ? void 0 : (_window3$_SSR_DATA = _window3._SSR_DATA) === null || _window3$_SSR_DATA === void 0 ? void 0 : (_window3$_SSR_DATA$co = _window3$_SSR_DATA.context) === null || _window3$_SSR_DATA$co === void 0 ? void 0 : _window3$_SSR_DATA$co.request;
|
|
111
|
+
const {
|
|
112
|
+
initialData
|
|
113
|
+
} = context;
|
|
114
|
+
|
|
115
|
+
if (!request) {
|
|
116
|
+
return next({
|
|
117
|
+
context,
|
|
118
|
+
pickedContext: _objectSpread(_objectSpread({}, pickedContext), {}, {
|
|
119
|
+
initialData
|
|
120
|
+
})
|
|
121
|
+
});
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
return next({
|
|
125
|
+
context,
|
|
126
|
+
pickedContext: _objectSpread(_objectSpread({}, pickedContext), {}, {
|
|
127
|
+
initialData,
|
|
128
|
+
request,
|
|
129
|
+
response: mockResp
|
|
130
|
+
})
|
|
131
|
+
});
|
|
132
|
+
}
|
|
133
|
+
};
|
|
134
|
+
}
|
|
135
|
+
});
|
|
136
|
+
|
|
137
|
+
var _default = ssr;
|
|
138
|
+
exports.default = _default;
|