@modern-js/runtime 2.17.1 → 2.18.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 +23 -0
- package/README.md +6 -0
- package/dist/cjs/router/runtime/DeferredDataScripts.node.js +6 -6
- package/dist/cjs/router/runtime/index.js +5 -5
- package/dist/cjs/router/runtime/plugin.js +2 -2
- package/dist/cjs/router/runtime/plugin.node.js +2 -2
- package/dist/cjs/router/runtime/utils.js +4 -5
- package/dist/cjs/ssr/cli/index.js +30 -15
- package/dist/cjs/ssr/cli/loadable-bundler-plugin.js +112 -0
- package/dist/cjs/ssr/index.js +3 -3
- package/dist/cjs/ssr/prefetch.js +2 -2
- package/dist/cjs/ssr/serverRender/renderToStream/buildTemplate.after.js +2 -2
- package/dist/cjs/ssr/serverRender/renderToStream/index.js +2 -2
- package/dist/cjs/ssr/serverRender/renderToString/entry.js +3 -3
- package/dist/cjs/ssr/serverRender/renderToString/index.js +2 -2
- package/dist/esm/core/compatible.js +13 -13
- package/dist/esm/core/loader/loaderManager.js +7 -7
- package/dist/esm/core/loader/useLoader.js +2 -2
- package/dist/esm/core/plugin.js +6 -6
- package/dist/esm/document/Html.js +5 -5
- package/dist/esm/document/cli/index.js +6 -6
- package/dist/esm/document/constants.js +1 -1
- package/dist/esm/router/cli/index.js +6 -6
- package/dist/esm/router/runtime/DeferredDataScripts.node.js +4 -4
- package/dist/esm/router/runtime/PrefetchLink.js +7 -7
- package/dist/esm/router/runtime/index.js +2 -2
- package/dist/esm/router/runtime/plugin.js +10 -10
- package/dist/esm/router/runtime/plugin.node.js +8 -8
- package/dist/esm/router/runtime/utils.js +7 -8
- package/dist/esm/router/runtime/withRouter.js +4 -4
- package/dist/esm/ssr/cli/index.js +37 -22
- package/dist/esm/ssr/cli/loadable-bundler-plugin.js +209 -0
- package/dist/esm/ssr/index.js +14 -14
- package/dist/esm/ssr/index.node.js +9 -9
- package/dist/esm/ssr/prefetch.js +4 -4
- package/dist/esm/ssr/react/prerender/index.js +1 -1
- package/dist/esm/ssr/serverRender/renderToStream/buildTemplate.after.js +4 -4
- package/dist/esm/ssr/serverRender/renderToStream/index.js +1 -1
- package/dist/esm/ssr/serverRender/renderToStream/loadable.js +1 -1
- package/dist/esm/ssr/serverRender/renderToStream/renderToPipe.js +1 -1
- package/dist/esm/ssr/serverRender/renderToStream/renderToPipe.worker.js +1 -1
- package/dist/esm/ssr/serverRender/renderToStream/template.js +2 -2
- package/dist/esm/ssr/serverRender/renderToString/entry.js +4 -4
- package/dist/esm/ssr/serverRender/renderToString/index.js +3 -3
- package/dist/esm/ssr/serverRender/renderToString/loadable.js +1 -1
- package/dist/esm/ssr/serverRender/renderToString/template.js +1 -1
- package/dist/esm/ssr/utils.js +4 -4
- package/dist/esm/state/cli/index.js +4 -4
- package/dist/esm/state/runtime/plugin.js +7 -7
- package/dist/esm-node/router/runtime/DeferredDataScripts.node.js +1 -1
- package/dist/esm-node/router/runtime/index.js +2 -2
- package/dist/esm-node/router/runtime/plugin.js +1 -1
- package/dist/esm-node/router/runtime/plugin.node.js +1 -1
- package/dist/esm-node/router/runtime/utils.js +1 -2
- package/dist/esm-node/ssr/cli/index.js +30 -15
- package/dist/esm-node/ssr/cli/loadable-bundler-plugin.js +103 -0
- package/dist/esm-node/ssr/index.js +1 -1
- package/dist/esm-node/ssr/prefetch.js +1 -1
- package/dist/esm-node/ssr/serverRender/renderToStream/buildTemplate.after.js +1 -1
- package/dist/esm-node/ssr/serverRender/renderToStream/index.js +1 -1
- package/dist/esm-node/ssr/serverRender/renderToString/entry.js +1 -1
- package/dist/esm-node/ssr/serverRender/renderToString/index.js +1 -1
- package/dist/types/router/runtime/index.d.ts +1 -1
- package/dist/types/router/runtime/utils.d.ts +1 -1
- package/dist/types/runtimeContext.d.ts +1 -1
- package/dist/types/ssr/cli/loadable-bundler-plugin.d.ts +10 -0
- package/package.json +9 -9
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,28 @@
|
|
|
1
1
|
# @modern-js/runtime
|
|
2
2
|
|
|
3
|
+
## 2.18.1
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- 8fb93d1: fix: replace route id correctly
|
|
8
|
+
fix: 正确地替换 route id
|
|
9
|
+
- @modern-js/plugin@2.18.1
|
|
10
|
+
- @modern-js/types@2.18.1
|
|
11
|
+
- @modern-js/utils@2.18.1
|
|
12
|
+
|
|
13
|
+
## 2.18.0
|
|
14
|
+
|
|
15
|
+
### Minor Changes
|
|
16
|
+
|
|
17
|
+
- 7de6599: feat: rspack-provider support modern.js ssr mode
|
|
18
|
+
feat: rspack-provider 支持 modern.js ssr 模式
|
|
19
|
+
|
|
20
|
+
### Patch Changes
|
|
21
|
+
|
|
22
|
+
- @modern-js/plugin@2.18.0
|
|
23
|
+
- @modern-js/types@2.18.0
|
|
24
|
+
- @modern-js/utils@2.18.0
|
|
25
|
+
|
|
3
26
|
## 2.17.1
|
|
4
27
|
|
|
5
28
|
### Patch Changes
|
package/README.md
CHANGED
|
@@ -24,3 +24,9 @@ Please read the [Contributing Guide](https://github.com/web-infra-dev/modern.js/
|
|
|
24
24
|
## License
|
|
25
25
|
|
|
26
26
|
Modern.js is [MIT licensed](https://github.com/web-infra-dev/modern.js/blob/main/LICENSE).
|
|
27
|
+
|
|
28
|
+
## Credist
|
|
29
|
+
|
|
30
|
+
Thanks to:
|
|
31
|
+
|
|
32
|
+
- [@loadable/webpack-plugin](https://github.com/gregberge/loadable-components) to create a webpack plugin prepare for loadable usage in ssr.
|
|
@@ -9,7 +9,7 @@ Object.defineProperty(exports, "default", {
|
|
|
9
9
|
const _jsxruntime = require("react/jsx-runtime");
|
|
10
10
|
const _react = require("react");
|
|
11
11
|
const _reactrouterdom = require("react-router-dom");
|
|
12
|
-
const
|
|
12
|
+
const _runtimenode = require("@modern-js/utils/runtime-node");
|
|
13
13
|
const _common = require("../../common");
|
|
14
14
|
const _utils = require("./utils");
|
|
15
15
|
const setupFnStr = `function s(r,e){_ROUTER_DATA.r=_ROUTER_DATA.r||{},_ROUTER_DATA.r[r]=_ROUTER_DATA.r[r]||{};return new Promise((function(A,R){_ROUTER_DATA.r[r][e]={resolve:A,reject:R}}))};`;
|
|
@@ -32,7 +32,7 @@ const DeferredDataScripts = () => {
|
|
|
32
32
|
errors: (0, _utils.serializeErrors)(staticContext.errors)
|
|
33
33
|
};
|
|
34
34
|
let initialScripts = [
|
|
35
|
-
`_ROUTER_DATA = ${(0,
|
|
35
|
+
`_ROUTER_DATA = ${(0, _runtimenode.serializeJson)(_ROUTER_DATA)};`,
|
|
36
36
|
`_ROUTER_DATA.s = ${setupFnStr}`,
|
|
37
37
|
`_ROUTER_DATA.r = ${resolveFnStr}`,
|
|
38
38
|
`_ROUTER_DATA.p = ${preResolvedFnStr}`
|
|
@@ -56,12 +56,12 @@ const DeferredDataScripts = () => {
|
|
|
56
56
|
message: trackedPromise._error.message,
|
|
57
57
|
stack: process.env.NODE_ENV !== "production" ? trackedPromise._error.stack : void 0
|
|
58
58
|
};
|
|
59
|
-
return `${JSON.stringify(key)}: _ROUTER_DATA.p(${void 0}, ${(0,
|
|
59
|
+
return `${JSON.stringify(key)}: _ROUTER_DATA.p(${void 0}, ${(0, _runtimenode.serializeJson)(error)})`;
|
|
60
60
|
} else {
|
|
61
61
|
if (typeof trackedPromise._data === "undefined") {
|
|
62
62
|
throw new Error(`The deferred data for ${key} was not resolved, did you forget to return data from a deferred promise`);
|
|
63
63
|
}
|
|
64
|
-
return `${JSON.stringify(key)}: _ROUTER_DATA.p(${(0,
|
|
64
|
+
return `${JSON.stringify(key)}: _ROUTER_DATA.p(${(0, _runtimenode.serializeJson)(trackedPromise._data)})`;
|
|
65
65
|
}
|
|
66
66
|
}
|
|
67
67
|
}).join(",\n");
|
|
@@ -101,7 +101,7 @@ const DeferredDataScript = ({ data, routeId, dataKey }) => {
|
|
|
101
101
|
async: true,
|
|
102
102
|
suppressHydrationWarning: true,
|
|
103
103
|
dangerouslySetInnerHTML: {
|
|
104
|
-
__html: `_ROUTER_DATA.r(${JSON.stringify(routeId)}, ${JSON.stringify(dataKey)}, ${(0,
|
|
104
|
+
__html: `_ROUTER_DATA.r(${JSON.stringify(routeId)}, ${JSON.stringify(dataKey)}, ${(0, _runtimenode.serializeJson)(data2)});`
|
|
105
105
|
}
|
|
106
106
|
})
|
|
107
107
|
}) : null
|
|
@@ -112,7 +112,7 @@ const ErrorDeferredDataScript = ({ routeId, dataKey }) => {
|
|
|
112
112
|
return /* @__PURE__ */ (0, _jsxruntime.jsx)("script", {
|
|
113
113
|
suppressHydrationWarning: true,
|
|
114
114
|
dangerouslySetInnerHTML: {
|
|
115
|
-
__html: `_ROUTER_DATA.r(${JSON.stringify(routeId)}, ${JSON.stringify(dataKey)}, ${void 0}, ${(0,
|
|
115
|
+
__html: `_ROUTER_DATA.r(${JSON.stringify(routeId)}, ${JSON.stringify(dataKey)}, ${void 0}, ${(0, _runtimenode.serializeJson)({
|
|
116
116
|
message: error.message,
|
|
117
117
|
stack: error.stack
|
|
118
118
|
})});`
|
|
@@ -73,15 +73,15 @@ _export(exports, {
|
|
|
73
73
|
createPath: () => _reactrouterdom.createPath,
|
|
74
74
|
unstable_useBlocker: () => _reactrouterdom.unstable_useBlocker,
|
|
75
75
|
unstable_usePrompt: () => _reactrouterdom.unstable_usePrompt,
|
|
76
|
-
defer: () =>
|
|
77
|
-
json: () =>
|
|
78
|
-
redirect: () =>
|
|
76
|
+
defer: () => _router.defer,
|
|
77
|
+
json: () => _router.json,
|
|
78
|
+
redirect: () => _router.redirect
|
|
79
79
|
});
|
|
80
80
|
const _reactrouterdom = require("react-router-dom");
|
|
81
81
|
const _plugin = require("./plugin");
|
|
82
82
|
_export_star(require("./withRouter"), exports);
|
|
83
83
|
const _PrefetchLink = require("./PrefetchLink");
|
|
84
|
-
const
|
|
84
|
+
const _router = require("@modern-js/utils/runtime/router");
|
|
85
85
|
function _export_star(from, to) {
|
|
86
86
|
Object.keys(from).forEach(function(k) {
|
|
87
87
|
if (k !== "default" && !Object.prototype.hasOwnProperty.call(to, k)) {
|
|
@@ -97,6 +97,6 @@ function _export_star(from, to) {
|
|
|
97
97
|
}
|
|
98
98
|
const _default = _plugin.routerPlugin;
|
|
99
99
|
const useRouteLoaderData = (routeId) => {
|
|
100
|
-
const realRouteId = routeId.replace(/\(
|
|
100
|
+
const realRouteId = routeId.replace(/\[(.*?)\]/g, "($1)");
|
|
101
101
|
return (0, _reactrouterdom.useRouteLoaderData)(realRouteId);
|
|
102
102
|
};
|
|
@@ -19,7 +19,7 @@ const _jsxruntime = require("react/jsx-runtime");
|
|
|
19
19
|
const _react = /* @__PURE__ */ _interop_require_default(require("react"));
|
|
20
20
|
const _reactrouterdom = require("react-router-dom");
|
|
21
21
|
const _hoistnonreactstatics = /* @__PURE__ */ _interop_require_default(require("hoist-non-react-statics"));
|
|
22
|
-
const
|
|
22
|
+
const _runtimebrowser = require("@modern-js/utils/runtime-browser");
|
|
23
23
|
const _hooks = require("./hooks");
|
|
24
24
|
const _utils = require("./utils");
|
|
25
25
|
function _interop_require_default(obj) {
|
|
@@ -44,7 +44,7 @@ const routerPlugin = ({ serverBase = [], supportHtml5History = true, basename =
|
|
|
44
44
|
const select = (pathname) => serverBase.find((baseUrl) => pathname.search(baseUrl) === 0) || "/";
|
|
45
45
|
let routes = [];
|
|
46
46
|
finalRouteConfig = routesConfig;
|
|
47
|
-
window._SERVER_DATA = (0,
|
|
47
|
+
window._SERVER_DATA = (0, _runtimebrowser.parsedJSONFromElement)("__MODERN_SERVER_DATA__");
|
|
48
48
|
return {
|
|
49
49
|
name: "@modern-js/plugin-router",
|
|
50
50
|
registerHook: {
|
|
@@ -16,7 +16,7 @@ _export(exports, {
|
|
|
16
16
|
});
|
|
17
17
|
const _jsxruntime = require("react/jsx-runtime");
|
|
18
18
|
const _react = /* @__PURE__ */ _interop_require_wildcard(require("react"));
|
|
19
|
-
const
|
|
19
|
+
const _router = require("@modern-js/utils/runtime/router");
|
|
20
20
|
const _server = require("react-router-dom/server");
|
|
21
21
|
const _hoistnonreactstatics = /* @__PURE__ */ _interop_require_default(require("hoist-non-react-statics"));
|
|
22
22
|
const _reactrouterdom = require("react-router-dom");
|
|
@@ -117,7 +117,7 @@ const routerPlugin = ({ basename = "", routesConfig, createRoutes }) => {
|
|
|
117
117
|
routesConfig,
|
|
118
118
|
ssrMode
|
|
119
119
|
}));
|
|
120
|
-
const { query } = (0,
|
|
120
|
+
const { query } = (0, _router.createStaticHandler)(routes, {
|
|
121
121
|
basename: _basename
|
|
122
122
|
});
|
|
123
123
|
const remixRequest = createFetchRequest(request);
|
|
@@ -21,8 +21,7 @@ _export(exports, {
|
|
|
21
21
|
const _jsxruntime = require("react/jsx-runtime");
|
|
22
22
|
const _react = /* @__PURE__ */ _interop_require_default(require("react"));
|
|
23
23
|
const _reactrouterdom = require("react-router-dom");
|
|
24
|
-
const
|
|
25
|
-
const _nestedRoutes = require("@modern-js/utils/universal/nestedRoutes");
|
|
24
|
+
const _router = require("@modern-js/utils/runtime/router");
|
|
26
25
|
const _DefaultNotFound = require("./DefaultNotFound");
|
|
27
26
|
const _DeferredDataScripts = /* @__PURE__ */ _interop_require_default(require("./DeferredDataScripts"));
|
|
28
27
|
function _interop_require_default(obj) {
|
|
@@ -46,7 +45,7 @@ function getRouteComponents(routes, { globalApp, ssrMode, props }) {
|
|
|
46
45
|
const routeElements = [];
|
|
47
46
|
for (const route of routes) {
|
|
48
47
|
if (route.type === "nested") {
|
|
49
|
-
const routeElement = (0,
|
|
48
|
+
const routeElement = (0, _router.renderNestedRoute)(route, {
|
|
50
49
|
DeferredDataComponent: ssrMode === "stream" ? _DeferredDataScripts.default : void 0,
|
|
51
50
|
props
|
|
52
51
|
});
|
|
@@ -120,7 +119,7 @@ function serializeErrors(errors) {
|
|
|
120
119
|
const entries = Object.entries(errors);
|
|
121
120
|
const serialized = {};
|
|
122
121
|
for (const [key, val] of entries) {
|
|
123
|
-
if ((0,
|
|
122
|
+
if ((0, _router.isRouteErrorResponse)(val)) {
|
|
124
123
|
serialized[key] = {
|
|
125
124
|
...val,
|
|
126
125
|
__type: "RouteErrorResponse"
|
|
@@ -145,7 +144,7 @@ function deserializeErrors(errors) {
|
|
|
145
144
|
const serialized = {};
|
|
146
145
|
for (const [key, val] of entries) {
|
|
147
146
|
if (val && val.__type === "RouteErrorResponse") {
|
|
148
|
-
serialized[key] = new
|
|
147
|
+
serialized[key] = new _router.ErrorResponse(val.status, val.statusText, val.data, val.internal === true);
|
|
149
148
|
} else if (val && val.__type === "Error") {
|
|
150
149
|
const error = new Error(val.message);
|
|
151
150
|
error.stack = val.stack;
|
|
@@ -42,21 +42,36 @@ const _default = () => {
|
|
|
42
42
|
config() {
|
|
43
43
|
const appContext = api.useAppContext();
|
|
44
44
|
pluginsExportsUtils = (0, _utils.createRuntimeExportsUtils)(appContext.internalDirectory, "plugins");
|
|
45
|
+
const userConfig = api.useResolvedConfigContext();
|
|
45
46
|
const { bundlerType = "webpack" } = api.useAppContext();
|
|
46
|
-
const babelConfig =
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
47
|
+
const babelConfig = (() => {
|
|
48
|
+
if (bundlerType === "webpack") {
|
|
49
|
+
return (config) => {
|
|
50
|
+
var _config_plugins;
|
|
51
|
+
(_config_plugins = config.plugins) === null || _config_plugins === void 0 ? void 0 : _config_plugins.push(_path.default.join(__dirname, "./babel-plugin-ssr-loader-id"));
|
|
52
|
+
if ((0, _utils.isUseSSRBundle)(userConfig) && hasStringSSREntry(userConfig)) {
|
|
53
|
+
var _config_plugins1;
|
|
54
|
+
(_config_plugins1 = config.plugins) === null || _config_plugins1 === void 0 ? void 0 : _config_plugins1.push(require.resolve("@loadable/babel-plugin"));
|
|
55
|
+
}
|
|
56
|
+
};
|
|
57
|
+
} else if (bundlerType === "rspack") {
|
|
58
|
+
if ((0, _utils.isUseSSRBundle)(userConfig)) {
|
|
59
|
+
return (config) => {
|
|
60
|
+
var _config_plugins;
|
|
61
|
+
(_config_plugins = config.plugins) === null || _config_plugins === void 0 ? void 0 : _config_plugins.push(_path.default.join(__dirname, "./babel-plugin-ssr-loader-id"));
|
|
62
|
+
if (hasStringSSREntry(userConfig)) {
|
|
63
|
+
var _config_plugins1;
|
|
64
|
+
(_config_plugins1 = config.plugins) === null || _config_plugins1 === void 0 ? void 0 : _config_plugins1.push(require.resolve("@loadable/babel-plugin"));
|
|
65
|
+
}
|
|
66
|
+
};
|
|
67
|
+
}
|
|
53
68
|
}
|
|
54
|
-
}
|
|
69
|
+
})();
|
|
55
70
|
return {
|
|
56
71
|
source: {
|
|
57
72
|
alias: {
|
|
58
|
-
// ensure that all packages use the same storage in @modern-js/utils/
|
|
59
|
-
"@modern-js/utils/
|
|
73
|
+
// ensure that all packages use the same storage in @modern-js/utils/runtime-node
|
|
74
|
+
"@modern-js/utils/runtime-node": require.resolve("@modern-js/utils/runtime-node"),
|
|
60
75
|
"@modern-js/runtime/plugins": pluginsExportsUtils.getPath()
|
|
61
76
|
},
|
|
62
77
|
globalVars: (values, { target }) => {
|
|
@@ -64,11 +79,11 @@ const _default = () => {
|
|
|
64
79
|
}
|
|
65
80
|
},
|
|
66
81
|
tools: {
|
|
67
|
-
|
|
68
|
-
const
|
|
69
|
-
if ((0, _utils.isUseSSRBundle)(
|
|
70
|
-
const
|
|
71
|
-
chain.plugin(CHAIN_ID.PLUGIN.LOADABLE).use(
|
|
82
|
+
bundlerChain(chain, { isServer, isServiceWorker, CHAIN_ID }) {
|
|
83
|
+
const userConfig2 = api.useResolvedConfigContext();
|
|
84
|
+
if ((0, _utils.isUseSSRBundle)(userConfig2) && !isServer && !isServiceWorker && hasStringSSREntry(userConfig2)) {
|
|
85
|
+
const LoadableBundlerPlugin = require("./loadable-bundler-plugin.js");
|
|
86
|
+
chain.plugin(CHAIN_ID.PLUGIN.LOADABLE).use(LoadableBundlerPlugin, [
|
|
72
87
|
{
|
|
73
88
|
filename: _utils.LOADABLE_STATS_FILE
|
|
74
89
|
}
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
const _path = /* @__PURE__ */ _interop_require_default(require("path"));
|
|
6
|
+
const _utils = require("@modern-js/utils");
|
|
7
|
+
function _define_property(obj, key, value) {
|
|
8
|
+
if (key in obj) {
|
|
9
|
+
Object.defineProperty(obj, key, {
|
|
10
|
+
value,
|
|
11
|
+
enumerable: true,
|
|
12
|
+
configurable: true,
|
|
13
|
+
writable: true
|
|
14
|
+
});
|
|
15
|
+
} else {
|
|
16
|
+
obj[key] = value;
|
|
17
|
+
}
|
|
18
|
+
return obj;
|
|
19
|
+
}
|
|
20
|
+
function _interop_require_default(obj) {
|
|
21
|
+
return obj && obj.__esModule ? obj : {
|
|
22
|
+
default: obj
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
class LoadablePlugin {
|
|
26
|
+
apply(compiler) {
|
|
27
|
+
this.compiler = compiler;
|
|
28
|
+
compiler.options.output.chunkLoadingGlobal = this.opts.chunkLoadingGlobal;
|
|
29
|
+
if (this.opts.outputAsset || this.opts.writeToDisk) {
|
|
30
|
+
compiler.hooks.make.tap(LoadablePlugin.name, (compilation) => {
|
|
31
|
+
compilation.hooks.processAssets.tap({
|
|
32
|
+
name: LoadablePlugin.name,
|
|
33
|
+
stage: compiler.webpack.Compilation.PROCESS_ASSETS_STAGE_REPORT
|
|
34
|
+
}, () => {
|
|
35
|
+
const asset = this.handleEmit(compilation);
|
|
36
|
+
if (asset) {
|
|
37
|
+
compilation.emitAsset(this.opts.filename, asset);
|
|
38
|
+
}
|
|
39
|
+
});
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
handleEmit(compilation) {
|
|
44
|
+
const stats = compilation.getStats().toJson({
|
|
45
|
+
all: false,
|
|
46
|
+
assets: true,
|
|
47
|
+
// rspack not support cachedAssets,
|
|
48
|
+
cachedAssets: true,
|
|
49
|
+
chunks: true,
|
|
50
|
+
chunkGroups: true,
|
|
51
|
+
entrypoints: true,
|
|
52
|
+
// rspack not support chunkGroupChildren.
|
|
53
|
+
chunkGroupChildren: true,
|
|
54
|
+
hash: true,
|
|
55
|
+
ids: true,
|
|
56
|
+
outputPath: true,
|
|
57
|
+
publicPath: true
|
|
58
|
+
});
|
|
59
|
+
const output = {
|
|
60
|
+
...stats,
|
|
61
|
+
generator: "loadable-components",
|
|
62
|
+
chunks: [
|
|
63
|
+
...stats.chunks || []
|
|
64
|
+
].map((chunk) => {
|
|
65
|
+
return {
|
|
66
|
+
id: chunk.id,
|
|
67
|
+
files: [
|
|
68
|
+
...chunk.files || []
|
|
69
|
+
]
|
|
70
|
+
};
|
|
71
|
+
})
|
|
72
|
+
};
|
|
73
|
+
const result = JSON.stringify(output, null, 2);
|
|
74
|
+
if (this.opts.writeToDisk) {
|
|
75
|
+
this.writeAssetsFile(result);
|
|
76
|
+
}
|
|
77
|
+
if (this.opts.outputAsset) {
|
|
78
|
+
return {
|
|
79
|
+
source() {
|
|
80
|
+
return result;
|
|
81
|
+
},
|
|
82
|
+
size() {
|
|
83
|
+
return result.length;
|
|
84
|
+
}
|
|
85
|
+
};
|
|
86
|
+
}
|
|
87
|
+
return null;
|
|
88
|
+
}
|
|
89
|
+
writeAssetsFile(manifest) {
|
|
90
|
+
var _this_compiler;
|
|
91
|
+
const outputFolder = (_this_compiler = this.compiler) === null || _this_compiler === void 0 ? void 0 : _this_compiler.options.output.path;
|
|
92
|
+
const outputFile = _path.default.resolve(outputFolder || "", this.opts.filename);
|
|
93
|
+
_utils.fs.outputFileSync(outputFile, manifest);
|
|
94
|
+
}
|
|
95
|
+
constructor({ filename = "loadable-stats.json", path, writeToDisk, outputAsset = true, chunkLoadingGlobal = "__LOADABLE_LOADED_CHUNKS__" } = {
|
|
96
|
+
filename: "loadable-stats.json",
|
|
97
|
+
outputAsset: true,
|
|
98
|
+
chunkLoadingGlobal: "__LOADABLE_LOADED_CHUNKS__"
|
|
99
|
+
}) {
|
|
100
|
+
_define_property(this, "opts", void 0);
|
|
101
|
+
_define_property(this, "compiler", void 0);
|
|
102
|
+
this.opts = {
|
|
103
|
+
filename,
|
|
104
|
+
path,
|
|
105
|
+
writeToDisk,
|
|
106
|
+
outputAsset,
|
|
107
|
+
chunkLoadingGlobal
|
|
108
|
+
};
|
|
109
|
+
this.compiler = null;
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
module.exports = LoadablePlugin;
|
package/dist/cjs/ssr/index.js
CHANGED
|
@@ -16,7 +16,7 @@ _export(exports, {
|
|
|
16
16
|
const _jsxruntime = require("react/jsx-runtime");
|
|
17
17
|
const _component = require("@loadable/component");
|
|
18
18
|
const _hoistnonreactstatics = /* @__PURE__ */ _interop_require_default(require("hoist-non-react-statics"));
|
|
19
|
-
const
|
|
19
|
+
const _runtimebrowser = require("@modern-js/utils/runtime-browser");
|
|
20
20
|
const _types = require("./serverRender/types");
|
|
21
21
|
const _withCallback = require("./react/withCallback");
|
|
22
22
|
const _utils = require("./utils");
|
|
@@ -46,8 +46,8 @@ const ssr = (config) => {
|
|
|
46
46
|
setup: () => {
|
|
47
47
|
const mockResp = (0, _utils.mockResponse)();
|
|
48
48
|
if (config.inlineScript === false) {
|
|
49
|
-
window._SSR_DATA = (0,
|
|
50
|
-
window._ROUTER_DATA = (0,
|
|
49
|
+
window._SSR_DATA = (0, _runtimebrowser.parsedJSONFromElement)(_utils1.SSR_DATA_JSON_ID);
|
|
50
|
+
window._ROUTER_DATA = (0, _runtimebrowser.parsedJSONFromElement)(_utils1.ROUTER_DATA_JSON_ID);
|
|
51
51
|
}
|
|
52
52
|
return {
|
|
53
53
|
client: async ({ App, context, ModernRender, ModernHydrate }) => {
|
package/dist/cjs/ssr/prefetch.js
CHANGED
|
@@ -8,10 +8,10 @@ Object.defineProperty(exports, "default", {
|
|
|
8
8
|
});
|
|
9
9
|
const _jsxruntime = require("react/jsx-runtime");
|
|
10
10
|
const _server = require("react-dom/server");
|
|
11
|
-
const
|
|
11
|
+
const _runtimenode = require("@modern-js/utils/runtime-node");
|
|
12
12
|
const _server1 = require("@loadable/server");
|
|
13
13
|
const prefetch = async (App, context) => {
|
|
14
|
-
return (0,
|
|
14
|
+
return (0, _runtimenode.run)(context.ssrContext.request.headers, async () => {
|
|
15
15
|
var _context_store;
|
|
16
16
|
const { ssrContext } = context;
|
|
17
17
|
const { loadableStats } = ssrContext;
|
|
@@ -6,7 +6,7 @@ Object.defineProperty(exports, "buildShellAfterTemplate", {
|
|
|
6
6
|
enumerable: true,
|
|
7
7
|
get: () => buildShellAfterTemplate
|
|
8
8
|
});
|
|
9
|
-
const
|
|
9
|
+
const _runtimenode = require("@modern-js/utils/runtime-node");
|
|
10
10
|
const _buildTemplateshare = require("./buildTemplate.share");
|
|
11
11
|
function buildShellAfterTemplate(afterAppTemplate, options) {
|
|
12
12
|
const callbacks = [
|
|
@@ -40,7 +40,7 @@ function buildShellAfterTemplate(afterAppTemplate, options) {
|
|
|
40
40
|
renderLevel
|
|
41
41
|
};
|
|
42
42
|
return `
|
|
43
|
-
<script>window._SSR_DATA = ${(0,
|
|
43
|
+
<script>window._SSR_DATA = ${(0, _runtimenode.serializeJson)(SSRData)}</script>
|
|
44
44
|
`;
|
|
45
45
|
}
|
|
46
46
|
}
|
|
@@ -7,7 +7,7 @@ Object.defineProperty(exports, "render", {
|
|
|
7
7
|
get: () => render
|
|
8
8
|
});
|
|
9
9
|
const _react = require("react");
|
|
10
|
-
const
|
|
10
|
+
const _runtimenode = require("@modern-js/utils/runtime-node");
|
|
11
11
|
const _prerender = require("../../react/prerender");
|
|
12
12
|
const _time = require("../time");
|
|
13
13
|
const _renderToPipe = /* @__PURE__ */ _interop_require_default(require("./renderToPipe"));
|
|
@@ -21,7 +21,7 @@ const render = ({ App, context }) => {
|
|
|
21
21
|
if (!ssrContext) {
|
|
22
22
|
throw new Error('The "ssrContext" must not be undefined, but received undefined');
|
|
23
23
|
}
|
|
24
|
-
return (0,
|
|
24
|
+
return (0, _runtimenode.run)(ssrContext.request.headers, async () => {
|
|
25
25
|
const end = (0, _time.time)();
|
|
26
26
|
const rootElement = (0, _react.createElement)(App, {
|
|
27
27
|
context: Object.assign(context || {}, {
|
|
@@ -8,7 +8,7 @@ Object.defineProperty(exports, "default", {
|
|
|
8
8
|
});
|
|
9
9
|
const _react = /* @__PURE__ */ _interop_require_default(require("react"));
|
|
10
10
|
const _server = /* @__PURE__ */ _interop_require_default(require("react-dom/server"));
|
|
11
|
-
const
|
|
11
|
+
const _runtimenode = require("@modern-js/utils/runtime-node");
|
|
12
12
|
const _reacthelmet = /* @__PURE__ */ _interop_require_default(require("react-helmet"));
|
|
13
13
|
const _utils = require("../../../router/runtime/utils");
|
|
14
14
|
const _helmet = /* @__PURE__ */ _interop_require_default(require("../helmet"));
|
|
@@ -183,10 +183,10 @@ class Entry {
|
|
|
183
183
|
}
|
|
184
184
|
getSSRDataScript(templateData, routerData) {
|
|
185
185
|
const useInlineScript = this.pluginConfig.inlineScript !== false;
|
|
186
|
-
const ssrData = (0,
|
|
186
|
+
const ssrData = (0, _runtimenode.serializeJson)(templateData);
|
|
187
187
|
let ssrDataScripts = useInlineScript ? `<script>window._SSR_DATA = ${ssrData}</script>` : `<script type="application/json" id="${_utils1.SSR_DATA_JSON_ID}">${ssrData}</script>`;
|
|
188
188
|
if (routerData) {
|
|
189
|
-
const serializedRouterData = (0,
|
|
189
|
+
const serializedRouterData = (0, _runtimenode.serializeJson)(routerData);
|
|
190
190
|
ssrDataScripts += useInlineScript ? `
|
|
191
191
|
<script>window._ROUTER_DATA = ${serializedRouterData}</script>` : `
|
|
192
192
|
<script type="application/json" id="${_utils1.ROUTER_DATA_JSON_ID}">${serializedRouterData}</script>`;
|
|
@@ -6,7 +6,7 @@ Object.defineProperty(exports, "render", {
|
|
|
6
6
|
enumerable: true,
|
|
7
7
|
get: () => render
|
|
8
8
|
});
|
|
9
|
-
const
|
|
9
|
+
const _runtimenode = require("@modern-js/utils/runtime-node");
|
|
10
10
|
const _prerender = require("../../react/prerender");
|
|
11
11
|
const _time = require("../time");
|
|
12
12
|
const _entry = /* @__PURE__ */ _interop_require_default(require("./entry"));
|
|
@@ -17,7 +17,7 @@ function _interop_require_default(obj) {
|
|
|
17
17
|
}
|
|
18
18
|
const render = ({ App, context, config }) => {
|
|
19
19
|
const ssrContext = context.ssrContext;
|
|
20
|
-
return (0,
|
|
20
|
+
return (0, _runtimenode.run)(ssrContext.request.headers, async () => {
|
|
21
21
|
const entry = new _entry.default({
|
|
22
22
|
ctx: ssrContext,
|
|
23
23
|
App,
|
|
@@ -41,7 +41,7 @@ function _async_to_generator(fn) {
|
|
|
41
41
|
function _define_property(obj, key, value) {
|
|
42
42
|
if (key in obj) {
|
|
43
43
|
Object.defineProperty(obj, key, {
|
|
44
|
-
value,
|
|
44
|
+
value: value,
|
|
45
45
|
enumerable: true,
|
|
46
46
|
configurable: true,
|
|
47
47
|
writable: true
|
|
@@ -245,7 +245,7 @@ var runnerMap = /* @__PURE__ */ new WeakMap();
|
|
|
245
245
|
var getInitialContext = function(runner) {
|
|
246
246
|
return {
|
|
247
247
|
loaderManager: createLoaderManager({}),
|
|
248
|
-
runner,
|
|
248
|
+
runner: runner,
|
|
249
249
|
isBrowser: true,
|
|
250
250
|
routeManifest: typeof window !== "undefined" && window[ROUTE_MANIFEST]
|
|
251
251
|
};
|
|
@@ -262,9 +262,9 @@ export var createApp = function(param) {
|
|
|
262
262
|
var element = /* @__PURE__ */ React.createElement(App || React.Fragment, App ? _object_spread({}, props) : null, App ? props.children : /* @__PURE__ */ React.cloneElement(props.children, _object_spread({}, (_props_children = props.children) === null || _props_children === void 0 ? void 0 : _props_children.props, props)));
|
|
263
263
|
var context = useContext(RuntimeReactContext);
|
|
264
264
|
return runner.provide({
|
|
265
|
-
element,
|
|
265
|
+
element: element,
|
|
266
266
|
props: _object_spread({}, props),
|
|
267
|
-
context
|
|
267
|
+
context: context
|
|
268
268
|
}, {
|
|
269
269
|
onLast: function(param2) {
|
|
270
270
|
var element2 = param2.element;
|
|
@@ -340,7 +340,7 @@ export var bootstrap = function() {
|
|
|
340
340
|
return [
|
|
341
341
|
2,
|
|
342
342
|
/* @__PURE__ */ React.createElement(App, {
|
|
343
|
-
context
|
|
343
|
+
context: context
|
|
344
344
|
})
|
|
345
345
|
];
|
|
346
346
|
}
|
|
@@ -418,15 +418,15 @@ export var bootstrap = function() {
|
|
|
418
418
|
return [
|
|
419
419
|
2,
|
|
420
420
|
runner.client({
|
|
421
|
-
App,
|
|
422
|
-
context,
|
|
423
|
-
ModernRender,
|
|
424
|
-
ModernHydrate
|
|
421
|
+
App: App,
|
|
422
|
+
context: context,
|
|
423
|
+
ModernRender: ModernRender,
|
|
424
|
+
ModernHydrate: ModernHydrate
|
|
425
425
|
}, {
|
|
426
426
|
onLast: function(param) {
|
|
427
427
|
var App2 = param.App;
|
|
428
428
|
ModernRender(/* @__PURE__ */ React.createElement(App2, {
|
|
429
|
-
context
|
|
429
|
+
context: context
|
|
430
430
|
}));
|
|
431
431
|
}
|
|
432
432
|
})
|
|
@@ -476,8 +476,8 @@ export var bootstrap = function() {
|
|
|
476
476
|
return [
|
|
477
477
|
2,
|
|
478
478
|
runner.server({
|
|
479
|
-
App,
|
|
480
|
-
context
|
|
479
|
+
App: App,
|
|
480
|
+
context: context
|
|
481
481
|
})
|
|
482
482
|
];
|
|
483
483
|
}
|
|
@@ -497,7 +497,7 @@ export var useRuntimeContext = function() {
|
|
|
497
497
|
var context = useContext(RuntimeReactContext);
|
|
498
498
|
var memoizedContext = useMemo(function() {
|
|
499
499
|
return context.runner.pickContext({
|
|
500
|
-
context,
|
|
500
|
+
context: context,
|
|
501
501
|
pickedContext: {}
|
|
502
502
|
}, {
|
|
503
503
|
onLast: function(param) {
|
|
@@ -285,7 +285,7 @@ var createLoader = function(id) {
|
|
|
285
285
|
return {
|
|
286
286
|
loading: !hasLoaded && status === LoaderStatus.loading,
|
|
287
287
|
reloading: hasLoaded && status === LoaderStatus.loading,
|
|
288
|
-
data,
|
|
288
|
+
data: data,
|
|
289
289
|
error: _instanceof(error, Error) ? "".concat(error.message) : error,
|
|
290
290
|
// redundant fields for ssr log
|
|
291
291
|
_error: error
|
|
@@ -309,8 +309,8 @@ var createLoader = function(id) {
|
|
|
309
309
|
get promise() {
|
|
310
310
|
return promise;
|
|
311
311
|
},
|
|
312
|
-
onChange,
|
|
313
|
-
load
|
|
312
|
+
onChange: onChange,
|
|
313
|
+
load: load
|
|
314
314
|
};
|
|
315
315
|
};
|
|
316
316
|
export var createLoaderManager = function(initialDataMap) {
|
|
@@ -425,9 +425,9 @@ export var createLoaderManager = function(initialDataMap) {
|
|
|
425
425
|
};
|
|
426
426
|
}();
|
|
427
427
|
return {
|
|
428
|
-
hasPendingLoaders,
|
|
429
|
-
awaitPendingLoaders,
|
|
430
|
-
add,
|
|
431
|
-
get
|
|
428
|
+
hasPendingLoaders: hasPendingLoaders,
|
|
429
|
+
awaitPendingLoaders: awaitPendingLoaders,
|
|
430
|
+
add: add,
|
|
431
|
+
get: get
|
|
432
432
|
};
|
|
433
433
|
};
|
|
@@ -12,7 +12,7 @@ function _array_with_holes(arr) {
|
|
|
12
12
|
function _define_property(obj, key, value) {
|
|
13
13
|
if (key in obj) {
|
|
14
14
|
Object.defineProperty(obj, key, {
|
|
15
|
-
value,
|
|
15
|
+
value: value,
|
|
16
16
|
enumerable: true,
|
|
17
17
|
configurable: true,
|
|
18
18
|
writable: true
|
|
@@ -148,7 +148,7 @@ var useLoader = function(loaderFn) {
|
|
|
148
148
|
return Promise.reject(e);
|
|
149
149
|
}
|
|
150
150
|
}, _object_spread_props(_object_spread({}, options), {
|
|
151
|
-
params
|
|
151
|
+
params: params
|
|
152
152
|
}));
|
|
153
153
|
loaderRef.current = loaderManager.get(id);
|
|
154
154
|
(_unlistenLoaderChangeRef_current = unlistenLoaderChangeRef.current) === null || _unlistenLoaderChangeRef_current === void 0 ? void 0 : _unlistenLoaderChangeRef_current.call(unlistenLoaderChangeRef);
|
package/dist/esm/core/plugin.js
CHANGED
|
@@ -138,12 +138,12 @@ var server = createAsyncPipeline();
|
|
|
138
138
|
var init = createAsyncPipeline();
|
|
139
139
|
var pickContext = createPipeline();
|
|
140
140
|
var runtimeHooks = {
|
|
141
|
-
hoc,
|
|
142
|
-
provide,
|
|
143
|
-
client,
|
|
144
|
-
server,
|
|
145
|
-
init,
|
|
146
|
-
pickContext
|
|
141
|
+
hoc: hoc,
|
|
142
|
+
provide: provide,
|
|
143
|
+
client: client,
|
|
144
|
+
server: server,
|
|
145
|
+
init: init,
|
|
146
|
+
pickContext: pickContext
|
|
147
147
|
};
|
|
148
148
|
export var createRuntime = function() {
|
|
149
149
|
return createManager(runtimeHooks);
|
|
@@ -81,11 +81,11 @@ export function Html(props) {
|
|
|
81
81
|
return /* @__PURE__ */ _jsx("html", {
|
|
82
82
|
children: /* @__PURE__ */ _jsxs(DocumentStructureContext.Provider, {
|
|
83
83
|
value: {
|
|
84
|
-
hasSetHead,
|
|
85
|
-
hasSetScripts,
|
|
86
|
-
hasSetLinks,
|
|
87
|
-
hasSetRoot,
|
|
88
|
-
hasSetBody,
|
|
84
|
+
hasSetHead: hasSetHead,
|
|
85
|
+
hasSetScripts: hasSetScripts,
|
|
86
|
+
hasSetLinks: hasSetLinks,
|
|
87
|
+
hasSetRoot: hasSetRoot,
|
|
88
|
+
hasSetBody: hasSetBody,
|
|
89
89
|
docChild: children
|
|
90
90
|
},
|
|
91
91
|
children: [
|