@modern-js/runtime 2.3.1-alpha.0 → 2.4.1-beta.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 +29 -0
- package/README.md +14 -18
- package/dist/js/modern/core/compatible.js +1 -0
- package/dist/js/modern/document/Body.js +2 -2
- package/dist/js/modern/document/{DocumentStructrueContext.js → DocumentStructureContext.js} +2 -2
- package/dist/js/modern/document/Head.js +2 -2
- package/dist/js/modern/document/Html.js +2 -2
- package/dist/js/modern/document/index.js +1 -1
- package/dist/js/modern/router/runtime/fetch.js +5 -0
- package/dist/js/modern/router/runtime/fetch.node.js +4 -0
- package/dist/js/modern/router/runtime/fetch.worker.js +5 -0
- package/dist/js/modern/router/runtime/plugin.node.js +2 -14
- package/dist/js/modern/ssr/cli/index.js +2 -2
- package/dist/js/modern/ssr/prefetch.worker.js +66 -0
- package/dist/js/modern/ssr/react/nossr/index.js +6 -2
- package/dist/js/modern/ssr/serverRender/renderToStream/index.js +1 -1
- package/dist/js/modern/ssr/serverRender/renderToStream/index.worker.js +35 -0
- package/dist/js/modern/ssr/serverRender/renderToStream/renderToPipe.js +5 -3
- package/dist/js/modern/ssr/serverRender/renderToStream/renderToPipe.worker.js +110 -0
- package/dist/js/modern/ssr/serverRender/renderToString/entry.js +6 -7
- package/dist/js/modern/ssr/serverRender/renderToString/index.js +1 -1
- package/dist/js/modern/ssr/serverRender/renderToString/index.worker.js +49 -0
- package/dist/js/modern/ssr/serverRender/time.js +13 -0
- package/dist/js/modern/ssr/serverRender/time.worker.js +28 -0
- package/dist/js/modern/ssr/serverRender/utils.js +1 -12
- package/dist/js/node/core/compatible.js +1 -0
- package/dist/js/node/document/Body.js +2 -2
- package/dist/js/node/document/{DocumentStructrueContext.js → DocumentStructureContext.js} +6 -6
- package/dist/js/node/document/Head.js +2 -2
- package/dist/js/node/document/Html.js +2 -2
- package/dist/js/node/document/index.js +1 -1
- package/dist/js/node/router/runtime/fetch.js +28 -0
- package/dist/js/node/router/runtime/fetch.node.js +27 -0
- package/dist/js/node/router/runtime/fetch.worker.js +28 -0
- package/dist/js/node/router/runtime/plugin.node.js +3 -15
- package/dist/js/node/ssr/cli/index.js +2 -2
- package/dist/js/node/ssr/prefetch.worker.js +87 -0
- package/dist/js/node/ssr/react/nossr/index.js +6 -2
- package/dist/js/node/ssr/serverRender/renderToStream/index.js +2 -2
- package/dist/js/node/ssr/serverRender/renderToStream/index.worker.js +64 -0
- package/dist/js/node/ssr/serverRender/renderToStream/renderToPipe.js +6 -2
- package/dist/js/node/ssr/serverRender/renderToStream/renderToPipe.worker.js +129 -0
- package/dist/js/node/ssr/serverRender/renderToString/entry.js +8 -9
- package/dist/js/node/ssr/serverRender/renderToString/index.js +2 -2
- package/dist/js/node/ssr/serverRender/renderToString/index.worker.js +78 -0
- package/dist/js/node/ssr/serverRender/time.js +36 -0
- package/dist/js/node/ssr/serverRender/time.worker.js +51 -0
- package/dist/js/node/ssr/serverRender/utils.js +2 -14
- package/dist/js/treeshaking/core/compatible.js +8 -7
- package/dist/js/treeshaking/core/loader/loaderManager.js +3 -3
- package/dist/js/treeshaking/core/loader/useLoader.js +15 -15
- package/dist/js/treeshaking/document/Body.js +2 -2
- package/dist/js/treeshaking/document/{DocumentStructrueContext.js → DocumentStructureContext.js} +2 -2
- package/dist/js/treeshaking/document/Head.js +2 -2
- package/dist/js/treeshaking/document/Html.js +4 -4
- package/dist/js/treeshaking/document/Root.js +2 -2
- package/dist/js/treeshaking/document/cli/index.js +4 -4
- package/dist/js/treeshaking/document/index.js +1 -1
- package/dist/js/treeshaking/router/cli/index.js +2 -2
- package/dist/js/treeshaking/router/runtime/fetch.js +2 -0
- package/dist/js/treeshaking/router/runtime/fetch.node.js +2 -0
- package/dist/js/treeshaking/router/runtime/fetch.worker.js +2 -0
- package/dist/js/treeshaking/router/runtime/plugin.js +3 -3
- package/dist/js/treeshaking/router/runtime/plugin.node.js +5 -14
- package/dist/js/treeshaking/router/runtime/utils.js +3 -3
- package/dist/js/treeshaking/ssr/cli/index.js +5 -5
- package/dist/js/treeshaking/ssr/index.js +6 -6
- package/dist/js/treeshaking/ssr/index.node.js +1 -1
- package/dist/js/treeshaking/ssr/prefetch.js +2 -2
- package/dist/js/treeshaking/ssr/prefetch.worker.js +191 -0
- package/dist/js/treeshaking/ssr/react/nossr/index.js +3 -3
- package/dist/js/treeshaking/ssr/react/prerender/index.js +2 -2
- package/dist/js/treeshaking/ssr/react/prerender/util.js +2 -2
- package/dist/js/treeshaking/ssr/serverRender/renderToStream/bulidTemplate.before.js +2 -2
- package/dist/js/treeshaking/ssr/serverRender/renderToStream/index.js +1 -1
- package/dist/js/treeshaking/ssr/serverRender/renderToStream/index.worker.js +32 -0
- package/dist/js/treeshaking/ssr/serverRender/renderToStream/loadable.js +1 -1
- package/dist/js/treeshaking/ssr/serverRender/renderToStream/renderToPipe.js +12 -9
- package/dist/js/treeshaking/ssr/serverRender/renderToStream/renderToPipe.worker.js +280 -0
- package/dist/js/treeshaking/ssr/serverRender/renderToStream/template.js +1 -1
- package/dist/js/treeshaking/ssr/serverRender/renderToString/entry.js +6 -8
- package/dist/js/treeshaking/ssr/serverRender/renderToString/index.js +1 -1
- package/dist/js/treeshaking/ssr/serverRender/renderToString/index.worker.js +167 -0
- package/dist/js/treeshaking/ssr/serverRender/renderToString/loadable.js +1 -1
- package/dist/js/treeshaking/ssr/serverRender/time.js +57 -0
- package/dist/js/treeshaking/ssr/serverRender/time.worker.js +75 -0
- package/dist/js/treeshaking/ssr/serverRender/utils.js +1 -57
- package/dist/js/treeshaking/ssr/utils.js +5 -5
- package/dist/js/treeshaking/state/cli/index.js +2 -2
- package/dist/js/treeshaking/state/runtime/plugin.js +3 -3
- package/dist/types/document/{DocumentStructrueContext.d.ts → DocumentStructureContext.d.ts} +2 -2
- package/dist/types/document/index.d.ts +1 -1
- package/dist/types/router/runtime/fetch.d.ts +2 -0
- package/dist/types/router/runtime/fetch.node.d.ts +2 -0
- package/dist/types/router/runtime/fetch.worker.d.ts +2 -0
- package/dist/types/ssr/prefetch.worker.d.ts +13 -0
- package/dist/types/ssr/react/nossr/index.d.ts +4 -2
- package/dist/types/ssr/serverRender/renderToStream/index.worker.d.ts +6 -0
- package/dist/types/ssr/serverRender/renderToStream/renderToPipe.d.ts +1 -1
- package/dist/types/ssr/serverRender/renderToStream/renderToPipe.worker.d.ts +8 -0
- package/dist/types/ssr/serverRender/renderToString/index.worker.d.ts +6 -0
- package/dist/types/ssr/serverRender/time.d.ts +1 -0
- package/dist/types/ssr/serverRender/time.worker.d.ts +1 -0
- package/dist/types/ssr/serverRender/utils.d.ts +2 -3
- package/package.json +13 -12
|
@@ -118,7 +118,7 @@ var cli_default = function() {
|
|
|
118
118
|
},
|
|
119
119
|
tools: {
|
|
120
120
|
webpackChain: function(chain, param) {
|
|
121
|
-
var name = param.name, isServer = param.isServer, CHAIN_ID = param.CHAIN_ID;
|
|
121
|
+
var name = param.name, isServer = param.isServer, isServiceWorker = param.isServiceWorker, CHAIN_ID = param.CHAIN_ID;
|
|
122
122
|
var userConfig = api.useResolvedConfigContext();
|
|
123
123
|
if (isUseSSRBundle(userConfig) && name !== "server" && hasStringSSREntry(userConfig)) {
|
|
124
124
|
var LoadableWebpackPlugin = require("@loadable/webpack-plugin");
|
|
@@ -128,7 +128,7 @@ var cli_default = function() {
|
|
|
128
128
|
}
|
|
129
129
|
]);
|
|
130
130
|
}
|
|
131
|
-
var modernVars = _defineProperty({}, "process.env.MODERN_TARGET", JSON.stringify(isServer ? "node" : "browser"));
|
|
131
|
+
var modernVars = _defineProperty({}, "process.env.MODERN_TARGET", JSON.stringify(isServer || isServiceWorker ? "node" : "browser"));
|
|
132
132
|
chain.plugin(CHAIN_ID.PLUGIN.DEFINE).tap(function(args) {
|
|
133
133
|
var _args = _toArray(args), vars = _args[0], rest = _args.slice(1);
|
|
134
134
|
return [
|
|
@@ -150,13 +150,13 @@ var cli_default = function() {
|
|
|
150
150
|
var entrypoint = param.entrypoint, imports = param.imports;
|
|
151
151
|
var entryName = entrypoint.entryName, fileSystemRoutes = entrypoint.fileSystemRoutes;
|
|
152
152
|
var userConfig = api.useResolvedConfigContext();
|
|
153
|
-
var
|
|
153
|
+
var _api_useAppContext = api.useAppContext(), packageName = _api_useAppContext.packageName, entrypoints = _api_useAppContext.entrypoints;
|
|
154
154
|
pluginsExportsUtils.addExport("export { default as ssr } from '@modern-js/runtime/ssr'");
|
|
155
155
|
var ssrConfig = getEntryOptions(entryName, userConfig.server.ssr, userConfig.server.ssrByEntries, packageName);
|
|
156
156
|
if (typeof ssrConfig === "object" && ssrConfig.mode === "stream") {
|
|
157
|
-
var
|
|
157
|
+
var _runtimeConfig_router;
|
|
158
158
|
var runtimeConfig = getEntryOptions(entryName, userConfig.runtime, userConfig.runtimeByEntries, packageName);
|
|
159
|
-
if ((runtimeConfig === null || runtimeConfig === void 0 ? void 0 : (
|
|
159
|
+
if ((runtimeConfig === null || runtimeConfig === void 0 ? void 0 : (_runtimeConfig_router = runtimeConfig.router) === null || _runtimeConfig_router === void 0 ? void 0 : _runtimeConfig_router.mode) === "react-router-5") {
|
|
160
160
|
throw new Error("router v5 plugin doesn't support streaming SSR, check your config 'runtime.router'");
|
|
161
161
|
}
|
|
162
162
|
if (fileSystemRoutes && !entrypoint.nestedRoutesEntry) {
|
|
@@ -188,7 +188,7 @@ var ssr = function(config) {
|
|
|
188
188
|
return {
|
|
189
189
|
client: function() {
|
|
190
190
|
var _ref = _asyncToGenerator(function(param) {
|
|
191
|
-
var App, context, ModernRender, ModernHydrate,
|
|
191
|
+
var App, context, ModernRender, ModernHydrate, _window__SSR_DATA, hydrateContext, callback, renderLevel;
|
|
192
192
|
function stringSSRHydrate() {
|
|
193
193
|
if (renderLevel === RenderLevel.CLIENT_RENDER || renderLevel === RenderLevel.SERVER_PREFETCH) {
|
|
194
194
|
ModernRender(/* @__PURE__ */ jsx(App, {
|
|
@@ -248,7 +248,7 @@ var ssr = function(config) {
|
|
|
248
248
|
callback = function() {
|
|
249
249
|
delete hydrateContext._hydration;
|
|
250
250
|
};
|
|
251
|
-
renderLevel = (window === null || window === void 0 ? void 0 : (
|
|
251
|
+
renderLevel = (window === null || window === void 0 ? void 0 : (_window__SSR_DATA = window._SSR_DATA) === null || _window__SSR_DATA === void 0 ? void 0 : _window__SSR_DATA.renderLevel) || RenderLevel.CLIENT_RENDER;
|
|
252
252
|
if (isReact18() && config.mode === "stream") {
|
|
253
253
|
return [
|
|
254
254
|
2,
|
|
@@ -267,8 +267,8 @@ var ssr = function(config) {
|
|
|
267
267
|
}(),
|
|
268
268
|
init: function init(param, next) {
|
|
269
269
|
var context = param.context;
|
|
270
|
-
var
|
|
271
|
-
var request = window === null || window === void 0 ? void 0 : (
|
|
270
|
+
var _window__SSR_DATA, _window__SSR_DATA_context;
|
|
271
|
+
var request = window === null || window === void 0 ? void 0 : (_window__SSR_DATA = window._SSR_DATA) === null || _window__SSR_DATA === void 0 ? void 0 : (_window__SSR_DATA_context = _window__SSR_DATA.context) === null || _window__SSR_DATA_context === void 0 ? void 0 : _window__SSR_DATA_context.request;
|
|
272
272
|
if (!request) {
|
|
273
273
|
context.ssrContext = _objectSpreadProps(_objectSpread({}, context.ssrContext), {
|
|
274
274
|
response: mockResp,
|
|
@@ -286,8 +286,8 @@ var ssr = function(config) {
|
|
|
286
286
|
},
|
|
287
287
|
pickContext: function(param, next) {
|
|
288
288
|
var context = param.context, pickedContext = param.pickedContext;
|
|
289
|
-
var
|
|
290
|
-
var request = window === null || window === void 0 ? void 0 : (
|
|
289
|
+
var _window__SSR_DATA, _window__SSR_DATA_context;
|
|
290
|
+
var request = window === null || window === void 0 ? void 0 : (_window__SSR_DATA = window._SSR_DATA) === null || _window__SSR_DATA === void 0 ? void 0 : (_window__SSR_DATA_context = _window__SSR_DATA.context) === null || _window__SSR_DATA_context === void 0 ? void 0 : _window__SSR_DATA_context.request;
|
|
291
291
|
var initialData = context.initialData;
|
|
292
292
|
if (!request) {
|
|
293
293
|
return next({
|
|
@@ -220,7 +220,7 @@ var ssr = function() {
|
|
|
220
220
|
},
|
|
221
221
|
pickContext: function(param, next) {
|
|
222
222
|
var context = param.context, pickedContext = param.pickedContext;
|
|
223
|
-
var
|
|
223
|
+
var _ref = context === null || context === void 0 ? void 0 : context.ssrContext, request = _ref.request, response = _ref.response;
|
|
224
224
|
var initialData = context.initialData;
|
|
225
225
|
return next({
|
|
226
226
|
context: context,
|
|
@@ -132,7 +132,7 @@ var prefetch = function() {
|
|
|
132
132
|
return [
|
|
133
133
|
2,
|
|
134
134
|
run(context.ssrContext.request.headers, /*#__PURE__*/ _asyncToGenerator(function() {
|
|
135
|
-
var
|
|
135
|
+
var _context_store, ssrContext, loadableStats, extractor, loadersData;
|
|
136
136
|
return __generator(this, function(_state) {
|
|
137
137
|
switch(_state.label){
|
|
138
138
|
case 0:
|
|
@@ -182,7 +182,7 @@ var prefetch = function() {
|
|
|
182
182
|
loadersData: loadersData,
|
|
183
183
|
initialData: context.initialData,
|
|
184
184
|
i18nData: context.__i18nData__,
|
|
185
|
-
storeState: context === null || context === void 0 ? void 0 : (
|
|
185
|
+
storeState: context === null || context === void 0 ? void 0 : (_context_store = context.store) === null || _context_store === void 0 ? void 0 : _context_store.getState()
|
|
186
186
|
}
|
|
187
187
|
];
|
|
188
188
|
}
|
|
@@ -0,0 +1,191 @@
|
|
|
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 };
|
|
@@ -47,12 +47,12 @@ function _unsupportedIterableToArray(o, minLen) {
|
|
|
47
47
|
import React, { useEffect, useState } from "react";
|
|
48
48
|
var csr = false;
|
|
49
49
|
var NoSSR = function(props) {
|
|
50
|
-
var
|
|
50
|
+
var _useState = _slicedToArray(useState(csr), 2), isMounted = _useState[0], setMounted = _useState[1];
|
|
51
51
|
useEffect(function() {
|
|
52
52
|
csr = true;
|
|
53
53
|
setMounted(true);
|
|
54
54
|
});
|
|
55
|
-
var children = props.children;
|
|
56
|
-
return React.createElement(React.Fragment, null, isMounted ? children :
|
|
55
|
+
var children = props.children, _props_fallback = props.fallback, fallback = _props_fallback === void 0 ? null : _props_fallback;
|
|
56
|
+
return React.createElement(React.Fragment, null, isMounted ? children : fallback);
|
|
57
57
|
};
|
|
58
58
|
export { NoSSR };
|
|
@@ -181,7 +181,7 @@ var reducePropsToState = function(propsList) {
|
|
|
181
181
|
return reduceProps;
|
|
182
182
|
};
|
|
183
183
|
function factory(Component) {
|
|
184
|
-
var
|
|
184
|
+
var _React_Component;
|
|
185
185
|
var Spr = /*#__PURE__*/ function(_superClass) {
|
|
186
186
|
"use strict";
|
|
187
187
|
_inherits(Spr, _superClass);
|
|
@@ -220,7 +220,7 @@ function factory(Component) {
|
|
|
220
220
|
}
|
|
221
221
|
]);
|
|
222
222
|
return Spr;
|
|
223
|
-
}(
|
|
223
|
+
}(_React_Component = React.Component);
|
|
224
224
|
_defineProperty(Spr, "peek", Component.peek);
|
|
225
225
|
_defineProperty(Spr, "rewind", Component.rewind);
|
|
226
226
|
_defineProperty(Spr, "config", function() {
|
|
@@ -54,9 +54,9 @@ var aggKeysFromPropsList = function aggKeysFromPropsList2(propsList, propName) {
|
|
|
54
54
|
return result;
|
|
55
55
|
}, initResult);
|
|
56
56
|
return REQUEST_META.reduce(function(result, next) {
|
|
57
|
-
var
|
|
57
|
+
var _result_key;
|
|
58
58
|
var key = next;
|
|
59
|
-
if (result[key] && ((
|
|
59
|
+
if (result[key] && ((_result_key = result[key]) === null || _result_key === void 0 ? void 0 : _result_key.length) === 0) {
|
|
60
60
|
delete result[key];
|
|
61
61
|
}
|
|
62
62
|
return result;
|
|
@@ -81,7 +81,7 @@ function getHeadTemplate(beforeEntryTemplate, context) {
|
|
|
81
81
|
var routeManifest2 = routeAssets[routeId];
|
|
82
82
|
if (routeManifest2) {
|
|
83
83
|
var _cssChunks;
|
|
84
|
-
var
|
|
84
|
+
var _routeManifest2_assets = routeManifest2.assets, assets = _routeManifest2_assets === void 0 ? [] : _routeManifest2_assets;
|
|
85
85
|
var _cssChunks1 = assets.filter(function(asset) {
|
|
86
86
|
return asset === null || asset === void 0 ? void 0 : asset.endsWith(".css");
|
|
87
87
|
});
|
|
@@ -102,7 +102,7 @@ function getHeadTemplate(beforeEntryTemplate, context) {
|
|
|
102
102
|
},
|
|
103
103
|
injectCss
|
|
104
104
|
];
|
|
105
|
-
var
|
|
105
|
+
var _ref = _slicedToArray(beforeEntryTemplate.match(HEAD_REG_EXP) || [], 1), tmp = _ref[0], headTemplate = tmp === void 0 ? "" : tmp;
|
|
106
106
|
if (!headTemplate.length) {
|
|
107
107
|
return "";
|
|
108
108
|
}
|
|
@@ -125,7 +125,7 @@ var __generator = this && this.__generator || function(thisArg, body) {
|
|
|
125
125
|
import { createElement } from "react";
|
|
126
126
|
import { run } from "@modern-js/utils/ssr";
|
|
127
127
|
import { PreRender } from "../../react/prerender";
|
|
128
|
-
import { time } from "../
|
|
128
|
+
import { time } from "../time";
|
|
129
129
|
import renderToPipe from "./renderToPipe";
|
|
130
130
|
var render = function(param) {
|
|
131
131
|
var App = param.App, context = param.context;
|
|
@@ -0,0 +1,32 @@
|
|
|
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,7 +1,7 @@
|
|
|
1
1
|
import { ChunkExtractor } from "@loadable/server";
|
|
2
2
|
function getLoadableChunks(param) {
|
|
3
3
|
var context = param.context, jsx = param.jsx;
|
|
4
|
-
var
|
|
4
|
+
var _context_ssrContext = context.ssrContext, loadableStats = _context_ssrContext.loadableStats, entryName = _context_ssrContext.entryName;
|
|
5
5
|
if (!loadableStats) {
|
|
6
6
|
return {
|
|
7
7
|
jsx: jsx
|
|
@@ -58,7 +58,6 @@ function _objectSpreadProps(target, source) {
|
|
|
58
58
|
return target;
|
|
59
59
|
}
|
|
60
60
|
import { Transform } from "stream";
|
|
61
|
-
import { renderToPipeableStream } from "react-dom/server";
|
|
62
61
|
import { RenderLevel } from "../types";
|
|
63
62
|
import { getTemplates } from "./template";
|
|
64
63
|
function renderToPipe(rootElement, context, options) {
|
|
@@ -70,11 +69,15 @@ function renderToPipe(rootElement, context, options) {
|
|
|
70
69
|
var ssrContext = context.ssrContext;
|
|
71
70
|
var forUserPipe = function(stream) {
|
|
72
71
|
return new Promise(function(resolve) {
|
|
72
|
+
var renderToPipeableStream;
|
|
73
|
+
try {
|
|
74
|
+
renderToPipeableStream = require("react-dom/server").renderToPipeableStream;
|
|
75
|
+
} catch (e) {}
|
|
73
76
|
var pipe = renderToPipeableStream(rootElement, _objectSpreadProps(_objectSpread({}, options), {
|
|
74
77
|
onShellReady: function onShellReady() {
|
|
75
|
-
var
|
|
76
|
-
var
|
|
77
|
-
options === null || options === void 0 ? void 0 : (
|
|
78
|
+
var _options_onShellReady;
|
|
79
|
+
var _getTemplates = getTemplates(context, RenderLevel.SERVER_RENDER), shellAfter = _getTemplates.shellAfter, shellBefore = _getTemplates.shellBefore;
|
|
80
|
+
options === null || options === void 0 ? void 0 : (_options_onShellReady = options.onShellReady) === null || _options_onShellReady === void 0 ? void 0 : _options_onShellReady.call(options);
|
|
78
81
|
var injectableTransform = new Transform({
|
|
79
82
|
transform: function transform(chunk, _encoding, callback) {
|
|
80
83
|
try {
|
|
@@ -97,18 +100,18 @@ function renderToPipe(rootElement, context, options) {
|
|
|
97
100
|
resolve(pipe(injectableTransform).pipe(stream));
|
|
98
101
|
},
|
|
99
102
|
onShellError: function onShellError(error) {
|
|
100
|
-
var
|
|
103
|
+
var _options_onShellError;
|
|
101
104
|
ssrContext.metrics.emitCounter("app.render.streaming.shell.error", 1);
|
|
102
|
-
var
|
|
105
|
+
var _getTemplates = getTemplates(context, RenderLevel.CLIENT_RENDER), shellAfter = _getTemplates.shellAfter, shellBefore = _getTemplates.shellBefore;
|
|
103
106
|
var fallbackHtml = "".concat(shellBefore).concat(shellAfter);
|
|
104
107
|
resolve(fallbackHtml);
|
|
105
|
-
options === null || options === void 0 ? void 0 : (
|
|
108
|
+
options === null || options === void 0 ? void 0 : (_options_onShellError = options.onShellError) === null || _options_onShellError === void 0 ? void 0 : _options_onShellError.call(options, error);
|
|
106
109
|
},
|
|
107
110
|
onError: function onError(error) {
|
|
108
|
-
var
|
|
111
|
+
var _options_onError;
|
|
109
112
|
ssrContext.logger.error("An error occurs during streaming SSR", error);
|
|
110
113
|
ssrContext.metrics.emitCounter("app.render.streaming.error", 1);
|
|
111
|
-
options === null || options === void 0 ? void 0 : (
|
|
114
|
+
options === null || options === void 0 ? void 0 : (_options_onError = options.onError) === null || _options_onError === void 0 ? void 0 : _options_onError.call(options, error);
|
|
112
115
|
}
|
|
113
116
|
})).pipe;
|
|
114
117
|
});
|