@modern-js/runtime 2.5.0 → 2.7.0
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 +55 -0
- package/dist/cjs/cli/index.js +9 -0
- package/dist/cjs/common.js +6 -0
- package/dist/cjs/core/{app-config.js → appConfig.js} +8 -4
- package/dist/cjs/core/compatible.js +11 -10
- package/dist/cjs/core/index.js +6 -6
- package/dist/cjs/core/loader/index.js +4 -0
- package/dist/cjs/core/loader/loaderManager.js +6 -0
- package/dist/cjs/core/loader/useLoader.js +6 -2
- package/dist/cjs/core/types.js +15 -0
- package/dist/cjs/document/Body.js +6 -8
- package/dist/cjs/document/DocumentContext.js +4 -0
- package/dist/cjs/document/DocumentStructureContext.js +4 -0
- package/dist/cjs/document/Head.js +7 -11
- package/dist/cjs/document/Html.js +24 -22
- package/dist/cjs/document/Links.js +1 -3
- package/dist/cjs/document/Root.js +8 -14
- package/dist/cjs/document/Script.js +5 -7
- package/dist/cjs/document/Scripts.js +1 -3
- package/dist/cjs/document/cli/index.js +8 -2
- package/dist/cjs/exports/head.js +4 -0
- package/dist/cjs/exports/loadable.js +4 -0
- package/dist/cjs/exports/styled.js +4 -0
- package/dist/cjs/router/cli/index.js +3 -7
- package/dist/cjs/router/index.js +4 -0
- package/dist/cjs/router/runtime/DefaultNotFound.js +13 -10
- package/dist/cjs/router/runtime/DeferredDataScripts.js +165 -0
- package/dist/cjs/router/runtime/index.js +116 -3
- package/dist/cjs/router/runtime/plugin.js +18 -6
- package/dist/cjs/router/runtime/plugin.node.js +16 -49
- package/dist/cjs/router/runtime/utils.js +79 -101
- package/dist/cjs/router/runtime/withRouter.js +9 -6
- package/dist/cjs/{runtime-context.js → runtimeContext.js} +3 -3
- package/dist/cjs/ssr/cli/babel-plugin-ssr-loader-id.js +4 -0
- package/dist/cjs/ssr/cli/index.js +6 -0
- package/dist/cjs/ssr/index.js +10 -24
- package/dist/cjs/ssr/index.node.js +5 -0
- package/dist/cjs/ssr/prefetch.js +3 -6
- package/dist/cjs/ssr/react/nossr/index.js +4 -0
- package/dist/cjs/ssr/react/prerender/index.js +4 -0
- package/dist/cjs/ssr/serverRender/renderToStream/buildTemplate.after.js +7 -13
- package/dist/cjs/ssr/serverRender/renderToStream/bulidTemplate.before.js +5 -0
- package/dist/cjs/ssr/serverRender/renderToStream/index.js +4 -0
- package/dist/cjs/ssr/serverRender/renderToStream/renderToPipe.js +22 -7
- package/dist/cjs/ssr/serverRender/renderToStream/template.js +2 -1
- package/dist/cjs/ssr/serverRender/renderToString/entry.js +28 -11
- package/dist/cjs/ssr/serverRender/renderToString/index.js +4 -0
- package/dist/cjs/ssr/serverRender/renderToString/loadable.js +1 -1
- package/dist/cjs/ssr/serverRender/time.worker.js +1 -1
- package/dist/cjs/ssr/serverRender/utils.js +1 -1
- package/dist/cjs/ssr/utils.js +16 -4
- package/dist/cjs/state/index.js +4 -0
- package/dist/cjs/state/plugins.js +4 -0
- package/dist/cjs/state/runtime/index.js +4 -0
- package/dist/cjs/state/runtime/plugin.js +5 -7
- package/dist/esm/cli/index.js +5 -1
- package/dist/esm/common.js +3 -1
- package/dist/esm/core/{app-config.js → appConfig.js} +3 -1
- package/dist/esm/core/compatible.js +4 -2
- package/dist/esm/core/index.js +2 -2
- package/dist/esm/core/loader/loaderManager.js +3 -1
- package/dist/esm/core/loader/useLoader.js +1 -1
- package/dist/esm/core/types.js +1 -0
- package/dist/esm/document/cli/index.js +4 -2
- package/dist/esm/router/cli/index.js +1 -5
- package/dist/esm/router/runtime/DeferredDataScripts.js +166 -0
- package/dist/esm/router/runtime/index.js +3 -2
- package/dist/esm/router/runtime/plugin.js +11 -3
- package/dist/esm/router/runtime/plugin.node.js +11 -68
- package/dist/esm/router/runtime/utils.js +138 -81
- package/dist/esm/ssr/cli/index.js +2 -0
- package/dist/esm/ssr/index.node.js +1 -0
- package/dist/esm/ssr/prefetch.js +1 -0
- package/dist/esm/ssr/serverRender/renderToStream/buildTemplate.after.js +37 -10
- package/dist/esm/ssr/serverRender/renderToStream/bulidTemplate.before.js +1 -0
- package/dist/esm/ssr/serverRender/renderToStream/renderToPipe.js +19 -8
- package/dist/esm/ssr/serverRender/renderToStream/template.js +2 -1
- package/dist/esm/ssr/serverRender/renderToString/entry.js +37 -13
- package/dist/esm/ssr/serverRender/time.worker.js +1 -1
- package/dist/esm/ssr/utils.js +6 -4
- package/dist/esm-node/cli/index.js +5 -0
- package/dist/esm-node/common.js +4 -0
- package/dist/esm-node/core/{app-config.js → appConfig.js} +5 -1
- package/dist/esm-node/core/compatible.js +5 -8
- package/dist/esm-node/core/index.js +2 -2
- package/dist/esm-node/core/loader/loaderManager.js +2 -0
- package/dist/esm-node/core/loader/useLoader.js +1 -1
- package/dist/esm-node/core/types.js +0 -0
- package/dist/esm-node/document/Body.js +6 -8
- package/dist/esm-node/document/Head.js +7 -11
- package/dist/esm-node/document/Html.js +24 -22
- package/dist/esm-node/document/Links.js +1 -3
- package/dist/esm-node/document/Root.js +8 -14
- package/dist/esm-node/document/Script.js +5 -7
- package/dist/esm-node/document/Scripts.js +1 -3
- package/dist/esm-node/document/cli/index.js +4 -2
- package/dist/esm-node/router/cli/index.js +2 -5
- package/dist/esm-node/router/runtime/DefaultNotFound.js +13 -10
- package/dist/esm-node/router/runtime/DeferredDataScripts.js +148 -0
- package/dist/esm-node/router/runtime/index.js +113 -2
- package/dist/esm-node/router/runtime/plugin.js +15 -7
- package/dist/esm-node/router/runtime/plugin.node.js +12 -52
- package/dist/esm-node/router/runtime/utils.js +70 -101
- package/dist/esm-node/router/runtime/withRouter.js +9 -6
- package/dist/esm-node/ssr/cli/index.js +2 -0
- package/dist/esm-node/ssr/index.js +6 -24
- package/dist/esm-node/ssr/index.node.js +1 -0
- package/dist/esm-node/ssr/prefetch.js +3 -6
- package/dist/esm-node/ssr/serverRender/renderToStream/buildTemplate.after.js +7 -7
- package/dist/esm-node/ssr/serverRender/renderToStream/bulidTemplate.before.js +1 -0
- package/dist/esm-node/ssr/serverRender/renderToStream/renderToPipe.js +22 -7
- package/dist/esm-node/ssr/serverRender/renderToStream/template.js +2 -1
- package/dist/esm-node/ssr/serverRender/renderToString/entry.js +24 -11
- package/dist/esm-node/ssr/serverRender/renderToString/loadable.js +1 -1
- package/dist/esm-node/ssr/serverRender/time.worker.js +1 -1
- package/dist/esm-node/ssr/serverRender/utils.js +1 -1
- package/dist/esm-node/ssr/utils.js +6 -4
- package/dist/esm-node/state/runtime/plugin.js +1 -7
- package/dist/types/common.d.ts +3 -1
- package/dist/types/core/compatible.d.ts +1 -1
- package/dist/types/core/index.d.ts +4 -3
- package/dist/types/core/loader/index.d.ts +1 -2
- package/dist/types/core/loader/useLoader.d.ts +1 -15
- package/dist/types/core/plugin.d.ts +15 -15
- package/dist/types/core/types.d.ts +22 -0
- package/dist/types/index.d.ts +1 -1
- package/dist/types/router/runtime/DeferredDataScripts.d.ts +8 -0
- package/dist/types/router/runtime/index.d.ts +4 -2
- package/dist/types/router/runtime/utils.d.ts +23 -4
- package/dist/types/{runtime-context.d.ts → runtimeContext.d.ts} +2 -0
- package/dist/types/ssr/serverRender/renderToStream/buildTemplate.after.d.ts +2 -0
- package/dist/types/ssr/serverRender/renderToString/type.d.ts +1 -0
- package/package.json +14 -15
- package/dist/cjs/ssr/prefetch.worker.js +0 -67
- package/dist/cjs/ssr/serverRender/renderToStream/index.worker.js +0 -64
- package/dist/cjs/ssr/serverRender/renderToString/index.worker.js +0 -58
- package/dist/esm/ssr/prefetch.worker.js +0 -191
- package/dist/esm/ssr/serverRender/renderToStream/index.worker.js +0 -32
- package/dist/esm/ssr/serverRender/renderToString/index.worker.js +0 -167
- package/dist/esm-node/ssr/prefetch.worker.js +0 -46
- package/dist/esm-node/ssr/serverRender/renderToStream/index.worker.js +0 -35
- package/dist/esm-node/ssr/serverRender/renderToString/index.worker.js +0 -29
- package/dist/types/ssr/prefetch.worker.d.ts +0 -13
- package/dist/types/ssr/serverRender/renderToStream/index.worker.d.ts +0 -6
- package/dist/types/ssr/serverRender/renderToString/index.worker.d.ts +0 -6
- /package/dist/esm/{runtime-context.js → runtimeContext.js} +0 -0
- /package/dist/esm-node/{runtime-context.js → runtimeContext.js} +0 -0
- /package/dist/types/core/{app-config.d.ts → appConfig.d.ts} +0 -0
|
@@ -17,6 +17,10 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
17
17
|
return to;
|
|
18
18
|
};
|
|
19
19
|
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
20
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
21
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
22
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
23
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
20
24
|
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
21
25
|
mod
|
|
22
26
|
));
|
|
@@ -28,8 +32,9 @@ __export(entry_exports, {
|
|
|
28
32
|
module.exports = __toCommonJS(entry_exports);
|
|
29
33
|
var import_react = __toESM(require("react"));
|
|
30
34
|
var import_server = __toESM(require("react-dom/server"));
|
|
31
|
-
var
|
|
35
|
+
var import_serialize = require("@modern-js/utils/serialize");
|
|
32
36
|
var import_react_helmet = __toESM(require("react-helmet"));
|
|
37
|
+
var import_utils = require("../../../router/runtime/utils");
|
|
33
38
|
var import_helmet = __toESM(require("../helmet"));
|
|
34
39
|
var import_types = require("../types");
|
|
35
40
|
var import_time = require("../time");
|
|
@@ -39,7 +44,10 @@ var import_reduce = require("./reduce");
|
|
|
39
44
|
var loadableRenderer = __toESM(require("./loadable"));
|
|
40
45
|
var styledComponentRenderer = __toESM(require("./styledComponent"));
|
|
41
46
|
const buildTemplateData = (context, data, renderLevel) => {
|
|
42
|
-
const { request } = context;
|
|
47
|
+
const { request, enableUnsafeCtx } = context;
|
|
48
|
+
const unsafeContext = {
|
|
49
|
+
headers: request.headers
|
|
50
|
+
};
|
|
43
51
|
return {
|
|
44
52
|
data,
|
|
45
53
|
context: {
|
|
@@ -49,8 +57,7 @@ const buildTemplateData = (context, data, renderLevel) => {
|
|
|
49
57
|
pathname: request.pathname,
|
|
50
58
|
host: request.host,
|
|
51
59
|
url: request.url,
|
|
52
|
-
|
|
53
|
-
cookieMap: request.cookieMap
|
|
60
|
+
...enableUnsafeCtx ? unsafeContext : {}
|
|
54
61
|
}
|
|
55
62
|
},
|
|
56
63
|
renderLevel
|
|
@@ -96,13 +103,18 @@ class Entry {
|
|
|
96
103
|
if ((_c = ssrContext.redirection) == null ? void 0 : _c.url) {
|
|
97
104
|
return "";
|
|
98
105
|
}
|
|
106
|
+
const { routerContext } = context;
|
|
107
|
+
const routerData = routerContext ? {
|
|
108
|
+
loaderData: routerContext.loaderData,
|
|
109
|
+
errors: (0, import_utils.serializeErrors)(routerContext.errors)
|
|
110
|
+
} : void 0;
|
|
99
111
|
let html = "";
|
|
100
112
|
const templateData = buildTemplateData(
|
|
101
113
|
ssrContext,
|
|
102
114
|
prefetchData,
|
|
103
115
|
this.result.renderLevel
|
|
104
116
|
);
|
|
105
|
-
const SSRData = this.getSSRDataScript(templateData);
|
|
117
|
+
const SSRData = this.getSSRDataScript(templateData, routerData);
|
|
106
118
|
for (const fragment of this.fragments) {
|
|
107
119
|
if (fragment.isVariable && fragment.content === "SSRDataScript") {
|
|
108
120
|
html += fragment.getValue(SSRData);
|
|
@@ -159,13 +171,18 @@ class Entry {
|
|
|
159
171
|
}
|
|
160
172
|
return html;
|
|
161
173
|
}
|
|
162
|
-
getSSRDataScript(templateData) {
|
|
174
|
+
getSSRDataScript(templateData, routerData) {
|
|
175
|
+
let ssrDataScripts = `<script>window._SSR_DATA = ${(0, import_serialize.serializeJson)(
|
|
176
|
+
templateData
|
|
177
|
+
)}</script>`;
|
|
178
|
+
if (routerData) {
|
|
179
|
+
ssrDataScripts += `
|
|
180
|
+
<script>window._ROUTER_DATA = ${(0, import_serialize.serializeJson)(
|
|
181
|
+
routerData
|
|
182
|
+
)}</script>`;
|
|
183
|
+
}
|
|
163
184
|
return {
|
|
164
|
-
SSRDataScript:
|
|
165
|
-
<script>window._SSR_DATA = ${(0, import_serialize_javascript.default)(templateData, {
|
|
166
|
-
isJSON: true
|
|
167
|
-
})}<\/script>
|
|
168
|
-
`
|
|
185
|
+
SSRDataScript: ssrDataScripts
|
|
169
186
|
};
|
|
170
187
|
}
|
|
171
188
|
}
|
|
@@ -17,6 +17,10 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
17
17
|
return to;
|
|
18
18
|
};
|
|
19
19
|
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
20
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
21
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
22
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
23
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
20
24
|
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
21
25
|
mod
|
|
22
26
|
));
|
|
@@ -58,7 +58,7 @@ const toHtml = (jsx, renderer, next) => {
|
|
|
58
58
|
}
|
|
59
59
|
chunksMap[fileType] += `<script src="${v.url}" ${props.join(
|
|
60
60
|
" "
|
|
61
|
-
)}
|
|
61
|
+
)}></script>`;
|
|
62
62
|
} else if (fileType === "css") {
|
|
63
63
|
chunksMap[fileType] += `<link href="${v.url}" rel="stylesheet" />`;
|
|
64
64
|
}
|
|
@@ -21,7 +21,7 @@ __export(time_worker_exports, {
|
|
|
21
21
|
});
|
|
22
22
|
module.exports = __toCommonJS(time_worker_exports);
|
|
23
23
|
function processHrtime(previousTimestamp) {
|
|
24
|
-
const now = new Date().getTime();
|
|
24
|
+
const now = (/* @__PURE__ */ new Date()).getTime();
|
|
25
25
|
const clocktime = now * 1e-3;
|
|
26
26
|
let seconds = Math.floor(clocktime);
|
|
27
27
|
let nanoseconds = Math.floor(clocktime % 1 * 1e9);
|
|
@@ -26,7 +26,7 @@ function getLoadableScripts(extractor) {
|
|
|
26
26
|
if (!check(scripts)) {
|
|
27
27
|
return "";
|
|
28
28
|
}
|
|
29
|
-
return scripts.split("
|
|
29
|
+
return scripts.split("</script>").slice(0, 2).map((i) => `${i}</script>`).join("");
|
|
30
30
|
}
|
|
31
31
|
// Annotate the CommonJS export names for ESM import in node:
|
|
32
32
|
0 && (module.exports = {
|
package/dist/cjs/ssr/utils.js
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
|
+
var __create = Object.create;
|
|
1
2
|
var __defProp = Object.defineProperty;
|
|
2
3
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
3
4
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
4
6
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
5
7
|
var __export = (target, all) => {
|
|
6
8
|
for (var name in all)
|
|
@@ -14,6 +16,14 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
14
16
|
}
|
|
15
17
|
return to;
|
|
16
18
|
};
|
|
19
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
20
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
21
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
22
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
23
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
24
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
25
|
+
mod
|
|
26
|
+
));
|
|
17
27
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
18
28
|
var utils_exports = {};
|
|
19
29
|
__export(utils_exports, {
|
|
@@ -24,6 +34,7 @@ __export(utils_exports, {
|
|
|
24
34
|
mockResponse: () => mockResponse
|
|
25
35
|
});
|
|
26
36
|
module.exports = __toCommonJS(utils_exports);
|
|
37
|
+
var import_cookie = __toESM(require("cookie"));
|
|
27
38
|
const isReact18 = () => process.env.IS_REACT18 === "true";
|
|
28
39
|
const formatServer = (request) => {
|
|
29
40
|
const {
|
|
@@ -33,6 +44,7 @@ const formatServer = (request) => {
|
|
|
33
44
|
} = request.headers || {};
|
|
34
45
|
return {
|
|
35
46
|
cookie,
|
|
47
|
+
cookieMap: import_cookie.default.parse(cookie || "") || {},
|
|
36
48
|
userAgent,
|
|
37
49
|
referer,
|
|
38
50
|
...request
|
|
@@ -46,15 +58,15 @@ const getQuery = () => window.location.search.substring(1).split("&").reduce((re
|
|
|
46
58
|
return res;
|
|
47
59
|
}, {});
|
|
48
60
|
const formatClient = (request) => {
|
|
49
|
-
var _a
|
|
61
|
+
var _a;
|
|
50
62
|
return {
|
|
51
63
|
params: request.params || {},
|
|
52
64
|
host: request.host || location.host,
|
|
53
65
|
pathname: request.pathname || location.pathname,
|
|
54
66
|
headers: request.headers || {},
|
|
55
|
-
cookieMap:
|
|
56
|
-
cookie:
|
|
57
|
-
userAgent: ((
|
|
67
|
+
cookieMap: import_cookie.default.parse(document.cookie || "") || {},
|
|
68
|
+
cookie: document.cookie || "",
|
|
69
|
+
userAgent: ((_a = request.headers) == null ? void 0 : _a["user-agent"]) || navigator.userAgent,
|
|
58
70
|
referer: request.referer || document.referrer,
|
|
59
71
|
query: request.query || getQuery(),
|
|
60
72
|
url: location.href
|
package/dist/cjs/state/index.js
CHANGED
|
@@ -18,6 +18,10 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
18
18
|
};
|
|
19
19
|
var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
|
|
20
20
|
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
21
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
22
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
23
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
24
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
21
25
|
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
22
26
|
mod
|
|
23
27
|
));
|
|
@@ -17,6 +17,10 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
17
17
|
return to;
|
|
18
18
|
};
|
|
19
19
|
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
20
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
21
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
22
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
23
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
20
24
|
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
21
25
|
mod
|
|
22
26
|
));
|
|
@@ -18,6 +18,10 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
18
18
|
};
|
|
19
19
|
var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
|
|
20
20
|
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
21
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
22
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
23
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
24
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
21
25
|
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
22
26
|
mod
|
|
23
27
|
));
|
|
@@ -18,6 +18,10 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
18
18
|
};
|
|
19
19
|
var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
|
|
20
20
|
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
21
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
22
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
23
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
24
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
21
25
|
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
22
26
|
mod
|
|
23
27
|
));
|
|
@@ -70,13 +74,7 @@ const state = (config) => ({
|
|
|
70
74
|
hoc({ App }, next) {
|
|
71
75
|
const getStateApp = (props) => {
|
|
72
76
|
const context = (0, import_react.useContext)(import_core.RuntimeReactContext);
|
|
73
|
-
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_react2.Provider, {
|
|
74
|
-
store: context.store,
|
|
75
|
-
config: storeConfig,
|
|
76
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(App, {
|
|
77
|
-
...props
|
|
78
|
-
})
|
|
79
|
-
});
|
|
77
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_react2.Provider, { store: context.store, config: storeConfig, children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(App, { ...props }) });
|
|
80
78
|
};
|
|
81
79
|
return next({
|
|
82
80
|
App: (0, import_hoist_non_react_statics.default)(getStateApp, App)
|
package/dist/esm/cli/index.js
CHANGED
|
@@ -154,7 +154,11 @@ var cli_default = function() {
|
|
|
154
154
|
runtimeByEntries: {},
|
|
155
155
|
source: {
|
|
156
156
|
alias: {
|
|
157
|
-
|
|
157
|
+
/**
|
|
158
|
+
* twin.macro inserts styled-components into the code during the compilation process
|
|
159
|
+
* But it will not be installed under the user project.
|
|
160
|
+
* So need to add alias
|
|
161
|
+
*/ "styled-components": require.resolve("styled-components")
|
|
158
162
|
},
|
|
159
163
|
globalVars: {
|
|
160
164
|
"process.env.IS_REACT18": process.env.IS_REACT18
|
package/dist/esm/common.js
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
var isBrowser = function() {
|
|
2
2
|
return typeof window !== "undefined" && window.name !== "nodejs";
|
|
3
3
|
};
|
|
4
|
-
|
|
4
|
+
var JSX_SHELL_STREAM_END_MARK = "<!--<?- SHELL_STREAM_END ?>-->";
|
|
5
|
+
var ESCAPED_SHELL_STREAM_END_MARK = "<!--<?- SHELL_STREAM_END ?>-->";
|
|
6
|
+
export { ESCAPED_SHELL_STREAM_END_MARK, JSX_SHELL_STREAM_END_MARK, isBrowser };
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
var APP_CONFIG_SYMBOL = "config";
|
|
2
2
|
var getConfig = function(Component) {
|
|
3
|
-
return
|
|
3
|
+
return(// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
4
|
+
// @ts-expect-error
|
|
5
|
+
Component[APP_CONFIG_SYMBOL]);
|
|
4
6
|
};
|
|
5
7
|
var defineConfig = function(Component, config) {
|
|
6
8
|
Component[APP_CONFIG_SYMBOL] = config;
|
|
@@ -213,7 +213,7 @@ import { jsx } from "react/jsx-runtime";
|
|
|
213
213
|
import React, { useContext, useMemo } from "react";
|
|
214
214
|
import hoistNonReactStatics from "hoist-non-react-statics";
|
|
215
215
|
import { ROUTE_MANIFEST } from "@modern-js/utils/constants";
|
|
216
|
-
import { RuntimeReactContext } from "../
|
|
216
|
+
import { RuntimeReactContext } from "../runtimeContext";
|
|
217
217
|
import { runtime } from "./plugin";
|
|
218
218
|
import { createLoaderManager } from "./loader/loaderManager";
|
|
219
219
|
var IS_REACT18 = process.env.IS_REACT18 === "true";
|
|
@@ -419,11 +419,13 @@ var bootstrap = function() {
|
|
|
419
419
|
isBrowser: false,
|
|
420
420
|
loaderManager: createLoaderManager({}, {
|
|
421
421
|
skipNonStatic: id.staticGenerate,
|
|
422
|
+
// if not static generate, only non-static loader can exec on prod env
|
|
422
423
|
skipStatic: process.env.NODE_ENV === "production" && !id.staticGenerate
|
|
423
424
|
})
|
|
424
425
|
});
|
|
425
426
|
isRedirectResponse = function(result) {
|
|
426
|
-
if (typeof Response !== "undefined" &&
|
|
427
|
+
if (typeof Response !== "undefined" && // fix: ssg workflow doesn't inject Web Response
|
|
428
|
+
_instanceof(result, Response) && result.status >= 300 && result.status <= 399) {
|
|
427
429
|
var status = result.status;
|
|
428
430
|
var redirectUrl = result.headers.get("Location") || "/";
|
|
429
431
|
var ssrContext = context.ssrContext;
|
package/dist/esm/core/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { createPlugin, createRuntime, runtime, registerInit } from "./plugin";
|
|
2
|
-
import { defineConfig, getConfig } from "./
|
|
2
|
+
import { defineConfig, getConfig } from "./appConfig";
|
|
3
3
|
export * from "./compatible";
|
|
4
|
-
import { RuntimeReactContext, ServerRouterContext } from "../
|
|
4
|
+
import { RuntimeReactContext, ServerRouterContext } from "../runtimeContext";
|
|
5
5
|
export * from "./loader";
|
|
6
6
|
export * from "@modern-js/plugin";
|
|
7
7
|
export { RuntimeReactContext, ServerRouterContext, createPlugin, createRuntime, defineConfig, getConfig, registerInit, runtime };
|
|
@@ -266,6 +266,7 @@ var createLoader = function(id) {
|
|
|
266
266
|
reloading: hasLoaded && status === 1 /* loading */ ,
|
|
267
267
|
data: data,
|
|
268
268
|
error: _instanceof(error, Error) ? "".concat(error.message) : error,
|
|
269
|
+
// redundant fields for ssr log
|
|
269
270
|
_error: error
|
|
270
271
|
};
|
|
271
272
|
};
|
|
@@ -306,7 +307,8 @@ var createLoaderManager = function(initialDataMap) {
|
|
|
306
307
|
var skipExec = ignoreNonStatic || ignoreStatic;
|
|
307
308
|
loader = createLoader(id, typeof initialDataMap[id] !== "undefined" ? initialDataMap[id] : {
|
|
308
309
|
data: loaderOptions.initialData
|
|
309
|
-
}, loaderFn,
|
|
310
|
+
}, loaderFn, // Todo whether static loader is exec when CSR
|
|
311
|
+
skipExec);
|
|
310
312
|
loadersMap.set(id, loader);
|
|
311
313
|
}
|
|
312
314
|
return id;
|
|
@@ -105,7 +105,7 @@ function _unsupportedIterableToArray(o, minLen) {
|
|
|
105
105
|
}
|
|
106
106
|
import { useContext, useRef, useMemo, useState, useCallback, useEffect } from "react";
|
|
107
107
|
import invariant from "invariant";
|
|
108
|
-
import { RuntimeReactContext } from "../../
|
|
108
|
+
import { RuntimeReactContext } from "../../runtimeContext";
|
|
109
109
|
import { LoaderStatus } from "./loaderManager";
|
|
110
110
|
var useLoader = function(loaderFn) {
|
|
111
111
|
var options = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";
|
|
@@ -236,7 +236,7 @@ var cli_default = function() {
|
|
|
236
236
|
case 0:
|
|
237
237
|
htmlWebpackPlugin = param.htmlWebpackPlugin;
|
|
238
238
|
documentParams = getDocParams({
|
|
239
|
-
config: api.
|
|
239
|
+
config: api.useResolvedConfigContext(),
|
|
240
240
|
entryName: entryName,
|
|
241
241
|
templateParameters: templateParameters
|
|
242
242
|
});
|
|
@@ -285,6 +285,7 @@ var cli_default = function() {
|
|
|
285
285
|
],
|
|
286
286
|
outfile: htmlOutputFile,
|
|
287
287
|
platform: "node",
|
|
288
|
+
// change esbuild use the rootDir tsconfig.json as default to tempTsConfigFile
|
|
288
289
|
tsconfig: tempTsConfigFile,
|
|
289
290
|
target: "es6",
|
|
290
291
|
loader: {
|
|
@@ -370,7 +371,8 @@ var cli_default = function() {
|
|
|
370
371
|
tools: {
|
|
371
372
|
htmlPlugin: function(options, entry) {
|
|
372
373
|
var hackParameters = typeof (options === null || options === void 0 ? void 0 : options.templateParameters) === "function" ? options === null || options === void 0 ? void 0 : options.templateParameters({}, {}, {}, {}) : _objectSpread({}, options === null || options === void 0 ? void 0 : options.templateParameters);
|
|
373
|
-
var templateContent = documentEntry(entry.entryName,
|
|
374
|
+
var templateContent = documentEntry(entry.entryName, // options,
|
|
375
|
+
hackParameters);
|
|
374
376
|
var documentHtmlOptions = templateContent ? {
|
|
375
377
|
templateContent: templateContent,
|
|
376
378
|
inject: false
|
|
@@ -50,13 +50,9 @@ function _objectSpreadProps(target, source) {
|
|
|
50
50
|
}
|
|
51
51
|
return target;
|
|
52
52
|
}
|
|
53
|
-
import { getEntryOptions, createRuntimeExportsUtils, PLUGIN_SCHEMAS } from "@modern-js/utils";
|
|
53
|
+
import { getEntryOptions, createRuntimeExportsUtils, PLUGIN_SCHEMAS, isRouterV5 as isV5 } from "@modern-js/utils";
|
|
54
54
|
var PLUGIN_IDENTIFIER = "router";
|
|
55
55
|
var ROUTES_IDENTIFIER = "routes";
|
|
56
|
-
var isV5 = function(config) {
|
|
57
|
-
var _config_runtime, _config_runtime_router;
|
|
58
|
-
return (config === null || config === void 0 ? void 0 : (_config_runtime = config.runtime) === null || _config_runtime === void 0 ? void 0 : (_config_runtime_router = _config_runtime.router) === null || _config_runtime_router === void 0 ? void 0 : _config_runtime_router.mode) === "react-router-5";
|
|
59
|
-
};
|
|
60
56
|
var cli_default = function() {
|
|
61
57
|
return {
|
|
62
58
|
name: "@modern-js/plugin-router",
|
|
@@ -0,0 +1,166 @@
|
|
|
1
|
+
function _arrayLikeToArray(arr, len) {
|
|
2
|
+
if (len == null || len > arr.length) len = arr.length;
|
|
3
|
+
for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
|
|
4
|
+
return arr2;
|
|
5
|
+
}
|
|
6
|
+
function _arrayWithHoles(arr) {
|
|
7
|
+
if (Array.isArray(arr)) return arr;
|
|
8
|
+
}
|
|
9
|
+
function _iterableToArrayLimit(arr, i) {
|
|
10
|
+
var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"];
|
|
11
|
+
if (_i == null) return;
|
|
12
|
+
var _arr = [];
|
|
13
|
+
var _n = true;
|
|
14
|
+
var _d = false;
|
|
15
|
+
var _s, _e;
|
|
16
|
+
try {
|
|
17
|
+
for(_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true){
|
|
18
|
+
_arr.push(_s.value);
|
|
19
|
+
if (i && _arr.length === i) break;
|
|
20
|
+
}
|
|
21
|
+
} catch (err) {
|
|
22
|
+
_d = true;
|
|
23
|
+
_e = err;
|
|
24
|
+
} finally{
|
|
25
|
+
try {
|
|
26
|
+
if (!_n && _i["return"] != null) _i["return"]();
|
|
27
|
+
} finally{
|
|
28
|
+
if (_d) throw _e;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
return _arr;
|
|
32
|
+
}
|
|
33
|
+
function _nonIterableRest() {
|
|
34
|
+
throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
|
|
35
|
+
}
|
|
36
|
+
function _slicedToArray(arr, i) {
|
|
37
|
+
return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();
|
|
38
|
+
}
|
|
39
|
+
function _unsupportedIterableToArray(o, minLen) {
|
|
40
|
+
if (!o) return;
|
|
41
|
+
if (typeof o === "string") return _arrayLikeToArray(o, minLen);
|
|
42
|
+
var n = Object.prototype.toString.call(o).slice(8, -1);
|
|
43
|
+
if (n === "Object" && o.constructor) n = o.constructor.name;
|
|
44
|
+
if (n === "Map" || n === "Set") return Array.from(n);
|
|
45
|
+
if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);
|
|
46
|
+
}
|
|
47
|
+
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
48
|
+
import { Suspense, useEffect, useRef, useMemo, useContext } from "react";
|
|
49
|
+
import { Await, UNSAFE_DataRouterContext as DataRouterContext, useAsyncError } from "react-router-dom";
|
|
50
|
+
import { serializeJson } from "@modern-js/utils/serialize";
|
|
51
|
+
import { JSX_SHELL_STREAM_END_MARK } from "../../common";
|
|
52
|
+
import { serializeErrors } from "./utils";
|
|
53
|
+
var 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}}))};";
|
|
54
|
+
var resolveFnStr = "function r(e,r,o,A){A?_ROUTER_DATA.r[e][r].reject(A):_ROUTER_DATA.r[e][r].resolve(o)};";
|
|
55
|
+
var preResolvedFnStr = "function p(e,r){return void 0!==r?Promise.reject(new Error(r.message)):Promise.resovle(e)};";
|
|
56
|
+
var DeferredDataScripts = function() {
|
|
57
|
+
var context = useContext(DataRouterContext);
|
|
58
|
+
var staticContext = (context || {}).staticContext;
|
|
59
|
+
var hydratedRef = useRef(false);
|
|
60
|
+
useEffect(function() {
|
|
61
|
+
hydratedRef.current = true;
|
|
62
|
+
}, []);
|
|
63
|
+
var deferredScripts = useMemo(function() {
|
|
64
|
+
if (!staticContext) {
|
|
65
|
+
return null;
|
|
66
|
+
}
|
|
67
|
+
var activeDeferreds = staticContext.activeDeferreds || [];
|
|
68
|
+
var _ROUTER_DATA = {
|
|
69
|
+
loaderData: staticContext.loaderData,
|
|
70
|
+
errors: serializeErrors(staticContext.errors)
|
|
71
|
+
};
|
|
72
|
+
var initialScripts = [
|
|
73
|
+
"_ROUTER_DATA = ".concat(serializeJson(_ROUTER_DATA), ";"),
|
|
74
|
+
"_ROUTER_DATA.s = ".concat(setupFnStr),
|
|
75
|
+
"_ROUTER_DATA.r = ".concat(resolveFnStr),
|
|
76
|
+
"_ROUTER_DATA.p = ".concat(preResolvedFnStr)
|
|
77
|
+
].join("\n");
|
|
78
|
+
var deferredDataScripts = [];
|
|
79
|
+
initialScripts += Object.entries(activeDeferreds).map(function(param) {
|
|
80
|
+
var _param = _slicedToArray(param, 2), routeId = _param[0], deferredData = _param[1];
|
|
81
|
+
var pendingKeys = new Set(deferredData.pendingKeys);
|
|
82
|
+
var deferredKeys = deferredData.deferredKeys;
|
|
83
|
+
var deferredKeyPromiseStr = deferredKeys.map(function(key) {
|
|
84
|
+
if (pendingKeys.has(key)) {
|
|
85
|
+
deferredDataScripts.push(/* @__PURE__ */ jsx(DeferredDataScript, {
|
|
86
|
+
data: deferredData.data[key],
|
|
87
|
+
dataKey: key,
|
|
88
|
+
routeId: routeId
|
|
89
|
+
}, "".concat(routeId, " | ").concat(key)));
|
|
90
|
+
return "".concat(JSON.stringify(key), ": _ROUTER_DATA.s(").concat(JSON.stringify(routeId), ",").concat(JSON.stringify(key), ") ");
|
|
91
|
+
} else {
|
|
92
|
+
var trackedPromise = deferredData.data[key];
|
|
93
|
+
if (typeof trackedPromise._error !== "undefined") {
|
|
94
|
+
var error = {
|
|
95
|
+
message: trackedPromise._error.message,
|
|
96
|
+
stack: process.env.NODE_ENV !== "production" ? trackedPromise._error.stack : void 0
|
|
97
|
+
};
|
|
98
|
+
return "".concat(JSON.stringify(key), ": _ROUTER_DATA.p(").concat(void 0, ", ").concat(serializeJson(error), ")");
|
|
99
|
+
} else {
|
|
100
|
+
if (typeof trackedPromise._data === "undefined") {
|
|
101
|
+
throw new Error("The deferred data for ".concat(key, " was not resolved, did you forget to return data from a deferred promise"));
|
|
102
|
+
}
|
|
103
|
+
return "".concat(JSON.stringify(key), ": _ROUTER_DATA.p(").concat(serializeJson(trackedPromise._data), ")");
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
}).join(",\n");
|
|
107
|
+
return "Object.assign(_ROUTER_DATA.loaderData[".concat(JSON.stringify(routeId), "], {").concat(deferredKeyPromiseStr, "});");
|
|
108
|
+
}).join("\n");
|
|
109
|
+
return [
|
|
110
|
+
initialScripts,
|
|
111
|
+
deferredDataScripts
|
|
112
|
+
];
|
|
113
|
+
}, []);
|
|
114
|
+
if (!deferredScripts) {
|
|
115
|
+
return null;
|
|
116
|
+
}
|
|
117
|
+
return /* @__PURE__ */ jsxs(Fragment, {
|
|
118
|
+
children: [
|
|
119
|
+
!hydratedRef.current && /* @__PURE__ */ jsx("script", {
|
|
120
|
+
async: true,
|
|
121
|
+
suppressHydrationWarning: true,
|
|
122
|
+
dangerouslySetInnerHTML: {
|
|
123
|
+
__html: deferredScripts[0]
|
|
124
|
+
}
|
|
125
|
+
}),
|
|
126
|
+
!hydratedRef.current && deferredScripts[1],
|
|
127
|
+
JSX_SHELL_STREAM_END_MARK
|
|
128
|
+
]
|
|
129
|
+
});
|
|
130
|
+
};
|
|
131
|
+
var DeferredDataScript = function(param) {
|
|
132
|
+
var data = param.data, routeId = param.routeId, dataKey = param.dataKey;
|
|
133
|
+
return /* @__PURE__ */ jsx(Suspense, {
|
|
134
|
+
children: typeof document === "undefined" && data && dataKey && routeId ? /* @__PURE__ */ jsx(Await, {
|
|
135
|
+
resolve: data,
|
|
136
|
+
errorElement: /* @__PURE__ */ jsx(ErrorDeferredDataScript, {
|
|
137
|
+
routeId: routeId,
|
|
138
|
+
dataKey: dataKey
|
|
139
|
+
}),
|
|
140
|
+
children: function(data2) {
|
|
141
|
+
return /* @__PURE__ */ jsx("script", {
|
|
142
|
+
async: true,
|
|
143
|
+
suppressHydrationWarning: true,
|
|
144
|
+
dangerouslySetInnerHTML: {
|
|
145
|
+
__html: "_ROUTER_DATA.r(".concat(JSON.stringify(routeId), ", ").concat(JSON.stringify(dataKey), ", ").concat(serializeJson(data2), ");")
|
|
146
|
+
}
|
|
147
|
+
});
|
|
148
|
+
}
|
|
149
|
+
}) : null
|
|
150
|
+
});
|
|
151
|
+
};
|
|
152
|
+
var ErrorDeferredDataScript = function(param) {
|
|
153
|
+
var routeId = param.routeId, dataKey = param.dataKey;
|
|
154
|
+
var error = useAsyncError();
|
|
155
|
+
return /* @__PURE__ */ jsx("script", {
|
|
156
|
+
suppressHydrationWarning: true,
|
|
157
|
+
dangerouslySetInnerHTML: {
|
|
158
|
+
__html: "_ROUTER_DATA.r(".concat(JSON.stringify(routeId), ", ").concat(JSON.stringify(dataKey), ", ").concat(void 0, ", ").concat(serializeJson({
|
|
159
|
+
message: error.message,
|
|
160
|
+
stack: error.stack
|
|
161
|
+
}), ");")
|
|
162
|
+
}
|
|
163
|
+
});
|
|
164
|
+
};
|
|
165
|
+
var DeferredDataScripts_default = DeferredDataScripts;
|
|
166
|
+
export { DeferredDataScripts_default as default };
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { routerPlugin } from "./plugin";
|
|
2
2
|
var runtime_default = routerPlugin;
|
|
3
3
|
import { modifyRoutes } from "./plugin";
|
|
4
|
-
export * from "react-router-dom";
|
|
5
4
|
export * from "./withRouter";
|
|
6
|
-
|
|
5
|
+
import { createBrowserRouter, createHashRouter, createMemoryRouter, RouterProvider, BrowserRouter, HashRouter, MemoryRouter, Router, Await, Form, Link, NavLink, Navigate, Outlet, Route, Routes, ScrollRestoration, useActionData, useAsyncError, useAsyncValue, useBeforeUnload, useFetcher, useFetchers, useFormAction, useHref, useInRouterContext, useLinkClickHandler, useLoaderData, useLocation, useMatch, useMatches, useNavigate, useNavigation, useNavigationType, useOutlet, useOutletContext, useParams, useResolvedPath, useRevalidator, useRouteError, useRouteLoaderData, useRoutes, useSearchParams, useSubmit, createRoutesFromChildren, createRoutesFromElements, createSearchParams, generatePath, isRouteErrorResponse, matchPath, matchRoutes, renderMatches, resolvePath } from "react-router-dom";
|
|
6
|
+
import { defer, json, redirect } from "@modern-js/utils/remix-router";
|
|
7
|
+
export { Await, BrowserRouter, Form, HashRouter, Link, MemoryRouter, NavLink, Navigate, Outlet, Route, Router, RouterProvider, Routes, ScrollRestoration, createBrowserRouter, createHashRouter, createMemoryRouter, createRoutesFromChildren, createRoutesFromElements, createSearchParams, runtime_default as default, defer, generatePath, isRouteErrorResponse, json, matchPath, matchRoutes, modifyRoutes, redirect, renderMatches, resolvePath, useActionData, useAsyncError, useAsyncValue, useBeforeUnload, useFetcher, useFetchers, useFormAction, useHref, useInRouterContext, useLinkClickHandler, useLoaderData, useLocation, useMatch, useMatches, useNavigate, useNavigation, useNavigationType, useOutlet, useOutletContext, useParams, useResolvedPath, useRevalidator, useRouteError, useRouteLoaderData, useRoutes, useSearchParams, useSubmit };
|
|
@@ -53,7 +53,7 @@ function _objectSpreadProps(target, source) {
|
|
|
53
53
|
import { jsx } from "react/jsx-runtime";
|
|
54
54
|
import { createBrowserRouter, createHashRouter, RouterProvider, createRoutesFromElements, useMatches, useLocation } from "react-router-dom";
|
|
55
55
|
import hoistNonReactStatics from "hoist-non-react-statics";
|
|
56
|
-
import { renderRoutes, urlJoin } from "./utils";
|
|
56
|
+
import { deserializeErrors, renderRoutes, urlJoin } from "./utils";
|
|
57
57
|
var finalRouteConfig = {
|
|
58
58
|
routes: []
|
|
59
59
|
};
|
|
@@ -103,10 +103,18 @@ var routerPlugin = function(param) {
|
|
|
103
103
|
var routes = createRoutes ? createRoutes() : createRoutesFromElements(renderRoutes(finalRouteConfig));
|
|
104
104
|
var baseUrl = ((_window__SERVER_DATA = window._SERVER_DATA) === null || _window__SERVER_DATA === void 0 ? void 0 : _window__SERVER_DATA.router.baseUrl) || select(location.pathname);
|
|
105
105
|
var _basename = baseUrl === "/" ? urlJoin(baseUrl, basename) : baseUrl;
|
|
106
|
+
var hydrationData = window._ROUTER_DATA;
|
|
107
|
+
if (hydrationData === null || hydrationData === void 0 ? void 0 : hydrationData.errors) {
|
|
108
|
+
hydrationData = _objectSpreadProps(_objectSpread({}, hydrationData), {
|
|
109
|
+
errors: deserializeErrors(hydrationData.errors)
|
|
110
|
+
});
|
|
111
|
+
}
|
|
106
112
|
var router = supportHtml5History ? createBrowserRouter(routes, {
|
|
107
|
-
basename: _basename
|
|
113
|
+
basename: _basename,
|
|
114
|
+
hydrationData: hydrationData
|
|
108
115
|
}) : createHashRouter(routes, {
|
|
109
|
-
basename: _basename
|
|
116
|
+
basename: _basename,
|
|
117
|
+
hydrationData: hydrationData
|
|
110
118
|
});
|
|
111
119
|
return /* @__PURE__ */ jsx(App, _objectSpreadProps(_objectSpread({}, props), {
|
|
112
120
|
children: /* @__PURE__ */ jsx(RouterProvider, {
|