@modern-js/runtime 1.21.5 → 2.0.0-beta.1
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 +117 -18
- package/dist/js/modern/cli/index.js +3 -5
- package/dist/js/modern/core/app-config.js +2 -1
- package/dist/js/modern/core/compatible.js +47 -48
- package/dist/js/modern/core/index.js +4 -3
- package/dist/js/modern/core/loader/loaderManager.js +12 -34
- package/dist/js/modern/core/loader/useLoader.js +8 -26
- package/dist/js/modern/core/plugin.js +6 -28
- package/dist/js/modern/document/Body.js +17 -0
- package/dist/js/modern/document/DocumentContext.js +6 -0
- package/dist/js/modern/document/DocumentStructrueContext.js +7 -0
- package/dist/js/modern/document/Head.js +24 -0
- package/dist/js/modern/document/Html.js +92 -0
- package/dist/js/modern/document/Root.js +31 -0
- package/dist/js/modern/document/Scripts.js +10 -0
- package/dist/js/modern/document/cli/index.js +130 -0
- package/dist/js/modern/document/constants.js +19 -0
- package/dist/js/modern/document/index.js +8 -0
- package/dist/js/modern/index.js +2 -1
- package/dist/js/modern/router/cli/index.js +20 -20
- package/dist/js/modern/router/runtime/index.js +1 -1
- package/dist/js/modern/router/runtime/plugin.js +25 -52
- package/dist/js/modern/router/runtime/plugin.node.js +137 -0
- package/dist/js/modern/router/runtime/root/index.js +19 -0
- package/dist/js/modern/router/runtime/root/load.js +61 -0
- package/dist/js/modern/router/runtime/types.js +1 -0
- package/dist/js/modern/router/runtime/utils.js +99 -58
- package/dist/js/modern/router/runtime/withRouter.js +20 -0
- package/dist/js/modern/runtime-context.js +2 -1
- package/dist/js/modern/ssr/cli/index.js +35 -17
- package/dist/js/modern/ssr/index.js +64 -51
- package/dist/js/modern/ssr/index.node.js +6 -15
- package/dist/js/modern/ssr/prefetch.js +0 -7
- package/dist/js/modern/ssr/react/prerender/index.js +2 -23
- package/dist/js/modern/ssr/react/prerender/util.js +2 -17
- package/dist/js/modern/ssr/react/withCallback/index.js +0 -1
- package/dist/js/modern/ssr/serverRender/helmet.js +12 -20
- package/dist/js/modern/ssr/serverRender/index.js +12 -27
- package/dist/js/modern/ssr/serverRender/renderToStream/buildTemplate.after.js +38 -0
- package/dist/js/modern/ssr/serverRender/renderToStream/buildTemplate.share.js +5 -0
- package/dist/js/modern/ssr/serverRender/renderToStream/bulidTemplate.before.js +58 -0
- package/dist/js/modern/ssr/serverRender/renderToStream/index.js +40 -0
- package/dist/js/modern/ssr/serverRender/renderToStream/loadable.js +24 -0
- package/dist/js/modern/ssr/serverRender/renderToStream/renderToPipe.js +72 -0
- package/dist/js/modern/ssr/serverRender/renderToStream/styledComponent.js +11 -0
- package/dist/js/modern/ssr/serverRender/renderToStream/template.js +18 -0
- package/dist/js/modern/ssr/serverRender/renderToStream/type.js +0 -0
- package/dist/js/modern/ssr/serverRender/{entry.js → renderToString/entry.js} +6 -40
- package/dist/js/modern/ssr/serverRender/renderToString/index.js +29 -0
- package/dist/js/modern/ssr/serverRender/{loadable.js → renderToString/loadable.js} +2 -24
- package/dist/js/modern/ssr/serverRender/{reduce.js → renderToString/reduce.js} +0 -2
- package/dist/js/modern/ssr/serverRender/{styledComponent.js → renderToString/styledComponent.js} +0 -0
- package/dist/js/modern/ssr/serverRender/{template.js → renderToString/template.js} +0 -15
- package/dist/js/modern/ssr/serverRender/{type.js → renderToString/type.js} +0 -2
- package/dist/js/modern/ssr/serverRender/types.js +2 -0
- package/dist/js/modern/ssr/serverRender/utils.js +20 -0
- package/dist/js/modern/ssr/utils.js +8 -13
- package/dist/js/modern/state/cli/index.js +0 -10
- package/dist/js/modern/state/runtime/plugin.js +1 -14
- package/dist/js/node/cli/index.js +3 -13
- package/dist/js/node/common.js +0 -2
- package/dist/js/node/core/app-config.js +2 -5
- package/dist/js/node/core/compatible.js +47 -66
- package/dist/js/node/core/index.js +8 -17
- package/dist/js/node/core/loader/index.js +0 -2
- package/dist/js/node/core/loader/loaderManager.js +12 -37
- package/dist/js/node/core/loader/useLoader.js +8 -31
- package/dist/js/node/core/plugin.js +5 -34
- package/dist/js/node/document/Body.js +26 -0
- package/dist/js/node/document/DocumentContext.js +14 -0
- package/dist/js/node/document/DocumentStructrueContext.js +15 -0
- package/dist/js/node/document/Head.js +33 -0
- package/dist/js/node/document/Html.js +98 -0
- package/dist/js/node/document/Root.js +41 -0
- package/dist/js/node/document/Scripts.js +17 -0
- package/dist/js/node/document/cli/index.js +140 -0
- package/dist/js/node/document/constants.js +36 -0
- package/dist/js/node/document/index.js +93 -0
- package/dist/js/node/exports/head.js +0 -5
- package/dist/js/node/exports/loadable.js +0 -5
- package/dist/js/node/exports/server.js +0 -2
- package/dist/js/node/exports/styled.js +0 -5
- package/dist/js/node/index.js +5 -5
- package/dist/js/node/router/cli/index.js +20 -24
- package/dist/js/node/router/index.js +0 -4
- package/dist/js/node/router/runtime/DefaultNotFound.js +1 -5
- package/dist/js/node/router/runtime/index.js +4 -9
- package/dist/js/node/router/runtime/plugin.js +23 -65
- package/dist/js/node/router/runtime/plugin.node.js +147 -0
- package/dist/js/node/router/runtime/root/index.js +26 -0
- package/dist/js/node/router/runtime/root/load.js +69 -0
- package/dist/js/node/router/runtime/types.js +5 -0
- package/dist/js/node/router/runtime/utils.js +101 -67
- package/dist/js/node/router/runtime/withRouter.js +26 -0
- package/dist/js/node/runtime-context.js +4 -4
- package/dist/js/node/ssr/cli/index.js +35 -21
- package/dist/js/node/ssr/index.js +63 -62
- package/dist/js/node/ssr/index.node.js +6 -25
- package/dist/js/node/ssr/prefetch.js +0 -11
- package/dist/js/node/ssr/react/index.js +0 -2
- package/dist/js/node/ssr/react/nossr/index.js +0 -6
- package/dist/js/node/ssr/react/prerender/index.js +2 -30
- package/dist/js/node/ssr/react/prerender/util.js +2 -25
- package/dist/js/node/ssr/react/withCallback/index.js +1 -4
- package/dist/js/node/ssr/serverRender/helmet.js +13 -20
- package/dist/js/node/ssr/serverRender/index.js +14 -39
- package/dist/js/node/ssr/serverRender/renderToStream/buildTemplate.after.js +45 -0
- package/dist/js/node/ssr/serverRender/renderToStream/buildTemplate.share.js +13 -0
- package/dist/js/node/ssr/serverRender/renderToStream/bulidTemplate.before.js +65 -0
- package/dist/js/node/ssr/serverRender/renderToStream/index.js +48 -0
- package/dist/js/node/ssr/serverRender/renderToStream/loadable.js +30 -0
- package/dist/js/node/ssr/serverRender/renderToStream/renderToPipe.js +79 -0
- package/dist/js/node/ssr/serverRender/renderToStream/styledComponent.js +17 -0
- package/dist/js/node/ssr/serverRender/renderToStream/template.js +25 -0
- package/dist/js/node/ssr/serverRender/renderToStream/type.js +0 -0
- package/dist/js/node/ssr/serverRender/{entry.js → renderToString/entry.js} +13 -64
- package/dist/js/node/ssr/serverRender/renderToString/index.js +37 -0
- package/dist/js/node/ssr/serverRender/{loadable.js → renderToString/loadable.js} +3 -28
- package/dist/js/node/ssr/serverRender/{reduce.js → renderToString/reduce.js} +0 -3
- package/dist/js/node/ssr/serverRender/{styledComponent.js → renderToString/styledComponent.js} +0 -3
- package/dist/js/node/ssr/serverRender/{template.js → renderToString/template.js} +0 -18
- package/dist/js/node/ssr/serverRender/{type.js → renderToString/type.js} +0 -2
- package/dist/js/node/ssr/serverRender/types.js +12 -0
- package/dist/js/node/ssr/serverRender/utils.js +28 -0
- package/dist/js/node/ssr/utils.js +10 -21
- package/dist/js/node/state/cli/index.js +0 -15
- package/dist/js/node/state/index.js +0 -4
- package/dist/js/node/state/plugins.js +0 -11
- package/dist/js/node/state/runtime/index.js +0 -7
- package/dist/js/node/state/runtime/plugin.js +1 -25
- package/dist/js/treeshaking/cli/index.js +3 -3
- package/dist/js/treeshaking/core/app-config.js +2 -1
- package/dist/js/treeshaking/core/compatible.js +50 -65
- package/dist/js/treeshaking/core/index.js +4 -3
- package/dist/js/treeshaking/core/loader/loaderManager.js +19 -51
- package/dist/js/treeshaking/core/loader/useLoader.js +11 -28
- package/dist/js/treeshaking/core/plugin.js +6 -51
- package/dist/js/treeshaking/document/Body.js +14 -0
- package/dist/js/treeshaking/document/DocumentContext.js +6 -0
- package/dist/js/treeshaking/document/DocumentStructrueContext.js +7 -0
- package/dist/js/treeshaking/document/Head.js +21 -0
- package/dist/js/treeshaking/document/Html.js +104 -0
- package/dist/js/treeshaking/document/Root.js +24 -0
- package/dist/js/treeshaking/document/Scripts.js +10 -0
- package/dist/js/treeshaking/document/cli/index.js +170 -0
- package/dist/js/treeshaking/document/constants.js +16 -0
- package/dist/js/treeshaking/document/index.js +8 -0
- package/dist/js/treeshaking/index.js +2 -1
- package/dist/js/treeshaking/router/cli/index.js +26 -22
- package/dist/js/treeshaking/router/runtime/index.js +1 -1
- package/dist/js/treeshaking/router/runtime/plugin.js +28 -54
- package/dist/js/treeshaking/router/runtime/plugin.node.js +161 -0
- package/dist/js/treeshaking/router/runtime/root/index.js +17 -0
- package/dist/js/treeshaking/router/runtime/root/load.js +102 -0
- package/dist/js/treeshaking/router/runtime/types.js +1 -0
- package/dist/js/treeshaking/router/runtime/utils.js +104 -58
- package/dist/js/treeshaking/router/runtime/withRouter.js +18 -0
- package/dist/js/treeshaking/runtime-context.js +2 -1
- package/dist/js/treeshaking/ssr/cli/index.js +43 -23
- package/dist/js/treeshaking/ssr/index.js +74 -59
- package/dist/js/treeshaking/ssr/index.node.js +18 -31
- package/dist/js/treeshaking/ssr/prefetch.js +0 -13
- package/dist/js/treeshaking/ssr/react/nossr/index.js +3 -4
- package/dist/js/treeshaking/ssr/react/prerender/index.js +2 -21
- package/dist/js/treeshaking/ssr/react/prerender/util.js +3 -20
- package/dist/js/treeshaking/ssr/react/withCallback/index.js +1 -2
- package/dist/js/treeshaking/ssr/serverRender/helmet.js +12 -11
- package/dist/js/treeshaking/ssr/serverRender/index.js +33 -55
- package/dist/js/treeshaking/ssr/serverRender/renderToStream/buildTemplate.after.js +32 -0
- package/dist/js/treeshaking/ssr/serverRender/renderToStream/buildTemplate.share.js +7 -0
- package/dist/js/treeshaking/ssr/serverRender/renderToStream/bulidTemplate.before.js +60 -0
- package/dist/js/treeshaking/ssr/serverRender/renderToStream/index.js +50 -0
- package/dist/js/treeshaking/ssr/serverRender/renderToStream/loadable.js +22 -0
- package/dist/js/treeshaking/ssr/serverRender/renderToStream/renderToPipe.js +68 -0
- package/dist/js/treeshaking/ssr/serverRender/renderToStream/styledComponent.js +10 -0
- package/dist/js/treeshaking/ssr/serverRender/renderToStream/template.js +22 -0
- package/dist/js/treeshaking/ssr/serverRender/renderToStream/type.js +0 -0
- package/dist/js/treeshaking/ssr/serverRender/{entry.js → renderToString/entry.js} +23 -76
- package/dist/js/treeshaking/ssr/serverRender/renderToString/index.js +44 -0
- package/dist/js/treeshaking/ssr/serverRender/{loadable.js → renderToString/loadable.js} +7 -34
- package/dist/js/treeshaking/ssr/serverRender/{reduce.js → renderToString/reduce.js} +0 -2
- package/dist/js/treeshaking/ssr/serverRender/{styledComponent.js → renderToString/styledComponent.js} +0 -0
- package/dist/js/treeshaking/ssr/serverRender/{template.js → renderToString/template.js} +2 -18
- package/dist/js/treeshaking/ssr/serverRender/{type.js → renderToString/type.js} +0 -2
- package/dist/js/treeshaking/ssr/serverRender/types.js +2 -0
- package/dist/js/treeshaking/ssr/serverRender/utils.js +28 -0
- package/dist/js/treeshaking/ssr/utils.js +20 -17
- package/dist/js/treeshaking/state/cli/index.js +3 -10
- package/dist/js/treeshaking/state/runtime/plugin.js +2 -10
- package/dist/types/cli/index.d.ts +0 -2
- package/dist/types/common.d.ts +0 -2
- package/dist/types/core/compatible.d.ts +2 -2
- package/dist/types/core/index.d.ts +2 -2
- package/dist/types/core/loader/loaderManager.d.ts +0 -1
- package/dist/types/core/loader/useLoader.d.ts +0 -5
- package/dist/types/core/plugin.d.ts +2 -14
- package/dist/types/document/Body.d.ts +4 -0
- package/dist/types/document/DocumentContext.d.ts +13 -0
- package/dist/types/document/DocumentStructrueContext.d.ts +10 -0
- package/dist/types/document/Head.d.ts +5 -0
- package/dist/types/document/Html.d.ts +4 -0
- package/dist/types/document/Root.d.ts +8 -0
- package/dist/types/document/Scripts.d.ts +2 -0
- package/dist/types/document/cli/index.d.ts +3 -0
- package/dist/types/document/constants.d.ts +14 -0
- package/dist/types/document/index.d.ts +8 -0
- package/dist/types/exports/server.d.ts +21 -1
- package/dist/types/index.d.ts +2 -1
- package/dist/types/router/cli/index.d.ts +0 -2
- package/dist/types/router/runtime/DefaultNotFound.d.ts +1 -0
- package/dist/types/router/runtime/index.d.ts +3 -3
- package/dist/types/router/runtime/plugin.d.ts +2 -45
- package/dist/types/router/runtime/plugin.node.d.ts +8 -0
- package/dist/types/router/runtime/root/index.d.ts +8 -0
- package/dist/types/router/runtime/root/load.d.ts +22 -0
- package/dist/types/router/runtime/types.d.ts +36 -0
- package/dist/types/router/runtime/utils.d.ts +5 -2
- package/dist/types/router/runtime/withRouter.d.ts +8 -0
- package/dist/types/runtime-context.d.ts +3 -1
- package/dist/types/ssr/cli/index.d.ts +0 -2
- package/dist/types/ssr/index.d.ts +2 -2
- package/dist/types/ssr/index.node.d.ts +1 -1
- package/dist/types/ssr/prefetch.d.ts +2 -2
- package/dist/types/ssr/react/nossr/index.d.ts +3 -1
- package/dist/types/ssr/serverRender/index.d.ts +2 -3
- package/dist/types/ssr/serverRender/renderToStream/buildTemplate.after.d.ts +7 -0
- package/dist/types/ssr/serverRender/renderToStream/buildTemplate.share.d.ts +3 -0
- package/dist/types/ssr/serverRender/renderToStream/bulidTemplate.before.d.ts +2 -0
- package/dist/types/ssr/serverRender/renderToStream/index.d.ts +6 -0
- package/dist/types/ssr/serverRender/renderToStream/loadable.d.ts +16 -0
- package/dist/types/ssr/serverRender/renderToStream/renderToPipe.d.ts +8 -0
- package/dist/types/ssr/serverRender/renderToStream/styledComponent.d.ts +12 -0
- package/dist/types/ssr/serverRender/renderToStream/template.d.ts +3 -0
- package/dist/types/ssr/serverRender/renderToStream/type.d.ts +4 -0
- package/dist/types/ssr/serverRender/{entry.d.ts → renderToString/entry.d.ts} +2 -2
- package/dist/types/ssr/serverRender/renderToString/index.d.ts +6 -0
- package/dist/types/ssr/serverRender/{loadable.d.ts → renderToString/loadable.d.ts} +0 -0
- package/dist/types/ssr/serverRender/{reduce.d.ts → renderToString/reduce.d.ts} +0 -0
- package/dist/types/ssr/serverRender/{styledComponent.d.ts → renderToString/styledComponent.d.ts} +0 -0
- package/dist/types/ssr/serverRender/{template.d.ts → renderToString/template.d.ts} +0 -0
- package/dist/types/ssr/serverRender/{type.d.ts → renderToString/type.d.ts} +1 -8
- package/dist/types/ssr/serverRender/types.d.ts +15 -0
- package/dist/types/ssr/serverRender/utils.d.ts +3 -0
- package/dist/types/ssr/utils.d.ts +4 -2
- package/dist/types/state/cli/index.d.ts +0 -2
- package/dist/types/state/runtime/plugin.d.ts +1 -1
- package/dist/types/state/types.d.ts +0 -1
- package/package.json +63 -71
- package/types/index.d.ts +13 -0
- package/types/router.d.ts +14 -0
- package/dist/js/modern/ssr/serverRender/measure.js +0 -11
- package/dist/js/node/ssr/serverRender/measure.js +0 -20
- package/dist/js/treeshaking/ssr/serverRender/measure.js +0 -17
- package/dist/types/ssr/serverRender/measure.d.ts +0 -1
- package/lib/types.d.ts +0 -10
- package/type.d.ts +0 -5
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
import _regeneratorRuntime from "@babel/runtime/helpers/esm/regeneratorRuntime";
|
|
2
|
+
import _asyncToGenerator from "@babel/runtime/helpers/esm/asyncToGenerator";
|
|
3
|
+
import _classCallCheck from "@babel/runtime/helpers/esm/classCallCheck";
|
|
4
|
+
import _createClass from "@babel/runtime/helpers/esm/createClass";
|
|
5
|
+
import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
|
|
6
|
+
import { matchRoutes } from 'react-router-dom';
|
|
7
|
+
var Logger = /*#__PURE__*/function () {
|
|
8
|
+
function Logger(options) {
|
|
9
|
+
_classCallCheck(this, Logger);
|
|
10
|
+
_defineProperty(this, "enableLogging", void 0);
|
|
11
|
+
this.enableLogging = options.enableLogging;
|
|
12
|
+
}
|
|
13
|
+
_createClass(Logger, [{
|
|
14
|
+
key: "log",
|
|
15
|
+
value: function log() {
|
|
16
|
+
if (this.enableLogging) {
|
|
17
|
+
var _console;
|
|
18
|
+
// eslint-disable-next-line no-console
|
|
19
|
+
(_console = console).log.apply(_console, arguments);
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
}], [{
|
|
23
|
+
key: "getLogger",
|
|
24
|
+
value: function getLogger(options) {
|
|
25
|
+
if (this.logger) {
|
|
26
|
+
return this.logger;
|
|
27
|
+
}
|
|
28
|
+
this.logger = new Logger(options);
|
|
29
|
+
return this.logger;
|
|
30
|
+
}
|
|
31
|
+
}]);
|
|
32
|
+
return Logger;
|
|
33
|
+
}();
|
|
34
|
+
_defineProperty(Logger, "logger", void 0);
|
|
35
|
+
export function handleLoad(routes, location, routeManifest) {
|
|
36
|
+
if (!routeManifest || !routeManifest.enableFetchParallel === false) {
|
|
37
|
+
return;
|
|
38
|
+
}
|
|
39
|
+
var routeAssets = routeManifest.routeAssets;
|
|
40
|
+
Logger.getLogger({
|
|
41
|
+
enableLogging: routeManifest.enableLogging
|
|
42
|
+
}).log('handle page load');
|
|
43
|
+
var matches = matchClientRoutes(routes, location);
|
|
44
|
+
matches === null || matches === void 0 ? void 0 : matches.forEach(function (match) {
|
|
45
|
+
return loadRouteModule(match.route, routeAssets);
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
export function matchClientRoutes(routes, location) {
|
|
49
|
+
var matches = matchRoutes(routes, location);
|
|
50
|
+
return matches;
|
|
51
|
+
}
|
|
52
|
+
export function loadRouteModule(_x, _x2) {
|
|
53
|
+
return _loadRouteModule.apply(this, arguments);
|
|
54
|
+
}
|
|
55
|
+
function _loadRouteModule() {
|
|
56
|
+
_loadRouteModule = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(route, routeAssets) {
|
|
57
|
+
var routeId, chunkIds;
|
|
58
|
+
return _regeneratorRuntime().wrap(function _callee$(_context) {
|
|
59
|
+
while (1) {
|
|
60
|
+
switch (_context.prev = _context.next) {
|
|
61
|
+
case 0:
|
|
62
|
+
routeId = route.id;
|
|
63
|
+
if (routeId) {
|
|
64
|
+
_context.next = 3;
|
|
65
|
+
break;
|
|
66
|
+
}
|
|
67
|
+
return _context.abrupt("return");
|
|
68
|
+
case 3:
|
|
69
|
+
if (routeAssets[routeId]) {
|
|
70
|
+
_context.next = 5;
|
|
71
|
+
break;
|
|
72
|
+
}
|
|
73
|
+
return _context.abrupt("return");
|
|
74
|
+
case 5:
|
|
75
|
+
chunkIds = routeAssets[routeId].chunkIds;
|
|
76
|
+
if (chunkIds) {
|
|
77
|
+
_context.next = 8;
|
|
78
|
+
break;
|
|
79
|
+
}
|
|
80
|
+
return _context.abrupt("return");
|
|
81
|
+
case 8:
|
|
82
|
+
_context.prev = 8;
|
|
83
|
+
_context.next = 11;
|
|
84
|
+
return Promise.all(chunkIds.map(function (chunkId) {
|
|
85
|
+
return __webpack_chunk_load__(String(chunkId));
|
|
86
|
+
}));
|
|
87
|
+
case 11:
|
|
88
|
+
_context.next = 16;
|
|
89
|
+
break;
|
|
90
|
+
case 13:
|
|
91
|
+
_context.prev = 13;
|
|
92
|
+
_context.t0 = _context["catch"](8);
|
|
93
|
+
console.error(_context.t0);
|
|
94
|
+
case 16:
|
|
95
|
+
case "end":
|
|
96
|
+
return _context.stop();
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
}, _callee, null, [[8, 13]]);
|
|
100
|
+
}));
|
|
101
|
+
return _loadRouteModule.apply(this, arguments);
|
|
102
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -1,108 +1,154 @@
|
|
|
1
|
-
import
|
|
1
|
+
import _createForOfIteratorHelper from "@babel/runtime/helpers/esm/createForOfIteratorHelper";
|
|
2
2
|
import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
|
|
3
|
+
import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
|
|
3
4
|
var _excluded = ["Component"];
|
|
4
|
-
|
|
5
|
-
import
|
|
6
|
-
import { Route, matchPath } from 'react-router-dom';
|
|
5
|
+
import React, { Suspense } from 'react';
|
|
6
|
+
import { Route } from 'react-router-dom';
|
|
7
7
|
import { DefaultNotFound } from "./DefaultNotFound";
|
|
8
|
+
import { RootLayout } from "./root";
|
|
8
9
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
9
|
-
|
|
10
|
-
var
|
|
11
|
-
|
|
10
|
+
var renderNestedRoute = function renderNestedRoute(nestedRoute, parent) {
|
|
11
|
+
var children = nestedRoute.children,
|
|
12
|
+
index = nestedRoute.index,
|
|
13
|
+
id = nestedRoute.id,
|
|
14
|
+
Component = nestedRoute.component;
|
|
15
|
+
var childElements = children === null || children === void 0 ? void 0 : children.map(function (childRoute) {
|
|
16
|
+
return renderNestedRoute(childRoute, nestedRoute);
|
|
17
|
+
});
|
|
18
|
+
var routeProps = {
|
|
19
|
+
caseSensitive: nestedRoute.caseSensitive,
|
|
20
|
+
path: nestedRoute.path,
|
|
21
|
+
id: nestedRoute.id,
|
|
22
|
+
loader: nestedRoute.loader,
|
|
23
|
+
action: nestedRoute.action,
|
|
24
|
+
hasErrorBoundary: nestedRoute.hasErrorBoundary,
|
|
25
|
+
shouldRevalidate: nestedRoute.shouldRevalidate,
|
|
26
|
+
handle: nestedRoute.handle,
|
|
27
|
+
index: nestedRoute.index,
|
|
28
|
+
errorElement: nestedRoute.errorElement
|
|
29
|
+
};
|
|
30
|
+
if (nestedRoute.error) {
|
|
31
|
+
var errorElement = /*#__PURE__*/_jsx(nestedRoute.error, {});
|
|
32
|
+
routeProps.errorElement = errorElement;
|
|
33
|
+
}
|
|
34
|
+
var element;
|
|
35
|
+
if (Component) {
|
|
36
|
+
if (parent !== null && parent !== void 0 && parent.loading) {
|
|
37
|
+
var Loading = parent.loading;
|
|
38
|
+
element = /*#__PURE__*/_jsx(Suspense, {
|
|
39
|
+
fallback: /*#__PURE__*/_jsx(Loading, {}),
|
|
40
|
+
children: /*#__PURE__*/_jsx(Component, {})
|
|
41
|
+
});
|
|
42
|
+
} else {
|
|
43
|
+
element = /*#__PURE__*/_jsx(Suspense, {
|
|
44
|
+
children: /*#__PURE__*/_jsx(Component, {})
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
if (!parent) {
|
|
49
|
+
element = /*#__PURE__*/_jsx(RootLayout, {
|
|
50
|
+
routes: [nestedRoute],
|
|
51
|
+
children: /*#__PURE__*/_jsx(Suspense, {
|
|
52
|
+
children: element
|
|
53
|
+
})
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
routeProps.element = element;
|
|
57
|
+
var routeElement = index ? /*#__PURE__*/_jsx(Route, _objectSpread(_objectSpread({}, routeProps), {}, {
|
|
58
|
+
index: true
|
|
59
|
+
}), id) : /*#__PURE__*/_jsx(Route, _objectSpread(_objectSpread({}, routeProps), {}, {
|
|
60
|
+
index: false,
|
|
61
|
+
children: childElements
|
|
62
|
+
}), id);
|
|
63
|
+
return routeElement;
|
|
64
|
+
};
|
|
65
|
+
export function getRouteComponents(routes, globalApp) {
|
|
12
66
|
var Layout = function Layout(_ref) {
|
|
13
67
|
var Component = _ref.Component,
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
var GlobalLayout = routesConfig === null || routesConfig === void 0 ? void 0 : routesConfig.globalApp;
|
|
17
|
-
|
|
68
|
+
props = _objectWithoutProperties(_ref, _excluded);
|
|
69
|
+
var GlobalLayout = globalApp;
|
|
18
70
|
if (!GlobalLayout) {
|
|
19
71
|
return /*#__PURE__*/_jsx(Component, _objectSpread({}, props));
|
|
20
72
|
}
|
|
21
|
-
|
|
22
73
|
return /*#__PURE__*/_jsx(GlobalLayout, _objectSpread({
|
|
23
74
|
Component: Component
|
|
24
75
|
}, props));
|
|
25
76
|
};
|
|
26
|
-
|
|
27
|
-
var
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
var
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
var matchedRoute = findMatchedRoute(props.location.pathname);
|
|
44
|
-
|
|
45
|
-
if (!matchedRoute) {
|
|
46
|
-
return /*#__PURE__*/_jsx(DefaultNotFound, {});
|
|
77
|
+
var routeElements = [];
|
|
78
|
+
var _iterator = _createForOfIteratorHelper(routes),
|
|
79
|
+
_step;
|
|
80
|
+
try {
|
|
81
|
+
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
82
|
+
var route = _step.value;
|
|
83
|
+
if (route.type === 'nested') {
|
|
84
|
+
var routeElement = renderNestedRoute(route);
|
|
85
|
+
routeElements.push(routeElement);
|
|
86
|
+
} else {
|
|
87
|
+
var _routeElement = /*#__PURE__*/_jsx(Route, {
|
|
88
|
+
path: route.path,
|
|
89
|
+
element: /*#__PURE__*/_jsx(Layout, {
|
|
90
|
+
Component: route.component
|
|
91
|
+
})
|
|
92
|
+
}, route.path);
|
|
93
|
+
routeElements.push(_routeElement);
|
|
47
94
|
}
|
|
48
|
-
|
|
49
|
-
return /*#__PURE__*/_jsx(Route, {
|
|
50
|
-
path: matchedRoute.path,
|
|
51
|
-
exact: matchedRoute.exact,
|
|
52
|
-
sensitive: matchedRoute.sensitive,
|
|
53
|
-
render: function render(routeProps) {
|
|
54
|
-
return /*#__PURE__*/_jsx(Layout, _objectSpread(_objectSpread({
|
|
55
|
-
Component: matchedRoute.component
|
|
56
|
-
}, routeProps), extraProps));
|
|
57
|
-
}
|
|
58
|
-
});
|
|
59
95
|
}
|
|
60
|
-
})
|
|
96
|
+
} catch (err) {
|
|
97
|
+
_iterator.e(err);
|
|
98
|
+
} finally {
|
|
99
|
+
_iterator.f();
|
|
100
|
+
}
|
|
101
|
+
routeElements.push( /*#__PURE__*/_jsx(Route, {
|
|
102
|
+
path: "*",
|
|
103
|
+
element: /*#__PURE__*/_jsx(DefaultNotFound, {})
|
|
104
|
+
}, "*"));
|
|
105
|
+
return routeElements;
|
|
106
|
+
}
|
|
107
|
+
export function renderRoutes(routesConfig) {
|
|
108
|
+
if (!routesConfig) {
|
|
109
|
+
return null;
|
|
110
|
+
}
|
|
111
|
+
var routes = routesConfig.routes,
|
|
112
|
+
globalApp = routesConfig.globalApp;
|
|
113
|
+
if (!routes) {
|
|
114
|
+
return null;
|
|
115
|
+
}
|
|
116
|
+
var routeElements = getRouteComponents(routes, globalApp);
|
|
117
|
+
return routeElements;
|
|
61
118
|
}
|
|
62
119
|
export function getLocation(serverContext) {
|
|
63
120
|
var _url$replace;
|
|
64
|
-
|
|
65
121
|
var _ref2 = (serverContext === null || serverContext === void 0 ? void 0 : serverContext.request) || {},
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
122
|
+
pathname = _ref2.pathname,
|
|
123
|
+
url = _ref2.url;
|
|
69
124
|
var cleanUrl = url === null || url === void 0 ? void 0 : (_url$replace = url.replace('http://', '')) === null || _url$replace === void 0 ? void 0 : _url$replace.replace('https://', '');
|
|
70
125
|
var index = (cleanUrl || '').indexOf(pathname);
|
|
71
|
-
|
|
72
126
|
if (index === -1) {
|
|
73
127
|
return pathname;
|
|
74
128
|
}
|
|
75
|
-
|
|
76
129
|
return cleanUrl.substring(index);
|
|
77
130
|
}
|
|
78
131
|
export var urlJoin = function urlJoin() {
|
|
79
132
|
var separator = '/';
|
|
80
133
|
var replace = new RegExp("".concat(separator, "{1,}"), 'g');
|
|
81
|
-
|
|
82
134
|
for (var _len = arguments.length, parts = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
83
135
|
parts[_key] = arguments[_key];
|
|
84
136
|
}
|
|
85
|
-
|
|
86
137
|
return standardSlash(parts.join(separator).replace(replace, separator));
|
|
87
138
|
};
|
|
88
139
|
export function standardSlash(str) {
|
|
89
140
|
var addr = str;
|
|
90
|
-
|
|
91
141
|
if (!addr || typeof addr !== 'string') {
|
|
92
142
|
return addr;
|
|
93
143
|
}
|
|
94
|
-
|
|
95
144
|
if (addr.startsWith('.')) {
|
|
96
145
|
addr = addr.slice(1);
|
|
97
146
|
}
|
|
98
|
-
|
|
99
147
|
if (!addr.startsWith('/')) {
|
|
100
148
|
addr = "/".concat(addr);
|
|
101
149
|
}
|
|
102
|
-
|
|
103
150
|
if (addr.endsWith('/') && addr !== '/') {
|
|
104
151
|
addr = addr.slice(0, addr.length - 1);
|
|
105
152
|
}
|
|
106
|
-
|
|
107
153
|
return addr;
|
|
108
154
|
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
|
|
2
|
+
// legacy withRouter
|
|
3
|
+
|
|
4
|
+
import React from 'react';
|
|
5
|
+
import { useLocation, useNavigate, useParams } from 'react-router-dom';
|
|
6
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
7
|
+
export var withRouter = function withRouter(Component) {
|
|
8
|
+
return function (props) {
|
|
9
|
+
var location = useLocation();
|
|
10
|
+
var params = useParams();
|
|
11
|
+
var navigate = useNavigate();
|
|
12
|
+
return /*#__PURE__*/_jsx(Component, _objectSpread(_objectSpread({}, props), {}, {
|
|
13
|
+
location: location,
|
|
14
|
+
params: params,
|
|
15
|
+
navigate: navigate
|
|
16
|
+
}));
|
|
17
|
+
};
|
|
18
|
+
};
|
|
@@ -1,5 +1,24 @@
|
|
|
1
|
+
import _typeof from "@babel/runtime/helpers/esm/typeof";
|
|
1
2
|
import { getEntryOptions, SERVER_RENDER_FUNCTION_NAME, LOADABLE_STATS_FILE, isUseSSRBundle, createRuntimeExportsUtils, isSingleEntry } from '@modern-js/utils';
|
|
2
3
|
var PLUGIN_IDENTIFIER = 'ssr';
|
|
4
|
+
var hasStringSSREntry = function hasStringSSREntry(userConfig) {
|
|
5
|
+
var isStreaming = function isStreaming(ssr) {
|
|
6
|
+
return ssr && _typeof(ssr) === 'object' && ssr.mode === 'stream';
|
|
7
|
+
};
|
|
8
|
+
var server = userConfig.server;
|
|
9
|
+
if (server !== null && server !== void 0 && server.ssr && !isStreaming(server.ssr)) {
|
|
10
|
+
return true;
|
|
11
|
+
}
|
|
12
|
+
if (server !== null && server !== void 0 && server.ssrByEntries && _typeof(server.ssrByEntries) === 'object') {
|
|
13
|
+
for (var _i = 0, _Object$keys = Object.keys(server.ssrByEntries); _i < _Object$keys.length; _i++) {
|
|
14
|
+
var name = _Object$keys[_i];
|
|
15
|
+
if (!isStreaming(server.ssrByEntries[name])) {
|
|
16
|
+
return true;
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
return false;
|
|
21
|
+
};
|
|
3
22
|
export default (function () {
|
|
4
23
|
return {
|
|
5
24
|
name: '@modern-js/plugin-ssr',
|
|
@@ -20,13 +39,11 @@ export default (function () {
|
|
|
20
39
|
tools: {
|
|
21
40
|
webpackChain: function webpackChain(chain, _ref) {
|
|
22
41
|
var name = _ref.name,
|
|
23
|
-
|
|
42
|
+
CHAIN_ID = _ref.CHAIN_ID;
|
|
24
43
|
var userConfig = api.useResolvedConfigContext();
|
|
25
|
-
|
|
26
|
-
if (isUseSSRBundle(userConfig) && name !== 'server') {
|
|
44
|
+
if (isUseSSRBundle(userConfig) && name !== 'server' && hasStringSSREntry(userConfig)) {
|
|
27
45
|
// eslint-disable-next-line @typescript-eslint/no-require-imports, @typescript-eslint/no-var-requires
|
|
28
|
-
var LoadableWebpackPlugin = require('@
|
|
29
|
-
|
|
46
|
+
var LoadableWebpackPlugin = require('@loadable/webpack-plugin');
|
|
30
47
|
chain.plugin(CHAIN_ID.PLUGIN.LOADABLE).use(LoadableWebpackPlugin, [{
|
|
31
48
|
filename: LOADABLE_STATS_FILE
|
|
32
49
|
}]);
|
|
@@ -34,8 +51,7 @@ export default (function () {
|
|
|
34
51
|
},
|
|
35
52
|
babel: function babel(config) {
|
|
36
53
|
var userConfig = api.useResolvedConfigContext();
|
|
37
|
-
|
|
38
|
-
if (isUseSSRBundle(userConfig)) {
|
|
54
|
+
if (isUseSSRBundle(userConfig) && hasStringSSREntry(userConfig)) {
|
|
39
55
|
config.plugins.push(require.resolve('@loadable/babel-plugin'));
|
|
40
56
|
}
|
|
41
57
|
}
|
|
@@ -44,21 +60,30 @@ export default (function () {
|
|
|
44
60
|
},
|
|
45
61
|
modifyEntryImports: function modifyEntryImports(_ref2) {
|
|
46
62
|
var entrypoint = _ref2.entrypoint,
|
|
47
|
-
|
|
48
|
-
var entryName = entrypoint.entryName
|
|
63
|
+
imports = _ref2.imports;
|
|
64
|
+
var entryName = entrypoint.entryName,
|
|
65
|
+
fileSystemRoutes = entrypoint.fileSystemRoutes;
|
|
49
66
|
var userConfig = api.useResolvedConfigContext();
|
|
50
|
-
|
|
51
67
|
var _api$useAppContext = api.useAppContext(),
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
pluginsExportsUtils.addExport("export { default as ssr } from '@modern-js/runtime/ssr'"); // if use ssg then set ssr config to true
|
|
68
|
+
packageName = _api$useAppContext.packageName,
|
|
69
|
+
entrypoints = _api$useAppContext.entrypoints;
|
|
70
|
+
pluginsExportsUtils.addExport("export { default as ssr } from '@modern-js/runtime/ssr'");
|
|
56
71
|
|
|
72
|
+
// if use ssg then set ssr config to true
|
|
57
73
|
var ssrConfig = getEntryOptions(entryName, userConfig.server.ssr, userConfig.server.ssrByEntries, packageName);
|
|
74
|
+
if (_typeof(ssrConfig) === 'object' && ssrConfig.mode === 'stream') {
|
|
75
|
+
var _runtimeConfig$router;
|
|
76
|
+
var runtimeConfig = getEntryOptions(entryName, userConfig.runtime, userConfig.runtimeByEntries, packageName);
|
|
77
|
+
if (runtimeConfig !== null && runtimeConfig !== void 0 && (_runtimeConfig$router = runtimeConfig.router) !== null && _runtimeConfig$router !== void 0 && _runtimeConfig$router.legacy) {
|
|
78
|
+
throw new Error("Legacy router plugin doesn't support streaming SSR, check your config 'runtime.router'");
|
|
79
|
+
}
|
|
80
|
+
if (fileSystemRoutes && !entrypoint.nestedRoutesEntry) {
|
|
81
|
+
throw new Error("You should switch to file-system based router to support streaming SSR.");
|
|
82
|
+
}
|
|
83
|
+
}
|
|
58
84
|
var ssgConfig = userConfig.output.ssg;
|
|
59
85
|
var useSSG = 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]);
|
|
60
86
|
ssrConfigMap.set(entryName, ssrConfig || useSSG);
|
|
61
|
-
|
|
62
87
|
if (ssrConfig || useSSG) {
|
|
63
88
|
imports.push({
|
|
64
89
|
value: '@modern-js/runtime/plugins',
|
|
@@ -67,7 +92,6 @@ export default (function () {
|
|
|
67
92
|
}]
|
|
68
93
|
});
|
|
69
94
|
}
|
|
70
|
-
|
|
71
95
|
return {
|
|
72
96
|
entrypoint: entrypoint,
|
|
73
97
|
imports: imports
|
|
@@ -75,15 +99,13 @@ export default (function () {
|
|
|
75
99
|
},
|
|
76
100
|
modifyEntryRuntimePlugins: function modifyEntryRuntimePlugins(_ref3) {
|
|
77
101
|
var entrypoint = _ref3.entrypoint,
|
|
78
|
-
|
|
79
|
-
|
|
102
|
+
plugins = _ref3.plugins;
|
|
80
103
|
if (ssrConfigMap.get(entrypoint.entryName)) {
|
|
81
104
|
plugins.push({
|
|
82
105
|
name: PLUGIN_IDENTIFIER,
|
|
83
|
-
options: ssrConfigMap.get(entrypoint.entryName)
|
|
106
|
+
options: JSON.stringify(ssrConfigMap.get(entrypoint.entryName))
|
|
84
107
|
});
|
|
85
108
|
}
|
|
86
|
-
|
|
87
109
|
return {
|
|
88
110
|
entrypoint: entrypoint,
|
|
89
111
|
plugins: plugins
|
|
@@ -91,15 +113,13 @@ export default (function () {
|
|
|
91
113
|
},
|
|
92
114
|
modifyEntryExport: function modifyEntryExport(_ref4) {
|
|
93
115
|
var entrypoint = _ref4.entrypoint,
|
|
94
|
-
|
|
95
|
-
|
|
116
|
+
exportStatement = _ref4.exportStatement;
|
|
96
117
|
if (ssrConfigMap.get(entrypoint.entryName)) {
|
|
97
118
|
return {
|
|
98
119
|
entrypoint: entrypoint,
|
|
99
120
|
exportStatement: ["export function ".concat(SERVER_RENDER_FUNCTION_NAME, "(context) {\n return bootstrap(AppWrapper, context)\n }"), exportStatement].join('\n')
|
|
100
121
|
};
|
|
101
122
|
}
|
|
102
|
-
|
|
103
123
|
return {
|
|
104
124
|
entrypoint: entrypoint,
|
|
105
125
|
exportStatement: exportStatement
|