@modern-js/runtime 2.5.0-alpha.0 → 2.6.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 +27 -0
- package/dist/cjs/cli/index.js +9 -0
- package/dist/cjs/common.js +0 -6
- package/dist/cjs/core/app-config.js +5 -1
- package/dist/cjs/core/compatible.js +8 -7
- 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 +4 -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 +7 -1
- 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/index.js +3 -52
- package/dist/cjs/router/runtime/plugin.js +6 -14
- package/dist/cjs/router/runtime/plugin.node.js +54 -10
- package/dist/cjs/router/runtime/utils.js +80 -28
- package/dist/cjs/router/runtime/withRouter.js +9 -6
- package/dist/cjs/ssr/cli/babel-plugin-ssr-loader-id.js +4 -0
- package/dist/cjs/ssr/cli/index.js +4 -0
- package/dist/cjs/ssr/index.js +10 -24
- package/dist/cjs/ssr/index.node.js +4 -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 +19 -5
- 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 +7 -22
- package/dist/cjs/ssr/serverRender/renderToStream/template.js +1 -2
- package/dist/cjs/ssr/serverRender/renderToString/entry.js +14 -12
- 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 +1 -3
- package/dist/esm/core/app-config.js +3 -1
- package/dist/esm/core/compatible.js +3 -1
- package/dist/esm/core/loader/loaderManager.js +3 -1
- package/dist/esm/document/cli/index.js +3 -1
- package/dist/esm/router/cli/index.js +1 -5
- package/dist/esm/router/runtime/index.js +2 -3
- package/dist/esm/router/runtime/plugin.js +2 -5
- package/dist/esm/router/runtime/plugin.node.js +65 -8
- package/dist/esm/router/runtime/utils.js +106 -5
- package/dist/esm/ssr/prefetch.js +1 -0
- package/dist/esm/ssr/serverRender/renderToStream/buildTemplate.after.js +39 -8
- package/dist/esm/ssr/serverRender/renderToStream/bulidTemplate.before.js +1 -0
- package/dist/esm/ssr/serverRender/renderToStream/renderToPipe.js +8 -19
- package/dist/esm/ssr/serverRender/renderToStream/template.js +1 -2
- package/dist/esm/ssr/serverRender/renderToString/entry.js +29 -16
- 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 +0 -4
- package/dist/esm-node/core/app-config.js +5 -1
- package/dist/esm-node/core/compatible.js +4 -7
- package/dist/esm-node/core/loader/loaderManager.js +2 -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 +3 -1
- 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/index.js +2 -51
- package/dist/esm-node/router/runtime/plugin.js +2 -14
- package/dist/esm-node/router/runtime/plugin.node.js +53 -10
- package/dist/esm-node/router/runtime/utils.js +80 -22
- package/dist/esm-node/router/runtime/withRouter.js +9 -6
- package/dist/esm-node/ssr/index.js +6 -24
- package/dist/esm-node/ssr/prefetch.js +3 -6
- package/dist/esm-node/ssr/serverRender/renderToStream/buildTemplate.after.js +9 -5
- package/dist/esm-node/ssr/serverRender/renderToStream/bulidTemplate.before.js +1 -0
- package/dist/esm-node/ssr/serverRender/renderToStream/renderToPipe.js +7 -22
- package/dist/esm-node/ssr/serverRender/renderToStream/template.js +1 -2
- package/dist/esm-node/ssr/serverRender/renderToString/entry.js +10 -12
- 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 +1 -3
- package/dist/types/core/index.d.ts +0 -1
- package/dist/types/core/loader/index.d.ts +2 -1
- package/dist/types/core/loader/useLoader.d.ts +15 -1
- package/dist/types/router/runtime/index.d.ts +2 -4
- package/dist/types/runtime-context.d.ts +0 -2
- package/dist/types/ssr/serverRender/renderToStream/buildTemplate.after.d.ts +0 -2
- package/dist/types/ssr/serverRender/renderToString/type.d.ts +1 -0
- package/package.json +17 -12
- package/dist/cjs/core/types.js +0 -15
- package/dist/cjs/router/index.node.js +0 -31
- package/dist/cjs/router/runtime/DeferredDataScripts.js +0 -148
- 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/core/types.js +0 -1
- package/dist/esm/router/index.node.js +0 -4
- package/dist/esm/router/runtime/DeferredDataScripts.js +0 -158
- 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/core/types.js +0 -0
- package/dist/esm-node/router/index.node.js +0 -7
- package/dist/esm-node/router/runtime/DeferredDataScripts.js +0 -131
- 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/core/types.d.ts +0 -21
- package/dist/types/router/index.node.d.ts +0 -3
- package/dist/types/router/runtime/DeferredDataScripts.d.ts +0 -8
- 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
|
@@ -1,158 +0,0 @@
|
|
|
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
|
-
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}}))};";
|
|
53
|
-
var resolveFnStr = "function r(e,r,o,A){A?_ROUTER_DATA.r[e][r].reject(A):_ROUTER_DATA.r[e][r].resolve(o)};";
|
|
54
|
-
var preResolvedFnStr = "function p(e,r){return void 0!==r?Promise.reject(new Error(r.message)):Promise.resovle(e)};";
|
|
55
|
-
var DeferredDataScripts = function() {
|
|
56
|
-
var context = useContext(DataRouterContext);
|
|
57
|
-
var staticContext = (context || {}).staticContext;
|
|
58
|
-
var hydratedRef = useRef(false);
|
|
59
|
-
useEffect(function() {
|
|
60
|
-
hydratedRef.current = true;
|
|
61
|
-
}, []);
|
|
62
|
-
var deferredScripts = useMemo(function() {
|
|
63
|
-
var activeDeferreds = (staticContext === null || staticContext === void 0 ? void 0 : staticContext.activeDeferreds) || [];
|
|
64
|
-
var _ROUTER_DATA = {
|
|
65
|
-
loaderData: staticContext === null || staticContext === void 0 ? void 0 : staticContext.loaderData
|
|
66
|
-
};
|
|
67
|
-
var initialScripts = [
|
|
68
|
-
"_ROUTER_DATA = ".concat(serializeJson(_ROUTER_DATA), ";"),
|
|
69
|
-
"_ROUTER_DATA.s = ".concat(setupFnStr),
|
|
70
|
-
"_ROUTER_DATA.r = ".concat(resolveFnStr),
|
|
71
|
-
"_ROUTER_DATA.p = ".concat(preResolvedFnStr)
|
|
72
|
-
].join("\n");
|
|
73
|
-
var deferredDataScripts = [];
|
|
74
|
-
initialScripts += Object.entries(activeDeferreds).map(function(param) {
|
|
75
|
-
var _param = _slicedToArray(param, 2), routeId = _param[0], deferredData = _param[1];
|
|
76
|
-
var pendingKeys = new Set(deferredData.pendingKeys);
|
|
77
|
-
var deferredKeys = deferredData.deferredKeys;
|
|
78
|
-
var deferredKeyPromiseStr = deferredKeys.map(function(key) {
|
|
79
|
-
if (pendingKeys.has(key)) {
|
|
80
|
-
deferredDataScripts.push(/* @__PURE__ */ jsx(DeferredDataScript, {
|
|
81
|
-
data: deferredData.data[key],
|
|
82
|
-
dataKey: key,
|
|
83
|
-
routeId: routeId
|
|
84
|
-
}, "".concat(routeId, " | ").concat(key)));
|
|
85
|
-
return "".concat(JSON.stringify(key), ": _ROUTER_DATA.s(").concat(JSON.stringify(routeId), ",").concat(JSON.stringify(key), ") ");
|
|
86
|
-
} else {
|
|
87
|
-
var trackedPromise = deferredData.data[key];
|
|
88
|
-
if (typeof trackedPromise._error !== "undefined") {
|
|
89
|
-
var error = {
|
|
90
|
-
message: trackedPromise._error.message,
|
|
91
|
-
stack: process.env.NODE_ENV !== "production" ? trackedPromise._error.stack : void 0
|
|
92
|
-
};
|
|
93
|
-
return "".concat(JSON.stringify(key), ": _ROUTER_DATA.p(").concat(void 0, ", ").concat(serializeJson(error), ")");
|
|
94
|
-
} else {
|
|
95
|
-
if (typeof trackedPromise._data === "undefined") {
|
|
96
|
-
throw new Error("The deferred data for ".concat(key, " was not resolved, did you forget to return data from a deferred promise"));
|
|
97
|
-
}
|
|
98
|
-
return "".concat(JSON.stringify(key), ": _ROUTER_DATA.p(").concat(serializeJson(trackedPromise._data), ")");
|
|
99
|
-
}
|
|
100
|
-
}
|
|
101
|
-
}).join(",\n");
|
|
102
|
-
return "Object.assign(_ROUTER_DATA.loaderData[".concat(JSON.stringify(routeId), "], {").concat(deferredKeyPromiseStr, "});");
|
|
103
|
-
}).join("\n");
|
|
104
|
-
return [
|
|
105
|
-
initialScripts,
|
|
106
|
-
deferredDataScripts
|
|
107
|
-
];
|
|
108
|
-
}, []);
|
|
109
|
-
return /* @__PURE__ */ jsxs(Fragment, {
|
|
110
|
-
children: [
|
|
111
|
-
!hydratedRef.current && /* @__PURE__ */ jsx("script", {
|
|
112
|
-
async: true,
|
|
113
|
-
suppressHydrationWarning: true,
|
|
114
|
-
dangerouslySetInnerHTML: {
|
|
115
|
-
__html: deferredScripts[0]
|
|
116
|
-
}
|
|
117
|
-
}),
|
|
118
|
-
!hydratedRef.current && deferredScripts[1],
|
|
119
|
-
JSX_SHELL_STREAM_END_MARK
|
|
120
|
-
]
|
|
121
|
-
});
|
|
122
|
-
};
|
|
123
|
-
var DeferredDataScript = function(param) {
|
|
124
|
-
var data = param.data, routeId = param.routeId, dataKey = param.dataKey;
|
|
125
|
-
return /* @__PURE__ */ jsx(Suspense, {
|
|
126
|
-
children: typeof document === "undefined" && data && dataKey && routeId ? /* @__PURE__ */ jsx(Await, {
|
|
127
|
-
resolve: data,
|
|
128
|
-
errorElement: /* @__PURE__ */ jsx(ErrorDeferredDataScript, {
|
|
129
|
-
routeId: routeId,
|
|
130
|
-
dataKey: dataKey
|
|
131
|
-
}),
|
|
132
|
-
children: function(data2) {
|
|
133
|
-
return /* @__PURE__ */ jsx("script", {
|
|
134
|
-
async: true,
|
|
135
|
-
suppressHydrationWarning: true,
|
|
136
|
-
dangerouslySetInnerHTML: {
|
|
137
|
-
__html: "_ROUTER_DATA.r(".concat(JSON.stringify(routeId), ", ").concat(JSON.stringify(dataKey), ", ").concat(serializeJson(data2), ");")
|
|
138
|
-
}
|
|
139
|
-
});
|
|
140
|
-
}
|
|
141
|
-
}) : null
|
|
142
|
-
});
|
|
143
|
-
};
|
|
144
|
-
var ErrorDeferredDataScript = function(param) {
|
|
145
|
-
var routeId = param.routeId, dataKey = param.dataKey;
|
|
146
|
-
var error = useAsyncError();
|
|
147
|
-
return /* @__PURE__ */ jsx("script", {
|
|
148
|
-
suppressHydrationWarning: true,
|
|
149
|
-
dangerouslySetInnerHTML: {
|
|
150
|
-
__html: "_ROUTER_DATA.r(".concat(JSON.stringify(routeId), ", ").concat(JSON.stringify(dataKey), ", ").concat(void 0, ", ").concat(serializeJson({
|
|
151
|
-
message: error.message,
|
|
152
|
-
stack: error.stack
|
|
153
|
-
}), ");")
|
|
154
|
-
}
|
|
155
|
-
});
|
|
156
|
-
};
|
|
157
|
-
var DeferredDataScripts_default = DeferredDataScripts;
|
|
158
|
-
export { DeferredDataScripts_default as default };
|
|
@@ -1,191 +0,0 @@
|
|
|
1
|
-
function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
|
|
2
|
-
try {
|
|
3
|
-
var info = gen[key](arg);
|
|
4
|
-
var value = info.value;
|
|
5
|
-
} catch (error) {
|
|
6
|
-
reject(error);
|
|
7
|
-
return;
|
|
8
|
-
}
|
|
9
|
-
if (info.done) {
|
|
10
|
-
resolve(value);
|
|
11
|
-
} else {
|
|
12
|
-
Promise.resolve(value).then(_next, _throw);
|
|
13
|
-
}
|
|
14
|
-
}
|
|
15
|
-
function _asyncToGenerator(fn) {
|
|
16
|
-
return function() {
|
|
17
|
-
var self = this, args = arguments;
|
|
18
|
-
return new Promise(function(resolve, reject) {
|
|
19
|
-
var gen = fn.apply(self, args);
|
|
20
|
-
function _next(value) {
|
|
21
|
-
asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);
|
|
22
|
-
}
|
|
23
|
-
function _throw(err) {
|
|
24
|
-
asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);
|
|
25
|
-
}
|
|
26
|
-
_next(undefined);
|
|
27
|
-
});
|
|
28
|
-
};
|
|
29
|
-
}
|
|
30
|
-
var __generator = this && this.__generator || function(thisArg, body) {
|
|
31
|
-
var f, y, t, g, _ = {
|
|
32
|
-
label: 0,
|
|
33
|
-
sent: function() {
|
|
34
|
-
if (t[0] & 1) throw t[1];
|
|
35
|
-
return t[1];
|
|
36
|
-
},
|
|
37
|
-
trys: [],
|
|
38
|
-
ops: []
|
|
39
|
-
};
|
|
40
|
-
return(g = {
|
|
41
|
-
next: verb(0),
|
|
42
|
-
"throw": verb(1),
|
|
43
|
-
"return": verb(2)
|
|
44
|
-
}, typeof Symbol === "function" && (g[Symbol.iterator] = function() {
|
|
45
|
-
return this;
|
|
46
|
-
}), g);
|
|
47
|
-
function verb(n) {
|
|
48
|
-
return function(v) {
|
|
49
|
-
return step([
|
|
50
|
-
n,
|
|
51
|
-
v
|
|
52
|
-
]);
|
|
53
|
-
};
|
|
54
|
-
}
|
|
55
|
-
function step(op) {
|
|
56
|
-
if (f) throw new TypeError("Generator is already executing.");
|
|
57
|
-
while(_)try {
|
|
58
|
-
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
59
|
-
if (y = 0, t) op = [
|
|
60
|
-
op[0] & 2,
|
|
61
|
-
t.value
|
|
62
|
-
];
|
|
63
|
-
switch(op[0]){
|
|
64
|
-
case 0:
|
|
65
|
-
case 1:
|
|
66
|
-
t = op;
|
|
67
|
-
break;
|
|
68
|
-
case 4:
|
|
69
|
-
_.label++;
|
|
70
|
-
return {
|
|
71
|
-
value: op[1],
|
|
72
|
-
done: false
|
|
73
|
-
};
|
|
74
|
-
case 5:
|
|
75
|
-
_.label++;
|
|
76
|
-
y = op[1];
|
|
77
|
-
op = [
|
|
78
|
-
0
|
|
79
|
-
];
|
|
80
|
-
continue;
|
|
81
|
-
case 7:
|
|
82
|
-
op = _.ops.pop();
|
|
83
|
-
_.trys.pop();
|
|
84
|
-
continue;
|
|
85
|
-
default:
|
|
86
|
-
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
|
|
87
|
-
_ = 0;
|
|
88
|
-
continue;
|
|
89
|
-
}
|
|
90
|
-
if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
|
|
91
|
-
_.label = op[1];
|
|
92
|
-
break;
|
|
93
|
-
}
|
|
94
|
-
if (op[0] === 6 && _.label < t[1]) {
|
|
95
|
-
_.label = t[1];
|
|
96
|
-
t = op;
|
|
97
|
-
break;
|
|
98
|
-
}
|
|
99
|
-
if (t && _.label < t[2]) {
|
|
100
|
-
_.label = t[2];
|
|
101
|
-
_.ops.push(op);
|
|
102
|
-
break;
|
|
103
|
-
}
|
|
104
|
-
if (t[2]) _.ops.pop();
|
|
105
|
-
_.trys.pop();
|
|
106
|
-
continue;
|
|
107
|
-
}
|
|
108
|
-
op = body.call(thisArg, _);
|
|
109
|
-
} catch (e) {
|
|
110
|
-
op = [
|
|
111
|
-
6,
|
|
112
|
-
e
|
|
113
|
-
];
|
|
114
|
-
y = 0;
|
|
115
|
-
} finally{
|
|
116
|
-
f = t = 0;
|
|
117
|
-
}
|
|
118
|
-
if (op[0] & 5) throw op[1];
|
|
119
|
-
return {
|
|
120
|
-
value: op[0] ? op[1] : void 0,
|
|
121
|
-
done: true
|
|
122
|
-
};
|
|
123
|
-
}
|
|
124
|
-
};
|
|
125
|
-
import { jsx } from "react/jsx-runtime";
|
|
126
|
-
import { renderToStaticMarkup } from "react-dom/server";
|
|
127
|
-
import { ChunkExtractor } from "@loadable/server";
|
|
128
|
-
var prefetch = function() {
|
|
129
|
-
var _ref = _asyncToGenerator(function(App, context) {
|
|
130
|
-
var _context_store, ssrContext, loadableStats, extractor, loadersData;
|
|
131
|
-
return __generator(this, function(_state) {
|
|
132
|
-
switch(_state.label){
|
|
133
|
-
case 0:
|
|
134
|
-
ssrContext = context.ssrContext;
|
|
135
|
-
loadableStats = ssrContext.loadableStats;
|
|
136
|
-
if (loadableStats) {
|
|
137
|
-
extractor = new ChunkExtractor({
|
|
138
|
-
stats: loadableStats,
|
|
139
|
-
entrypoints: [
|
|
140
|
-
ssrContext.entryName
|
|
141
|
-
].filter(Boolean)
|
|
142
|
-
});
|
|
143
|
-
renderToStaticMarkup(extractor.collectChunks(/* @__PURE__ */ jsx(App, {
|
|
144
|
-
context: context
|
|
145
|
-
})));
|
|
146
|
-
} else {
|
|
147
|
-
renderToStaticMarkup(/* @__PURE__ */ jsx(App, {
|
|
148
|
-
context: context
|
|
149
|
-
}));
|
|
150
|
-
}
|
|
151
|
-
if (!context.loaderManager.hasPendingLoaders()) {
|
|
152
|
-
return [
|
|
153
|
-
2,
|
|
154
|
-
{
|
|
155
|
-
initialData: context.initialData,
|
|
156
|
-
i18nData: context.__i18nData__
|
|
157
|
-
}
|
|
158
|
-
];
|
|
159
|
-
}
|
|
160
|
-
return [
|
|
161
|
-
4,
|
|
162
|
-
context.loaderManager.awaitPendingLoaders()
|
|
163
|
-
];
|
|
164
|
-
case 1:
|
|
165
|
-
loadersData = _state.sent();
|
|
166
|
-
Object.keys(loadersData).forEach(function(id) {
|
|
167
|
-
var data = loadersData[id];
|
|
168
|
-
if (data._error) {
|
|
169
|
-
ssrContext.logger.error("App Prefetch Loader", data._error);
|
|
170
|
-
ssrContext.metrics.emitCounter("app.prefetch.loader.error", 1);
|
|
171
|
-
delete data._error;
|
|
172
|
-
}
|
|
173
|
-
});
|
|
174
|
-
return [
|
|
175
|
-
2,
|
|
176
|
-
{
|
|
177
|
-
loadersData: loadersData,
|
|
178
|
-
initialData: context.initialData,
|
|
179
|
-
i18nData: context.__i18nData__,
|
|
180
|
-
storeState: context === null || context === void 0 ? void 0 : (_context_store = context.store) === null || _context_store === void 0 ? void 0 : _context_store.getState()
|
|
181
|
-
}
|
|
182
|
-
];
|
|
183
|
-
}
|
|
184
|
-
});
|
|
185
|
-
});
|
|
186
|
-
return function prefetch(App, context) {
|
|
187
|
-
return _ref.apply(this, arguments);
|
|
188
|
-
};
|
|
189
|
-
}();
|
|
190
|
-
var prefetch_worker_default = prefetch;
|
|
191
|
-
export { prefetch_worker_default as default };
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
import { createElement } from "react";
|
|
2
|
-
import { PreRender } from "../../react/prerender";
|
|
3
|
-
import { time } from "../time";
|
|
4
|
-
import renderToPipe from "./renderToPipe";
|
|
5
|
-
var render = function(param) {
|
|
6
|
-
var App = param.App, context = param.context;
|
|
7
|
-
var ssrContext = context.ssrContext;
|
|
8
|
-
if (!ssrContext) {
|
|
9
|
-
throw new Error('The "ssrContext" must not be undefined, but received undefined');
|
|
10
|
-
}
|
|
11
|
-
var end = time();
|
|
12
|
-
var rootElement = createElement(App, {
|
|
13
|
-
context: Object.assign(context || {}, {
|
|
14
|
-
ssr: true
|
|
15
|
-
})
|
|
16
|
-
});
|
|
17
|
-
var pipe = renderToPipe(rootElement, context, {
|
|
18
|
-
onShellReady: function onShellReady() {
|
|
19
|
-
var cacheConfig = PreRender.config();
|
|
20
|
-
if (cacheConfig) {
|
|
21
|
-
ssrContext.cacheConfig = cacheConfig;
|
|
22
|
-
}
|
|
23
|
-
},
|
|
24
|
-
onAllReady: function onAllReady() {
|
|
25
|
-
var cost = end();
|
|
26
|
-
ssrContext.logger.debug("App Render To HTML cost = %d ms", cost);
|
|
27
|
-
ssrContext.metrics.emitTimer("app.render.html.cost", cost);
|
|
28
|
-
}
|
|
29
|
-
});
|
|
30
|
-
return pipe;
|
|
31
|
-
};
|
|
32
|
-
export { render };
|
|
@@ -1,167 +0,0 @@
|
|
|
1
|
-
function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
|
|
2
|
-
try {
|
|
3
|
-
var info = gen[key](arg);
|
|
4
|
-
var value = info.value;
|
|
5
|
-
} catch (error) {
|
|
6
|
-
reject(error);
|
|
7
|
-
return;
|
|
8
|
-
}
|
|
9
|
-
if (info.done) {
|
|
10
|
-
resolve(value);
|
|
11
|
-
} else {
|
|
12
|
-
Promise.resolve(value).then(_next, _throw);
|
|
13
|
-
}
|
|
14
|
-
}
|
|
15
|
-
function _asyncToGenerator(fn) {
|
|
16
|
-
return function() {
|
|
17
|
-
var self = this, args = arguments;
|
|
18
|
-
return new Promise(function(resolve, reject) {
|
|
19
|
-
var gen = fn.apply(self, args);
|
|
20
|
-
function _next(value) {
|
|
21
|
-
asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);
|
|
22
|
-
}
|
|
23
|
-
function _throw(err) {
|
|
24
|
-
asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);
|
|
25
|
-
}
|
|
26
|
-
_next(undefined);
|
|
27
|
-
});
|
|
28
|
-
};
|
|
29
|
-
}
|
|
30
|
-
var __generator = this && this.__generator || function(thisArg, body) {
|
|
31
|
-
var f, y, t, g, _ = {
|
|
32
|
-
label: 0,
|
|
33
|
-
sent: function() {
|
|
34
|
-
if (t[0] & 1) throw t[1];
|
|
35
|
-
return t[1];
|
|
36
|
-
},
|
|
37
|
-
trys: [],
|
|
38
|
-
ops: []
|
|
39
|
-
};
|
|
40
|
-
return(g = {
|
|
41
|
-
next: verb(0),
|
|
42
|
-
"throw": verb(1),
|
|
43
|
-
"return": verb(2)
|
|
44
|
-
}, typeof Symbol === "function" && (g[Symbol.iterator] = function() {
|
|
45
|
-
return this;
|
|
46
|
-
}), g);
|
|
47
|
-
function verb(n) {
|
|
48
|
-
return function(v) {
|
|
49
|
-
return step([
|
|
50
|
-
n,
|
|
51
|
-
v
|
|
52
|
-
]);
|
|
53
|
-
};
|
|
54
|
-
}
|
|
55
|
-
function step(op) {
|
|
56
|
-
if (f) throw new TypeError("Generator is already executing.");
|
|
57
|
-
while(_)try {
|
|
58
|
-
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
59
|
-
if (y = 0, t) op = [
|
|
60
|
-
op[0] & 2,
|
|
61
|
-
t.value
|
|
62
|
-
];
|
|
63
|
-
switch(op[0]){
|
|
64
|
-
case 0:
|
|
65
|
-
case 1:
|
|
66
|
-
t = op;
|
|
67
|
-
break;
|
|
68
|
-
case 4:
|
|
69
|
-
_.label++;
|
|
70
|
-
return {
|
|
71
|
-
value: op[1],
|
|
72
|
-
done: false
|
|
73
|
-
};
|
|
74
|
-
case 5:
|
|
75
|
-
_.label++;
|
|
76
|
-
y = op[1];
|
|
77
|
-
op = [
|
|
78
|
-
0
|
|
79
|
-
];
|
|
80
|
-
continue;
|
|
81
|
-
case 7:
|
|
82
|
-
op = _.ops.pop();
|
|
83
|
-
_.trys.pop();
|
|
84
|
-
continue;
|
|
85
|
-
default:
|
|
86
|
-
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
|
|
87
|
-
_ = 0;
|
|
88
|
-
continue;
|
|
89
|
-
}
|
|
90
|
-
if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
|
|
91
|
-
_.label = op[1];
|
|
92
|
-
break;
|
|
93
|
-
}
|
|
94
|
-
if (op[0] === 6 && _.label < t[1]) {
|
|
95
|
-
_.label = t[1];
|
|
96
|
-
t = op;
|
|
97
|
-
break;
|
|
98
|
-
}
|
|
99
|
-
if (t && _.label < t[2]) {
|
|
100
|
-
_.label = t[2];
|
|
101
|
-
_.ops.push(op);
|
|
102
|
-
break;
|
|
103
|
-
}
|
|
104
|
-
if (t[2]) _.ops.pop();
|
|
105
|
-
_.trys.pop();
|
|
106
|
-
continue;
|
|
107
|
-
}
|
|
108
|
-
op = body.call(thisArg, _);
|
|
109
|
-
} catch (e) {
|
|
110
|
-
op = [
|
|
111
|
-
6,
|
|
112
|
-
e
|
|
113
|
-
];
|
|
114
|
-
y = 0;
|
|
115
|
-
} finally{
|
|
116
|
-
f = t = 0;
|
|
117
|
-
}
|
|
118
|
-
if (op[0] & 5) throw op[1];
|
|
119
|
-
return {
|
|
120
|
-
value: op[0] ? op[1] : void 0,
|
|
121
|
-
done: true
|
|
122
|
-
};
|
|
123
|
-
}
|
|
124
|
-
};
|
|
125
|
-
import { PreRender } from "../../react/prerender";
|
|
126
|
-
import { time } from "../time";
|
|
127
|
-
import SSREntry from "./entry";
|
|
128
|
-
var render = function() {
|
|
129
|
-
var _ref = _asyncToGenerator(function(param) {
|
|
130
|
-
var App, context, config, ssrContext, entry, end, html, cost, cacheConfig;
|
|
131
|
-
return __generator(this, function(_state) {
|
|
132
|
-
switch(_state.label){
|
|
133
|
-
case 0:
|
|
134
|
-
App = param.App, context = param.context, config = param.config;
|
|
135
|
-
ssrContext = context.ssrContext;
|
|
136
|
-
entry = new SSREntry({
|
|
137
|
-
ctx: ssrContext,
|
|
138
|
-
App: App,
|
|
139
|
-
config: config
|
|
140
|
-
});
|
|
141
|
-
entry.metrics.emitCounter("app.visit.count", 1);
|
|
142
|
-
end = time();
|
|
143
|
-
return [
|
|
144
|
-
4,
|
|
145
|
-
entry.renderToHtml(context)
|
|
146
|
-
];
|
|
147
|
-
case 1:
|
|
148
|
-
html = _state.sent();
|
|
149
|
-
cost = end();
|
|
150
|
-
entry.logger.info("App Render Total cost = %d ms", cost);
|
|
151
|
-
entry.metrics.emitTimer("app.render.cost", cost);
|
|
152
|
-
cacheConfig = PreRender.config();
|
|
153
|
-
if (cacheConfig) {
|
|
154
|
-
context.ssrContext.cacheConfig = cacheConfig;
|
|
155
|
-
}
|
|
156
|
-
return [
|
|
157
|
-
2,
|
|
158
|
-
html
|
|
159
|
-
];
|
|
160
|
-
}
|
|
161
|
-
});
|
|
162
|
-
});
|
|
163
|
-
return function render(_) {
|
|
164
|
-
return _ref.apply(this, arguments);
|
|
165
|
-
};
|
|
166
|
-
}();
|
|
167
|
-
export { render };
|
|
File without changes
|
|
@@ -1,131 +0,0 @@
|
|
|
1
|
-
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
2
|
-
import { Suspense, useEffect, useRef, useMemo, useContext } from "react";
|
|
3
|
-
import {
|
|
4
|
-
Await,
|
|
5
|
-
UNSAFE_DataRouterContext as DataRouterContext,
|
|
6
|
-
useAsyncError
|
|
7
|
-
} from "react-router-dom";
|
|
8
|
-
import { serializeJson } from "@modern-js/utils/serialize";
|
|
9
|
-
import { JSX_SHELL_STREAM_END_MARK } from "../../common";
|
|
10
|
-
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}}))};`;
|
|
11
|
-
const resolveFnStr = `function r(e,r,o,A){A?_ROUTER_DATA.r[e][r].reject(A):_ROUTER_DATA.r[e][r].resolve(o)};`;
|
|
12
|
-
const preResolvedFnStr = `function p(e,r){return void 0!==r?Promise.reject(new Error(r.message)):Promise.resovle(e)};`;
|
|
13
|
-
const DeferredDataScripts = () => {
|
|
14
|
-
const context = useContext(DataRouterContext);
|
|
15
|
-
const { staticContext } = context || {};
|
|
16
|
-
const hydratedRef = useRef(false);
|
|
17
|
-
useEffect(() => {
|
|
18
|
-
hydratedRef.current = true;
|
|
19
|
-
}, []);
|
|
20
|
-
const deferredScripts = useMemo(() => {
|
|
21
|
-
const activeDeferreds = (staticContext == null ? void 0 : staticContext.activeDeferreds) || [];
|
|
22
|
-
const _ROUTER_DATA = {
|
|
23
|
-
loaderData: staticContext == null ? void 0 : staticContext.loaderData
|
|
24
|
-
};
|
|
25
|
-
let initialScripts = [
|
|
26
|
-
`_ROUTER_DATA = ${serializeJson(_ROUTER_DATA)};`,
|
|
27
|
-
`_ROUTER_DATA.s = ${setupFnStr}`,
|
|
28
|
-
`_ROUTER_DATA.r = ${resolveFnStr}`,
|
|
29
|
-
`_ROUTER_DATA.p = ${preResolvedFnStr}`
|
|
30
|
-
].join("\n");
|
|
31
|
-
const deferredDataScripts = [];
|
|
32
|
-
initialScripts += Object.entries(activeDeferreds).map(([routeId, deferredData]) => {
|
|
33
|
-
const pendingKeys = new Set(deferredData.pendingKeys);
|
|
34
|
-
const { deferredKeys } = deferredData;
|
|
35
|
-
const deferredKeyPromiseStr = deferredKeys.map((key) => {
|
|
36
|
-
if (pendingKeys.has(key)) {
|
|
37
|
-
deferredDataScripts.push(
|
|
38
|
-
/* @__PURE__ */ jsx(DeferredDataScript, {
|
|
39
|
-
data: deferredData.data[key],
|
|
40
|
-
dataKey: key,
|
|
41
|
-
routeId
|
|
42
|
-
}, `${routeId} | ${key}`)
|
|
43
|
-
);
|
|
44
|
-
return `${JSON.stringify(key)}: _ROUTER_DATA.s(${JSON.stringify(
|
|
45
|
-
routeId
|
|
46
|
-
)},${JSON.stringify(key)}) `;
|
|
47
|
-
} else {
|
|
48
|
-
const trackedPromise = deferredData.data[key];
|
|
49
|
-
if (typeof trackedPromise._error !== "undefined") {
|
|
50
|
-
const error = {
|
|
51
|
-
message: trackedPromise._error.message,
|
|
52
|
-
stack: process.env.NODE_ENV !== "production" ? trackedPromise._error.stack : void 0
|
|
53
|
-
};
|
|
54
|
-
return `${JSON.stringify(
|
|
55
|
-
key
|
|
56
|
-
)}: _ROUTER_DATA.p(${void 0}, ${serializeJson(error)})`;
|
|
57
|
-
} else {
|
|
58
|
-
if (typeof trackedPromise._data === "undefined") {
|
|
59
|
-
throw new Error(
|
|
60
|
-
`The deferred data for ${key} was not resolved, did you forget to return data from a deferred promise`
|
|
61
|
-
);
|
|
62
|
-
}
|
|
63
|
-
return `${JSON.stringify(key)}: _ROUTER_DATA.p(${serializeJson(
|
|
64
|
-
trackedPromise._data
|
|
65
|
-
)})`;
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
}).join(",\n");
|
|
69
|
-
return `Object.assign(_ROUTER_DATA.loaderData[${JSON.stringify(
|
|
70
|
-
routeId
|
|
71
|
-
)}], {${deferredKeyPromiseStr}});`;
|
|
72
|
-
}).join("\n");
|
|
73
|
-
return [initialScripts, deferredDataScripts];
|
|
74
|
-
}, []);
|
|
75
|
-
return /* @__PURE__ */ jsxs(Fragment, {
|
|
76
|
-
children: [
|
|
77
|
-
!hydratedRef.current && /* @__PURE__ */ jsx("script", {
|
|
78
|
-
async: true,
|
|
79
|
-
suppressHydrationWarning: true,
|
|
80
|
-
dangerouslySetInnerHTML: { __html: deferredScripts[0] }
|
|
81
|
-
}),
|
|
82
|
-
!hydratedRef.current && deferredScripts[1],
|
|
83
|
-
JSX_SHELL_STREAM_END_MARK
|
|
84
|
-
]
|
|
85
|
-
});
|
|
86
|
-
};
|
|
87
|
-
const DeferredDataScript = ({
|
|
88
|
-
data,
|
|
89
|
-
routeId,
|
|
90
|
-
dataKey
|
|
91
|
-
}) => {
|
|
92
|
-
return /* @__PURE__ */ jsx(Suspense, {
|
|
93
|
-
children: typeof document === "undefined" && data && dataKey && routeId ? /* @__PURE__ */ jsx(Await, {
|
|
94
|
-
resolve: data,
|
|
95
|
-
errorElement: /* @__PURE__ */ jsx(ErrorDeferredDataScript, {
|
|
96
|
-
routeId,
|
|
97
|
-
dataKey
|
|
98
|
-
}),
|
|
99
|
-
children: (data2) => /* @__PURE__ */ jsx("script", {
|
|
100
|
-
async: true,
|
|
101
|
-
suppressHydrationWarning: true,
|
|
102
|
-
dangerouslySetInnerHTML: {
|
|
103
|
-
__html: `_ROUTER_DATA.r(${JSON.stringify(
|
|
104
|
-
routeId
|
|
105
|
-
)}, ${JSON.stringify(dataKey)}, ${serializeJson(data2)});`
|
|
106
|
-
}
|
|
107
|
-
})
|
|
108
|
-
}) : null
|
|
109
|
-
});
|
|
110
|
-
};
|
|
111
|
-
const ErrorDeferredDataScript = ({
|
|
112
|
-
routeId,
|
|
113
|
-
dataKey
|
|
114
|
-
}) => {
|
|
115
|
-
const error = useAsyncError();
|
|
116
|
-
return /* @__PURE__ */ jsx("script", {
|
|
117
|
-
suppressHydrationWarning: true,
|
|
118
|
-
dangerouslySetInnerHTML: {
|
|
119
|
-
__html: `_ROUTER_DATA.r(${JSON.stringify(routeId)}, ${JSON.stringify(
|
|
120
|
-
dataKey
|
|
121
|
-
)}, ${void 0}, ${serializeJson({
|
|
122
|
-
message: error.message,
|
|
123
|
-
stack: error.stack
|
|
124
|
-
})});`
|
|
125
|
-
}
|
|
126
|
-
});
|
|
127
|
-
};
|
|
128
|
-
var DeferredDataScripts_default = DeferredDataScripts;
|
|
129
|
-
export {
|
|
130
|
-
DeferredDataScripts_default as default
|
|
131
|
-
};
|