@modern-js/server-core 2.64.0 → 2.64.2
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/dist/cjs/adapters/node/index.js +2 -0
- package/dist/cjs/adapters/node/node.js +1 -1
- package/dist/cjs/adapters/node/plugins/resource.js +53 -4
- package/dist/cjs/plugins/default.js +10 -2
- package/dist/cjs/plugins/log.js +3 -1
- package/dist/cjs/plugins/render/index.js +6 -0
- package/dist/cjs/plugins/render/render.js +29 -15
- package/dist/cjs/plugins/render/renderRscHandler.js +51 -0
- package/dist/cjs/plugins/render/serverActionHandler.js +51 -0
- package/dist/cjs/plugins/render/ssrRender.js +4 -1
- package/dist/cjs/utils/error.js +1 -1
- package/dist/esm/adapters/node/index.js +2 -1
- package/dist/esm/adapters/node/node.js +1 -1
- package/dist/esm/adapters/node/plugins/resource.js +174 -5
- package/dist/esm/plugins/default.js +10 -2
- package/dist/esm/plugins/log.js +2 -2
- package/dist/esm/plugins/render/index.js +7 -1
- package/dist/esm/plugins/render/render.js +72 -44
- package/dist/esm/plugins/render/renderRscHandler.js +49 -0
- package/dist/esm/plugins/render/serverActionHandler.js +49 -0
- package/dist/esm/plugins/render/ssrRender.js +5 -2
- package/dist/esm/utils/error.js +1 -1
- package/dist/esm-node/adapters/node/index.js +2 -1
- package/dist/esm-node/adapters/node/node.js +1 -1
- package/dist/esm-node/adapters/node/plugins/resource.js +49 -4
- package/dist/esm-node/plugins/default.js +10 -2
- package/dist/esm-node/plugins/log.js +3 -1
- package/dist/esm-node/plugins/render/index.js +6 -0
- package/dist/esm-node/plugins/render/render.js +30 -16
- package/dist/esm-node/plugins/render/renderRscHandler.js +27 -0
- package/dist/esm-node/plugins/render/serverActionHandler.js +27 -0
- package/dist/esm-node/plugins/render/ssrRender.js +4 -1
- package/dist/esm-node/utils/error.js +1 -1
- package/dist/types/adapters/node/index.d.ts +1 -1
- package/dist/types/adapters/node/plugins/resource.d.ts +5 -1
- package/dist/types/plugins/default.d.ts +1 -1
- package/dist/types/plugins/render/render.d.ts +1 -1
- package/dist/types/plugins/render/renderRscHandler.d.ts +2 -0
- package/dist/types/plugins/render/serverActionHandler.d.ts +2 -0
- package/dist/types/plugins/render/ssrRender.d.ts +7 -3
- package/dist/types/types/config/server.d.ts +2 -0
- package/dist/types/types/render.d.ts +4 -1
- package/dist/types/types/requestHandler.d.ts +9 -3
- package/dist/types/types/server.d.ts +11 -1
- package/dist/types/utils/error.d.ts +1 -1
- package/package.json +7 -7
|
@@ -285,7 +285,7 @@ function _getServerManifest() {
|
|
|
285
285
|
});
|
|
286
286
|
return _getServerManifest.apply(this, arguments);
|
|
287
287
|
}
|
|
288
|
-
function injectServerManifest(pwd, routes) {
|
|
288
|
+
function injectServerManifest(pwd, routes, manifestPromise) {
|
|
289
289
|
return function() {
|
|
290
290
|
var _ref = _async_to_generator(function(c, next) {
|
|
291
291
|
var logger, serverManifest;
|
|
@@ -300,7 +300,7 @@ function injectServerManifest(pwd, routes) {
|
|
|
300
300
|
logger = c.get("logger");
|
|
301
301
|
return [
|
|
302
302
|
4,
|
|
303
|
-
getServerManifest(pwd, routes, logger)
|
|
303
|
+
manifestPromise || getServerManifest(pwd, routes, logger)
|
|
304
304
|
];
|
|
305
305
|
case 1:
|
|
306
306
|
serverManifest = _state.sent();
|
|
@@ -324,6 +324,171 @@ function injectServerManifest(pwd, routes) {
|
|
|
324
324
|
};
|
|
325
325
|
}();
|
|
326
326
|
}
|
|
327
|
+
function getRscServerManifest(pwd) {
|
|
328
|
+
return _getRscServerManifest.apply(this, arguments);
|
|
329
|
+
}
|
|
330
|
+
function _getRscServerManifest() {
|
|
331
|
+
_getRscServerManifest = _async_to_generator(function(pwd) {
|
|
332
|
+
var rscServerManifest;
|
|
333
|
+
return _ts_generator(this, function(_state) {
|
|
334
|
+
switch (_state.label) {
|
|
335
|
+
case 0:
|
|
336
|
+
return [
|
|
337
|
+
4,
|
|
338
|
+
compatibleRequire(path.join(pwd, "bundles", "react-server-manifest.json")).catch(function(_) {
|
|
339
|
+
return void 0;
|
|
340
|
+
})
|
|
341
|
+
];
|
|
342
|
+
case 1:
|
|
343
|
+
rscServerManifest = _state.sent();
|
|
344
|
+
return [
|
|
345
|
+
2,
|
|
346
|
+
rscServerManifest
|
|
347
|
+
];
|
|
348
|
+
}
|
|
349
|
+
});
|
|
350
|
+
});
|
|
351
|
+
return _getRscServerManifest.apply(this, arguments);
|
|
352
|
+
}
|
|
353
|
+
function getClientManifest(pwd) {
|
|
354
|
+
return _getClientManifest.apply(this, arguments);
|
|
355
|
+
}
|
|
356
|
+
function _getClientManifest() {
|
|
357
|
+
_getClientManifest = _async_to_generator(function(pwd) {
|
|
358
|
+
var rscClientManifest;
|
|
359
|
+
return _ts_generator(this, function(_state) {
|
|
360
|
+
switch (_state.label) {
|
|
361
|
+
case 0:
|
|
362
|
+
return [
|
|
363
|
+
4,
|
|
364
|
+
compatibleRequire(path.join(pwd, "react-client-manifest.json")).catch(function(_) {
|
|
365
|
+
return void 0;
|
|
366
|
+
})
|
|
367
|
+
];
|
|
368
|
+
case 1:
|
|
369
|
+
rscClientManifest = _state.sent();
|
|
370
|
+
return [
|
|
371
|
+
2,
|
|
372
|
+
rscClientManifest
|
|
373
|
+
];
|
|
374
|
+
}
|
|
375
|
+
});
|
|
376
|
+
});
|
|
377
|
+
return _getClientManifest.apply(this, arguments);
|
|
378
|
+
}
|
|
379
|
+
function getRscSSRManifest(pwd) {
|
|
380
|
+
return _getRscSSRManifest.apply(this, arguments);
|
|
381
|
+
}
|
|
382
|
+
function _getRscSSRManifest() {
|
|
383
|
+
_getRscSSRManifest = _async_to_generator(function(pwd) {
|
|
384
|
+
var rscSSRManifest;
|
|
385
|
+
return _ts_generator(this, function(_state) {
|
|
386
|
+
switch (_state.label) {
|
|
387
|
+
case 0:
|
|
388
|
+
return [
|
|
389
|
+
4,
|
|
390
|
+
compatibleRequire(path.join(pwd, "react-ssr-manifest.json")).catch(function(_) {
|
|
391
|
+
return void 0;
|
|
392
|
+
})
|
|
393
|
+
];
|
|
394
|
+
case 1:
|
|
395
|
+
rscSSRManifest = _state.sent();
|
|
396
|
+
return [
|
|
397
|
+
2,
|
|
398
|
+
rscSSRManifest
|
|
399
|
+
];
|
|
400
|
+
}
|
|
401
|
+
});
|
|
402
|
+
});
|
|
403
|
+
return _getRscSSRManifest.apply(this, arguments);
|
|
404
|
+
}
|
|
405
|
+
var injectRscManifestPlugin = function() {
|
|
406
|
+
return {
|
|
407
|
+
name: "@modern-js/plugin-inject-rsc-manifest",
|
|
408
|
+
setup: function setup(api) {
|
|
409
|
+
return {
|
|
410
|
+
prepare: function prepare() {
|
|
411
|
+
return _async_to_generator(function() {
|
|
412
|
+
var _api_useAppContext, middlewares, pwd;
|
|
413
|
+
return _ts_generator(this, function(_state) {
|
|
414
|
+
_api_useAppContext = api.useAppContext(), middlewares = _api_useAppContext.middlewares, pwd = _api_useAppContext.distDirectory;
|
|
415
|
+
middlewares.push({
|
|
416
|
+
name: "inject-rsc-manifest",
|
|
417
|
+
handler: function() {
|
|
418
|
+
var _ref = _async_to_generator(function(c, next) {
|
|
419
|
+
var rscServerManifest, rscClientManifest, rscSSRManifest;
|
|
420
|
+
return _ts_generator(this, function(_state2) {
|
|
421
|
+
switch (_state2.label) {
|
|
422
|
+
case 0:
|
|
423
|
+
if (!!c.get("rscServerManifest"))
|
|
424
|
+
return [
|
|
425
|
+
3,
|
|
426
|
+
2
|
|
427
|
+
];
|
|
428
|
+
return [
|
|
429
|
+
4,
|
|
430
|
+
getRscServerManifest(pwd)
|
|
431
|
+
];
|
|
432
|
+
case 1:
|
|
433
|
+
rscServerManifest = _state2.sent();
|
|
434
|
+
c.set("rscServerManifest", rscServerManifest);
|
|
435
|
+
_state2.label = 2;
|
|
436
|
+
case 2:
|
|
437
|
+
if (!!c.get("rscClientManifest"))
|
|
438
|
+
return [
|
|
439
|
+
3,
|
|
440
|
+
4
|
|
441
|
+
];
|
|
442
|
+
return [
|
|
443
|
+
4,
|
|
444
|
+
getClientManifest(pwd)
|
|
445
|
+
];
|
|
446
|
+
case 3:
|
|
447
|
+
rscClientManifest = _state2.sent();
|
|
448
|
+
c.set("rscClientManifest", rscClientManifest);
|
|
449
|
+
_state2.label = 4;
|
|
450
|
+
case 4:
|
|
451
|
+
if (!!c.get("rscSSRManifest"))
|
|
452
|
+
return [
|
|
453
|
+
3,
|
|
454
|
+
6
|
|
455
|
+
];
|
|
456
|
+
return [
|
|
457
|
+
4,
|
|
458
|
+
getRscSSRManifest(pwd)
|
|
459
|
+
];
|
|
460
|
+
case 5:
|
|
461
|
+
rscSSRManifest = _state2.sent();
|
|
462
|
+
c.set("rscSSRManifest", rscSSRManifest);
|
|
463
|
+
_state2.label = 6;
|
|
464
|
+
case 6:
|
|
465
|
+
return [
|
|
466
|
+
4,
|
|
467
|
+
next()
|
|
468
|
+
];
|
|
469
|
+
case 7:
|
|
470
|
+
_state2.sent();
|
|
471
|
+
return [
|
|
472
|
+
2
|
|
473
|
+
];
|
|
474
|
+
}
|
|
475
|
+
});
|
|
476
|
+
});
|
|
477
|
+
return function(c, next) {
|
|
478
|
+
return _ref.apply(this, arguments);
|
|
479
|
+
};
|
|
480
|
+
}()
|
|
481
|
+
});
|
|
482
|
+
return [
|
|
483
|
+
2
|
|
484
|
+
];
|
|
485
|
+
});
|
|
486
|
+
})();
|
|
487
|
+
}
|
|
488
|
+
};
|
|
489
|
+
}
|
|
490
|
+
};
|
|
491
|
+
};
|
|
327
492
|
var injectResourcePlugin = function() {
|
|
328
493
|
return {
|
|
329
494
|
name: "@modern-js/plugin-inject-resource",
|
|
@@ -331,16 +496,16 @@ var injectResourcePlugin = function() {
|
|
|
331
496
|
return {
|
|
332
497
|
prepare: function prepare() {
|
|
333
498
|
return _async_to_generator(function() {
|
|
334
|
-
var _api_useAppContext, middlewares, routes, pwd, htmlTemplatePromise;
|
|
499
|
+
var _api_useAppContext, middlewares, routes, pwd, htmlTemplatePromise, manifestPromise;
|
|
335
500
|
return _ts_generator(this, function(_state) {
|
|
336
501
|
_api_useAppContext = api.useAppContext(), middlewares = _api_useAppContext.middlewares, routes = _api_useAppContext.routes, pwd = _api_useAppContext.distDirectory;
|
|
337
502
|
if (isProd()) {
|
|
338
|
-
getServerManifest(pwd, routes || [], console);
|
|
503
|
+
manifestPromise = getServerManifest(pwd, routes || [], console);
|
|
339
504
|
htmlTemplatePromise = getHtmlTemplates(pwd, routes || []);
|
|
340
505
|
}
|
|
341
506
|
middlewares.push({
|
|
342
507
|
name: "inject-server-manifest",
|
|
343
|
-
handler: injectServerManifest(pwd, routes)
|
|
508
|
+
handler: injectServerManifest(pwd, routes, manifestPromise)
|
|
344
509
|
});
|
|
345
510
|
middlewares.push({
|
|
346
511
|
name: "inject-html",
|
|
@@ -357,9 +522,13 @@ var injectResourcePlugin = function() {
|
|
|
357
522
|
};
|
|
358
523
|
};
|
|
359
524
|
export {
|
|
525
|
+
getClientManifest,
|
|
360
526
|
getHtmlTemplates,
|
|
527
|
+
getRscSSRManifest,
|
|
528
|
+
getRscServerManifest,
|
|
361
529
|
getServerManifest,
|
|
362
530
|
injectResourcePlugin,
|
|
531
|
+
injectRscManifestPlugin,
|
|
363
532
|
injectServerManifest,
|
|
364
533
|
injectTemplates
|
|
365
534
|
};
|
|
@@ -2,14 +2,22 @@ import { logPlugin } from "./log";
|
|
|
2
2
|
import { initMonitorsPlugin, injectServerTiming, injectloggerPluigin } from "./monitors";
|
|
3
3
|
import { processedByPlugin } from "./processedBy";
|
|
4
4
|
import { injectRenderHandlerPlugin } from "./render";
|
|
5
|
+
function createSilenceLogger() {
|
|
6
|
+
return new Proxy({}, {
|
|
7
|
+
get: function() {
|
|
8
|
+
return function() {
|
|
9
|
+
};
|
|
10
|
+
}
|
|
11
|
+
});
|
|
12
|
+
}
|
|
5
13
|
function createDefaultPlugins() {
|
|
6
14
|
var options = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {};
|
|
7
15
|
var plugins = [
|
|
16
|
+
logPlugin(),
|
|
8
17
|
initMonitorsPlugin(),
|
|
9
18
|
injectRenderHandlerPlugin(options),
|
|
10
|
-
injectloggerPluigin(options.logger),
|
|
19
|
+
injectloggerPluigin(options.logger ? options.logger : createSilenceLogger()),
|
|
11
20
|
injectServerTiming(),
|
|
12
|
-
logPlugin(),
|
|
13
21
|
processedByPlugin()
|
|
14
22
|
];
|
|
15
23
|
return plugins;
|
package/dist/esm/plugins/log.js
CHANGED
|
@@ -41,7 +41,7 @@ function log(fn, prefix, method, path) {
|
|
|
41
41
|
function logHandler() {
|
|
42
42
|
return function() {
|
|
43
43
|
var _logger = _async_to_generator(function(c, next) {
|
|
44
|
-
var method, monitors, path, logFn, start;
|
|
44
|
+
var _c_env_node_res, _c_env_node, _c_env, method, monitors, path, logFn, start, _c_env_node_res_statusCode;
|
|
45
45
|
return _ts_generator(this, function(_state) {
|
|
46
46
|
switch (_state.label) {
|
|
47
47
|
case 0:
|
|
@@ -72,7 +72,7 @@ function logHandler() {
|
|
|
72
72
|
];
|
|
73
73
|
case 3:
|
|
74
74
|
_state.sent();
|
|
75
|
-
log(logFn, "-->", method, path, c.res.status, time(start));
|
|
75
|
+
log(logFn, "-->", method, path, (_c_env_node_res_statusCode = c === null || c === void 0 ? void 0 : (_c_env = c.env) === null || _c_env === void 0 ? void 0 : (_c_env_node = _c_env.node) === null || _c_env_node === void 0 ? void 0 : (_c_env_node_res = _c_env_node.res) === null || _c_env_node_res === void 0 ? void 0 : _c_env_node_res.statusCode) !== null && _c_env_node_res_statusCode !== void 0 ? _c_env_node_res_statusCode : c.res.status, time(start));
|
|
76
76
|
return [
|
|
77
77
|
2
|
|
78
78
|
];
|
|
@@ -133,7 +133,7 @@ function getPageRoutes(routes) {
|
|
|
133
133
|
function createRenderHandler(render) {
|
|
134
134
|
return function() {
|
|
135
135
|
var _ref = _async_to_generator(function(c, _) {
|
|
136
|
-
var _c_env_node, logger, reporter, monitors, templates, serverManifest, locals, metrics, matchPathname, matchEntryName, loaderContext, request, nodeReq, res, body, status, headers, headersData;
|
|
136
|
+
var _c_env_node, logger, reporter, monitors, templates, serverManifest, rscServerManifest, rscClientManifest, rscSSRManifest, locals, metrics, matchPathname, matchEntryName, loaderContext, request, nodeReq, res, body, status, headers, headersData;
|
|
137
137
|
return _ts_generator(this, function(_state) {
|
|
138
138
|
switch (_state.label) {
|
|
139
139
|
case 0:
|
|
@@ -142,6 +142,9 @@ function createRenderHandler(render) {
|
|
|
142
142
|
monitors = c.get("monitors");
|
|
143
143
|
templates = c.get("templates") || {};
|
|
144
144
|
serverManifest = c.get("serverManifest") || {};
|
|
145
|
+
rscServerManifest = c.get("rscServerManifest");
|
|
146
|
+
rscClientManifest = c.get("rscClientManifest");
|
|
147
|
+
rscSSRManifest = c.get("rscSSRManifest");
|
|
145
148
|
locals = c.get("locals");
|
|
146
149
|
metrics = c.get("metrics");
|
|
147
150
|
matchPathname = c.get("matchPathname");
|
|
@@ -159,6 +162,9 @@ function createRenderHandler(render) {
|
|
|
159
162
|
templates,
|
|
160
163
|
metrics,
|
|
161
164
|
serverManifest,
|
|
165
|
+
rscServerManifest,
|
|
166
|
+
rscClientManifest,
|
|
167
|
+
rscSSRManifest,
|
|
162
168
|
loaderContext,
|
|
163
169
|
locals,
|
|
164
170
|
matchPathname,
|
|
@@ -10,8 +10,10 @@ import { cutNameByHyphen } from "@modern-js/utils/universal";
|
|
|
10
10
|
import { TrieRouter } from "hono/router/trie-router";
|
|
11
11
|
import { X_MODERNJS_RENDER } from "../../constants";
|
|
12
12
|
import { uniqueKeyByRoute } from "../../utils";
|
|
13
|
-
import { ErrorDigest, createErrorHtml, getPathname, getRuntimeEnv,
|
|
13
|
+
import { ErrorDigest, createErrorHtml, getPathname, getRuntimeEnv, parseHeaders, parseQuery, sortRoutes } from "../../utils";
|
|
14
14
|
import { dataHandler } from "./dataHandler";
|
|
15
|
+
import { renderRscHandler } from "./renderRscHandler";
|
|
16
|
+
import { serverActionHandler } from "./serverActionHandler";
|
|
15
17
|
import { ssrRender } from "./ssrRender";
|
|
16
18
|
var DYNAMIC_ROUTE_REG = /\/:./;
|
|
17
19
|
function getRouter(routes) {
|
|
@@ -76,31 +78,31 @@ function createRender(_) {
|
|
|
76
78
|
}
|
|
77
79
|
function _createRender() {
|
|
78
80
|
_createRender = _async_to_generator(function(param) {
|
|
79
|
-
var routes, pwd, metaName, staticGenerate, cacheConfig, forceCSR, config,
|
|
81
|
+
var routes, pwd, metaName, staticGenerate, cacheConfig, forceCSR, config, onFallback, router;
|
|
80
82
|
return _ts_generator(this, function(_state) {
|
|
81
|
-
routes = param.routes, pwd = param.pwd, metaName = param.metaName, staticGenerate = param.staticGenerate, cacheConfig = param.cacheConfig, forceCSR = param.forceCSR, config = param.config,
|
|
83
|
+
routes = param.routes, pwd = param.pwd, metaName = param.metaName, staticGenerate = param.staticGenerate, cacheConfig = param.cacheConfig, forceCSR = param.forceCSR, config = param.config, onFallback = param.onFallback;
|
|
82
84
|
router = getRouter(routes);
|
|
83
85
|
return [
|
|
84
86
|
2,
|
|
85
87
|
function() {
|
|
86
88
|
var _ref = _async_to_generator(function(req, param2) {
|
|
87
|
-
var logger, reporter, metrics, monitors, nodeReq, templates, serverManifest, locals, matchEntryName, matchPathname, loaderContext, forMatchpathname, _matchRoute, routeInfo, params, framework, fallbackHeader, fallbackReason,
|
|
89
|
+
var logger, reporter, metrics, monitors, nodeReq, templates, serverManifest, rscClientManifest, rscSSRManifest, rscServerManifest, locals, matchEntryName, matchPathname, loaderContext, forMatchpathname, _matchRoute, routeInfo, params, framework, fallbackHeader, fallbackReason, fallbackWrapper, html, renderMode, headerData, onError, onTiming, renderOptions, response, _tmp;
|
|
88
90
|
return _ts_generator(this, function(_state2) {
|
|
89
91
|
switch (_state2.label) {
|
|
90
92
|
case 0:
|
|
91
|
-
logger = param2.logger, reporter = param2.reporter, metrics = param2.metrics, monitors = param2.monitors, nodeReq = param2.nodeReq, templates = param2.templates, serverManifest = param2.serverManifest, locals = param2.locals, matchEntryName = param2.matchEntryName, matchPathname = param2.matchPathname, loaderContext = param2.loaderContext;
|
|
93
|
+
logger = param2.logger, reporter = param2.reporter, metrics = param2.metrics, monitors = param2.monitors, nodeReq = param2.nodeReq, templates = param2.templates, serverManifest = param2.serverManifest, rscClientManifest = param2.rscClientManifest, rscSSRManifest = param2.rscSSRManifest, rscServerManifest = param2.rscServerManifest, locals = param2.locals, matchEntryName = param2.matchEntryName, matchPathname = param2.matchPathname, loaderContext = param2.loaderContext;
|
|
92
94
|
forMatchpathname = matchPathname !== null && matchPathname !== void 0 ? matchPathname : getPathname(req);
|
|
93
95
|
_matchRoute = _sliced_to_array(matchRoute(router, forMatchpathname, matchEntryName), 2), routeInfo = _matchRoute[0], params = _matchRoute[1];
|
|
94
96
|
framework = metaName || "modern-js";
|
|
95
97
|
fallbackHeader = "x-".concat(cutNameByHyphen(framework), "-ssr-fallback");
|
|
96
98
|
fallbackReason = null;
|
|
97
|
-
|
|
99
|
+
fallbackWrapper = function() {
|
|
98
100
|
var _ref2 = _async_to_generator(function(reason, error) {
|
|
99
101
|
return _ts_generator(this, function(_state3) {
|
|
100
102
|
fallbackReason = reason;
|
|
101
103
|
return [
|
|
102
104
|
2,
|
|
103
|
-
|
|
105
|
+
onFallback === null || onFallback === void 0 ? void 0 : onFallback(reason, {
|
|
104
106
|
logger,
|
|
105
107
|
reporter,
|
|
106
108
|
metrics
|
|
@@ -108,7 +110,7 @@ function _createRender() {
|
|
|
108
110
|
];
|
|
109
111
|
});
|
|
110
112
|
});
|
|
111
|
-
return function
|
|
113
|
+
return function fallbackWrapper2(reason, error) {
|
|
112
114
|
return _ref2.apply(this, arguments);
|
|
113
115
|
};
|
|
114
116
|
}();
|
|
@@ -137,39 +139,17 @@ function _createRender() {
|
|
|
137
139
|
}
|
|
138
140
|
return [
|
|
139
141
|
4,
|
|
140
|
-
getRenderMode(req, fallbackHeader, routeInfo.isSSR, forceCSR, nodeReq,
|
|
142
|
+
getRenderMode(req, fallbackHeader, routeInfo.isSSR, forceCSR, nodeReq, fallbackWrapper)
|
|
141
143
|
];
|
|
142
144
|
case 1:
|
|
143
145
|
renderMode = _state2.sent();
|
|
144
146
|
headerData = parseHeaders(req);
|
|
145
|
-
onError = function(e) {
|
|
146
|
-
monitors === null || monitors === void 0 ? void 0 : monitors.error("SSR Error - ".concat(_instanceof(e, Error) ? e.name : e, ", error = %s, req.url = %s, req.headers = %o"), _instanceof(e, Error) ? e.stack || e.message : e, forMatchpathname, getHeadersWithoutCookie(headerData));
|
|
147
|
+
onError = function(e, key) {
|
|
148
|
+
monitors === null || monitors === void 0 ? void 0 : monitors.error("SSR Error - ".concat(key || (_instanceof(e, Error) ? e.name : e), ", error = %s, req.url = %s, req.headers = %o"), _instanceof(e, Error) ? e.stack || e.message : e, forMatchpathname, getHeadersWithoutCookie(headerData));
|
|
147
149
|
};
|
|
148
150
|
onTiming = function(name, dur) {
|
|
149
151
|
monitors === null || monitors === void 0 ? void 0 : monitors.timing(name, dur, "SSR");
|
|
150
152
|
};
|
|
151
|
-
onBoundError = function() {
|
|
152
|
-
var _ref2 = _async_to_generator(function(e) {
|
|
153
|
-
return _ts_generator(this, function(_state3) {
|
|
154
|
-
switch (_state3.label) {
|
|
155
|
-
case 0:
|
|
156
|
-
onErrorFn(ErrorDigest.ERENDER, e, monitors, req);
|
|
157
|
-
return [
|
|
158
|
-
4,
|
|
159
|
-
onFallback === null || onFallback === void 0 ? void 0 : onFallback("error", e)
|
|
160
|
-
];
|
|
161
|
-
case 1:
|
|
162
|
-
_state3.sent();
|
|
163
|
-
return [
|
|
164
|
-
2
|
|
165
|
-
];
|
|
166
|
-
}
|
|
167
|
-
});
|
|
168
|
-
});
|
|
169
|
-
return function onBoundError2(e) {
|
|
170
|
-
return _ref2.apply(this, arguments);
|
|
171
|
-
};
|
|
172
|
-
}();
|
|
173
153
|
renderOptions = {
|
|
174
154
|
pwd,
|
|
175
155
|
html,
|
|
@@ -184,6 +164,9 @@ function _createRender() {
|
|
|
184
164
|
logger,
|
|
185
165
|
metrics,
|
|
186
166
|
locals,
|
|
167
|
+
rscClientManifest,
|
|
168
|
+
rscSSRManifest,
|
|
169
|
+
rscServerManifest,
|
|
187
170
|
serverManifest,
|
|
188
171
|
loaderContext: loaderContext || /* @__PURE__ */ new Map(),
|
|
189
172
|
onError,
|
|
@@ -195,20 +178,30 @@ function _createRender() {
|
|
|
195
178
|
3,
|
|
196
179
|
2
|
|
197
180
|
];
|
|
198
|
-
case "
|
|
181
|
+
case "rsc-tree":
|
|
199
182
|
return [
|
|
200
183
|
3,
|
|
201
184
|
6
|
|
202
185
|
];
|
|
186
|
+
case "rsc-action":
|
|
187
|
+
return [
|
|
188
|
+
3,
|
|
189
|
+
8
|
|
190
|
+
];
|
|
191
|
+
case "ssr":
|
|
192
|
+
return [
|
|
193
|
+
3,
|
|
194
|
+
10
|
|
195
|
+
];
|
|
203
196
|
case "csr":
|
|
204
197
|
return [
|
|
205
198
|
3,
|
|
206
|
-
|
|
199
|
+
10
|
|
207
200
|
];
|
|
208
201
|
}
|
|
209
202
|
return [
|
|
210
203
|
3,
|
|
211
|
-
|
|
204
|
+
12
|
|
212
205
|
];
|
|
213
206
|
case 2:
|
|
214
207
|
return [
|
|
@@ -224,7 +217,7 @@ function _createRender() {
|
|
|
224
217
|
];
|
|
225
218
|
return [
|
|
226
219
|
4,
|
|
227
|
-
renderHandler(req, renderOptions, "ssr",
|
|
220
|
+
renderHandler(req, renderOptions, "ssr", fallbackWrapper)
|
|
228
221
|
];
|
|
229
222
|
case 4:
|
|
230
223
|
_tmp = _state2.sent();
|
|
@@ -233,22 +226,44 @@ function _createRender() {
|
|
|
233
226
|
response = _tmp;
|
|
234
227
|
return [
|
|
235
228
|
3,
|
|
236
|
-
|
|
229
|
+
13
|
|
237
230
|
];
|
|
238
231
|
case 6:
|
|
239
232
|
return [
|
|
240
233
|
4,
|
|
241
|
-
|
|
234
|
+
renderRscHandler(req, renderOptions)
|
|
242
235
|
];
|
|
243
236
|
case 7:
|
|
244
237
|
response = _state2.sent();
|
|
245
238
|
return [
|
|
246
239
|
3,
|
|
247
|
-
|
|
240
|
+
13
|
|
248
241
|
];
|
|
249
242
|
case 8:
|
|
250
|
-
|
|
243
|
+
return [
|
|
244
|
+
4,
|
|
245
|
+
serverActionHandler(req, renderOptions)
|
|
246
|
+
];
|
|
251
247
|
case 9:
|
|
248
|
+
response = _state2.sent();
|
|
249
|
+
return [
|
|
250
|
+
3,
|
|
251
|
+
13
|
|
252
|
+
];
|
|
253
|
+
case 10:
|
|
254
|
+
return [
|
|
255
|
+
4,
|
|
256
|
+
renderHandler(req, renderOptions, renderMode, fallbackWrapper)
|
|
257
|
+
];
|
|
258
|
+
case 11:
|
|
259
|
+
response = _state2.sent();
|
|
260
|
+
return [
|
|
261
|
+
3,
|
|
262
|
+
13
|
|
263
|
+
];
|
|
264
|
+
case 12:
|
|
265
|
+
throw new Error("Unknown render mode: ".concat(renderMode));
|
|
266
|
+
case 13:
|
|
252
267
|
if (fallbackReason) {
|
|
253
268
|
response.headers.set(fallbackHeader, "1;reason=".concat(fallbackReason));
|
|
254
269
|
}
|
|
@@ -268,11 +283,11 @@ function _createRender() {
|
|
|
268
283
|
});
|
|
269
284
|
return _createRender.apply(this, arguments);
|
|
270
285
|
}
|
|
271
|
-
function renderHandler(request, options, mode,
|
|
286
|
+
function renderHandler(request, options, mode, fallbackWrapper) {
|
|
272
287
|
return _renderHandler.apply(this, arguments);
|
|
273
288
|
}
|
|
274
289
|
function _renderHandler() {
|
|
275
|
-
_renderHandler = _async_to_generator(function(request, options, mode,
|
|
290
|
+
_renderHandler = _async_to_generator(function(request, options, mode, fallbackWrapper) {
|
|
276
291
|
var _options_config_server, response, serverManifest, ssrByRouteIds, runtimeEnv, nestedRoutesJson, routes, urlPath, pathToFileURL, matchRoutes, url, matchedRoutes, _lastMatch_route, lastMatch, e, routeInfo;
|
|
277
292
|
function applyExtendHeaders(r, route) {
|
|
278
293
|
Object.entries(route.responseHeaders || {}).forEach(function(param) {
|
|
@@ -350,9 +365,10 @@ function _renderHandler() {
|
|
|
350
365
|
];
|
|
351
366
|
case 6:
|
|
352
367
|
e = _state.sent();
|
|
368
|
+
options.onError(e, ErrorDigest.ERENDER);
|
|
353
369
|
return [
|
|
354
370
|
4,
|
|
355
|
-
|
|
371
|
+
fallbackWrapper("error", e)
|
|
356
372
|
];
|
|
357
373
|
case 7:
|
|
358
374
|
_state.sent();
|
|
@@ -391,6 +407,18 @@ function _getRenderMode() {
|
|
|
391
407
|
switch (_state.label) {
|
|
392
408
|
case 0:
|
|
393
409
|
query = parseQuery(req);
|
|
410
|
+
if (req.headers.get("x-rsc-action")) {
|
|
411
|
+
return [
|
|
412
|
+
2,
|
|
413
|
+
"rsc-action"
|
|
414
|
+
];
|
|
415
|
+
}
|
|
416
|
+
if (req.headers.get("x-rsc-tree")) {
|
|
417
|
+
return [
|
|
418
|
+
2,
|
|
419
|
+
"rsc-tree"
|
|
420
|
+
];
|
|
421
|
+
}
|
|
394
422
|
if (!isSSR)
|
|
395
423
|
return [
|
|
396
424
|
3,
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { _ as _async_to_generator } from "@swc/helpers/_/_async_to_generator";
|
|
2
|
+
import { _ as _ts_generator } from "@swc/helpers/_/_ts_generator";
|
|
3
|
+
import { MAIN_ENTRY_NAME } from "@modern-js/utils/universal/constants";
|
|
4
|
+
var renderRscHandler = function() {
|
|
5
|
+
var _ref = _async_to_generator(function(req, param) {
|
|
6
|
+
var serverManifest, routeInfo, rscClientManifest, _serverManifest_renderBundles, serverBundle, rscRequestHandler;
|
|
7
|
+
return _ts_generator(this, function(_state) {
|
|
8
|
+
serverManifest = param.serverManifest, routeInfo = param.routeInfo, rscClientManifest = param.rscClientManifest;
|
|
9
|
+
serverBundle = serverManifest === null || serverManifest === void 0 ? void 0 : (_serverManifest_renderBundles = serverManifest.renderBundles) === null || _serverManifest_renderBundles === void 0 ? void 0 : _serverManifest_renderBundles[routeInfo.entryName || MAIN_ENTRY_NAME];
|
|
10
|
+
if (!serverBundle) {
|
|
11
|
+
return [
|
|
12
|
+
2,
|
|
13
|
+
new Response("Cannot find server bundle for RSC", {
|
|
14
|
+
status: 500
|
|
15
|
+
})
|
|
16
|
+
];
|
|
17
|
+
}
|
|
18
|
+
rscRequestHandler = serverBundle.rscRequestHandler;
|
|
19
|
+
if (!rscRequestHandler) {
|
|
20
|
+
return [
|
|
21
|
+
2,
|
|
22
|
+
new Response("Cannot find request handler for RSC", {
|
|
23
|
+
status: 500
|
|
24
|
+
})
|
|
25
|
+
];
|
|
26
|
+
}
|
|
27
|
+
if (!rscClientManifest) {
|
|
28
|
+
return [
|
|
29
|
+
2,
|
|
30
|
+
new Response("Cannot find rsc client manifest", {
|
|
31
|
+
status: 500
|
|
32
|
+
})
|
|
33
|
+
];
|
|
34
|
+
}
|
|
35
|
+
return [
|
|
36
|
+
2,
|
|
37
|
+
rscRequestHandler({
|
|
38
|
+
clientManifest: rscClientManifest
|
|
39
|
+
})
|
|
40
|
+
];
|
|
41
|
+
});
|
|
42
|
+
});
|
|
43
|
+
return function renderRscHandler2(req, _) {
|
|
44
|
+
return _ref.apply(this, arguments);
|
|
45
|
+
};
|
|
46
|
+
}();
|
|
47
|
+
export {
|
|
48
|
+
renderRscHandler
|
|
49
|
+
};
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { _ as _async_to_generator } from "@swc/helpers/_/_async_to_generator";
|
|
2
|
+
import { _ as _ts_generator } from "@swc/helpers/_/_ts_generator";
|
|
3
|
+
import { MAIN_ENTRY_NAME } from "@modern-js/utils/universal/constants";
|
|
4
|
+
var serverActionHandler = function() {
|
|
5
|
+
var _ref = _async_to_generator(function(req, param) {
|
|
6
|
+
var serverManifest, routeInfo, rscClientManifest, _serverManifest_renderBundles, serverBundle, handleAction;
|
|
7
|
+
return _ts_generator(this, function(_state) {
|
|
8
|
+
serverManifest = param.serverManifest, routeInfo = param.routeInfo, rscClientManifest = param.rscClientManifest;
|
|
9
|
+
serverBundle = serverManifest === null || serverManifest === void 0 ? void 0 : (_serverManifest_renderBundles = serverManifest.renderBundles) === null || _serverManifest_renderBundles === void 0 ? void 0 : _serverManifest_renderBundles[routeInfo.entryName || MAIN_ENTRY_NAME];
|
|
10
|
+
if (!serverBundle) {
|
|
11
|
+
return [
|
|
12
|
+
2,
|
|
13
|
+
new Response("Cannot find server bundle for server action", {
|
|
14
|
+
status: 500
|
|
15
|
+
})
|
|
16
|
+
];
|
|
17
|
+
}
|
|
18
|
+
handleAction = serverBundle.handleAction;
|
|
19
|
+
if (!handleAction) {
|
|
20
|
+
return [
|
|
21
|
+
2,
|
|
22
|
+
new Response("Cannot find server action handler", {
|
|
23
|
+
status: 500
|
|
24
|
+
})
|
|
25
|
+
];
|
|
26
|
+
}
|
|
27
|
+
if (!rscClientManifest) {
|
|
28
|
+
return [
|
|
29
|
+
2,
|
|
30
|
+
new Response("Cannot find rsc client manifest", {
|
|
31
|
+
status: 500
|
|
32
|
+
})
|
|
33
|
+
];
|
|
34
|
+
}
|
|
35
|
+
return [
|
|
36
|
+
2,
|
|
37
|
+
handleAction(req, {
|
|
38
|
+
clientManifest: rscClientManifest
|
|
39
|
+
})
|
|
40
|
+
];
|
|
41
|
+
});
|
|
42
|
+
});
|
|
43
|
+
return function serverActionHandler2(req, _) {
|
|
44
|
+
return _ref.apply(this, arguments);
|
|
45
|
+
};
|
|
46
|
+
}();
|
|
47
|
+
export {
|
|
48
|
+
serverActionHandler
|
|
49
|
+
};
|
|
@@ -11,11 +11,11 @@ function ssrRender(request, _) {
|
|
|
11
11
|
}
|
|
12
12
|
function _ssrRender() {
|
|
13
13
|
_ssrRender = _async_to_generator(function(request, param) {
|
|
14
|
-
var routeInfo, html, userConfig, staticGenerate, nodeReq, serverManifest, locals, params, loaderContext, reporter, cacheConfig, logger, metrics, onError, onTiming, _serverManifest_renderBundles, entryName, loadableStats, routeManifest, headers, key, renderBundle, requestHandler, config, requestHandlerOptions, cacheControl, response;
|
|
14
|
+
var routeInfo, html, userConfig, staticGenerate, nodeReq, serverManifest, rscSSRManifest, rscClientManifest, rscServerManifest, locals, params, loaderContext, reporter, cacheConfig, logger, metrics, onError, onTiming, _serverManifest_renderBundles, entryName, loadableStats, routeManifest, headers, key, renderBundle, requestHandler, config, requestHandlerOptions, cacheControl, response;
|
|
15
15
|
return _ts_generator(this, function(_state) {
|
|
16
16
|
switch (_state.label) {
|
|
17
17
|
case 0:
|
|
18
|
-
routeInfo = param.routeInfo, html = param.html, userConfig = param.config, staticGenerate = param.staticGenerate, nodeReq = param.nodeReq, serverManifest = param.serverManifest, locals = param.locals, params = param.params, loaderContext = param.loaderContext, reporter = param.reporter, cacheConfig = param.cacheConfig, logger = param.logger, metrics = param.metrics, onError = param.onError, onTiming = param.onTiming;
|
|
18
|
+
routeInfo = param.routeInfo, html = param.html, userConfig = param.config, staticGenerate = param.staticGenerate, nodeReq = param.nodeReq, serverManifest = param.serverManifest, rscSSRManifest = param.rscSSRManifest, rscClientManifest = param.rscClientManifest, rscServerManifest = param.rscServerManifest, locals = param.locals, params = param.params, loaderContext = param.loaderContext, reporter = param.reporter, cacheConfig = param.cacheConfig, logger = param.logger, metrics = param.metrics, onError = param.onError, onTiming = param.onTiming;
|
|
19
19
|
entryName = routeInfo.entryName;
|
|
20
20
|
loadableStats = serverManifest.loadableStats || {};
|
|
21
21
|
routeManifest = serverManifest.routeManifest || {};
|
|
@@ -49,6 +49,9 @@ function _ssrRender() {
|
|
|
49
49
|
params,
|
|
50
50
|
loaderContext,
|
|
51
51
|
config,
|
|
52
|
+
rscSSRManifest,
|
|
53
|
+
rscClientManifest,
|
|
54
|
+
rscServerManifest,
|
|
52
55
|
locals,
|
|
53
56
|
reporter,
|
|
54
57
|
staticGenerate,
|
package/dist/esm/utils/error.js
CHANGED
|
@@ -13,7 +13,7 @@ var ErrorDigest;
|
|
|
13
13
|
(function(ErrorDigest2) {
|
|
14
14
|
ErrorDigest2["ENOTF"] = "Page could not be found";
|
|
15
15
|
ErrorDigest2["EINTER"] = "Internal server error";
|
|
16
|
-
ErrorDigest2["ERENDER"] = "SSR render
|
|
16
|
+
ErrorDigest2["ERENDER"] = "SSR render fallback";
|
|
17
17
|
})(ErrorDigest || (ErrorDigest = {}));
|
|
18
18
|
function onError(digest, error, monitors, req) {
|
|
19
19
|
var headerData = req && parseHeaders(req);
|