@modern-js/prod-server 2.35.0 → 2.36.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/dist/cjs/constants.js +33 -27
- package/dist/cjs/index.js +41 -33
- package/dist/cjs/libs/context/context.js +86 -36
- package/dist/cjs/libs/context/index.js +27 -17
- package/dist/cjs/libs/hook-api/base.js +49 -30
- package/dist/cjs/libs/hook-api/index.js +36 -28
- package/dist/cjs/libs/hook-api/index.worker.js +39 -31
- package/dist/cjs/libs/hook-api/route.js +28 -11
- package/dist/cjs/libs/hook-api/template.js +27 -17
- package/dist/cjs/libs/hook-api/templateForStream.js +31 -14
- package/dist/cjs/libs/loadConfig.js +46 -29
- package/dist/cjs/libs/metrics.js +24 -7
- package/dist/cjs/libs/preload/flushServerHeader.js +30 -13
- package/dist/cjs/libs/preload/index.js +22 -5
- package/dist/cjs/libs/preload/parseLinks.js +54 -30
- package/dist/cjs/libs/preload/shouldFlushServerHeader.js +25 -15
- package/dist/cjs/libs/preload/transformLinks2String.js +27 -11
- package/dist/cjs/libs/proxy.js +29 -19
- package/dist/cjs/libs/render/cache/__tests__/cache.fun.test.js +40 -22
- package/dist/cjs/libs/render/cache/__tests__/cache.test.js +33 -41
- package/dist/cjs/libs/render/cache/__tests__/cacheable.js +24 -7
- package/dist/cjs/libs/render/cache/__tests__/error-configuration.js +24 -7
- package/dist/cjs/libs/render/cache/__tests__/matched-cache.js +24 -7
- package/dist/cjs/libs/render/cache/index.js +30 -18
- package/dist/cjs/libs/render/cache/page-caches/index.js +26 -9
- package/dist/cjs/libs/render/cache/page-caches/lru.js +39 -13
- package/dist/cjs/libs/render/cache/spr.js +62 -44
- package/dist/cjs/libs/render/cache/type.js +15 -3
- package/dist/cjs/libs/render/cache/util.js +49 -36
- package/dist/cjs/libs/render/index.js +56 -30
- package/dist/cjs/libs/render/measure.js +27 -17
- package/dist/cjs/libs/render/reader.js +50 -35
- package/dist/cjs/libs/render/ssr.js +52 -26
- package/dist/cjs/libs/render/static.js +44 -18
- package/dist/cjs/libs/render/type.js +24 -7
- package/dist/cjs/libs/render/utils.js +29 -19
- package/dist/cjs/libs/reporter.js +24 -7
- package/dist/cjs/libs/route/index.js +30 -20
- package/dist/cjs/libs/route/matcher.js +37 -20
- package/dist/cjs/libs/route/route.js +34 -17
- package/dist/cjs/libs/serveFile.js +40 -21
- package/dist/cjs/libs/serverTiming.js +27 -10
- package/dist/cjs/renderHtml.js +17 -20
- package/dist/cjs/server/index.js +74 -50
- package/dist/cjs/server/modernServer.js +136 -113
- package/dist/cjs/server/modernServerSplit.js +29 -12
- package/dist/cjs/type.js +15 -3
- package/dist/cjs/utils.js +41 -38
- package/dist/cjs/workerServer.js +48 -39
- package/dist/esm/constants.js +14 -6
- package/dist/esm/index.js +11 -5
- package/dist/esm/libs/context/context.js +33 -6
- package/dist/esm/libs/context/index.js +5 -2
- package/dist/esm/libs/hook-api/base.js +6 -2
- package/dist/esm/libs/hook-api/index.js +11 -5
- package/dist/esm/libs/hook-api/index.worker.js +16 -10
- package/dist/esm/libs/hook-api/route.js +4 -1
- package/dist/esm/libs/hook-api/template.js +6 -2
- package/dist/esm/libs/hook-api/templateForStream.js +4 -1
- package/dist/esm/libs/loadConfig.js +8 -3
- package/dist/esm/libs/metrics.js +3 -1
- package/dist/esm/libs/preload/flushServerHeader.js +9 -6
- package/dist/esm/libs/preload/parseLinks.js +13 -11
- package/dist/esm/libs/preload/shouldFlushServerHeader.js +6 -2
- package/dist/esm/libs/preload/transformLinks2String.js +5 -3
- package/dist/esm/libs/proxy.js +9 -5
- package/dist/esm/libs/render/cache/__tests__/cache.test.js +12 -12
- package/dist/esm/libs/render/cache/__tests__/cacheable.js +4 -1
- package/dist/esm/libs/render/cache/__tests__/error-configuration.js +4 -1
- package/dist/esm/libs/render/cache/__tests__/matched-cache.js +4 -1
- package/dist/esm/libs/render/cache/index.js +6 -3
- package/dist/esm/libs/render/cache/page-caches/index.js +5 -2
- package/dist/esm/libs/render/cache/page-caches/lru.js +4 -1
- package/dist/esm/libs/render/cache/spr.js +13 -9
- package/dist/esm/libs/render/cache/type.js +0 -1
- package/dist/esm/libs/render/cache/util.js +18 -8
- package/dist/esm/libs/render/index.js +17 -11
- package/dist/esm/libs/render/measure.js +15 -11
- package/dist/esm/libs/render/reader.js +17 -10
- package/dist/esm/libs/render/ssr.js +11 -8
- package/dist/esm/libs/render/static.js +5 -2
- package/dist/esm/libs/render/type.js +4 -1
- package/dist/esm/libs/render/utils.js +6 -2
- package/dist/esm/libs/reporter.js +4 -1
- package/dist/esm/libs/route/index.js +5 -2
- package/dist/esm/libs/route/matcher.js +6 -3
- package/dist/esm/libs/route/route.js +4 -1
- package/dist/esm/libs/serveFile.js +6 -2
- package/dist/esm/libs/serverTiming.js +4 -1
- package/dist/esm/renderHtml.js +133 -124
- package/dist/esm/server/index.js +14 -13
- package/dist/esm/server/modernServer.js +39 -47
- package/dist/esm/server/modernServerSplit.js +4 -1
- package/dist/esm/type.js +0 -1
- package/dist/esm/utils.js +23 -12
- package/dist/esm/workerServer.js +25 -22
- package/dist/esm-node/constants.js +14 -6
- package/dist/esm-node/index.js +11 -5
- package/dist/esm-node/libs/context/context.js +33 -6
- package/dist/esm-node/libs/context/index.js +5 -2
- package/dist/esm-node/libs/hook-api/base.js +6 -2
- package/dist/esm-node/libs/hook-api/index.js +10 -4
- package/dist/esm-node/libs/hook-api/index.worker.js +10 -4
- package/dist/esm-node/libs/hook-api/route.js +4 -1
- package/dist/esm-node/libs/hook-api/template.js +6 -2
- package/dist/esm-node/libs/hook-api/templateForStream.js +4 -1
- package/dist/esm-node/libs/loadConfig.js +8 -3
- package/dist/esm-node/libs/metrics.js +3 -1
- package/dist/esm-node/libs/preload/flushServerHeader.js +6 -3
- package/dist/esm-node/libs/preload/parseLinks.js +11 -9
- package/dist/esm-node/libs/preload/shouldFlushServerHeader.js +6 -2
- package/dist/esm-node/libs/preload/transformLinks2String.js +5 -3
- package/dist/esm-node/libs/proxy.js +6 -2
- package/dist/esm-node/libs/render/cache/__tests__/cache.test.js +7 -12
- package/dist/esm-node/libs/render/cache/__tests__/cacheable.js +4 -1
- package/dist/esm-node/libs/render/cache/__tests__/error-configuration.js +4 -1
- package/dist/esm-node/libs/render/cache/__tests__/matched-cache.js +4 -1
- package/dist/esm-node/libs/render/cache/index.js +5 -3
- package/dist/esm-node/libs/render/cache/page-caches/index.js +4 -1
- package/dist/esm-node/libs/render/cache/page-caches/lru.js +4 -1
- package/dist/esm-node/libs/render/cache/spr.js +7 -4
- package/dist/esm-node/libs/render/cache/type.js +0 -1
- package/dist/esm-node/libs/render/cache/util.js +18 -8
- package/dist/esm-node/libs/render/index.js +7 -3
- package/dist/esm-node/libs/render/measure.js +6 -2
- package/dist/esm-node/libs/render/reader.js +13 -7
- package/dist/esm-node/libs/render/ssr.js +4 -1
- package/dist/esm-node/libs/render/static.js +4 -1
- package/dist/esm-node/libs/render/type.js +4 -1
- package/dist/esm-node/libs/render/utils.js +6 -2
- package/dist/esm-node/libs/reporter.js +4 -1
- package/dist/esm-node/libs/route/index.js +5 -2
- package/dist/esm-node/libs/route/matcher.js +6 -3
- package/dist/esm-node/libs/route/route.js +4 -1
- package/dist/esm-node/libs/serveFile.js +6 -2
- package/dist/esm-node/libs/serverTiming.js +4 -1
- package/dist/esm-node/renderHtml.js +72 -63
- package/dist/esm-node/server/index.js +11 -10
- package/dist/esm-node/server/modernServer.js +29 -28
- package/dist/esm-node/server/modernServerSplit.js +4 -1
- package/dist/esm-node/type.js +0 -1
- package/dist/esm-node/utils.js +20 -9
- package/dist/esm-node/workerServer.js +12 -9
- package/dist/types/libs/context/context.d.ts +2 -1
- package/dist/types/type.d.ts +1 -0
- package/dist/types/utils.d.ts +1 -1
- package/package.json +9 -8
- package/dist/cjs/libs/logger.js +0 -123
- package/dist/esm/libs/logger.js +0 -125
- package/dist/esm-node/libs/logger.js +0 -106
- package/dist/types/libs/logger.d.ts +0 -61
|
@@ -8,7 +8,7 @@ import { _ as _ts_generator } from "@swc/helpers/_/_ts_generator";
|
|
|
8
8
|
import { createServer } from "http";
|
|
9
9
|
import path from "path";
|
|
10
10
|
import { fs, isPromise, isWebOnly, mime, ROUTE_SPEC_FILE } from "@modern-js/utils";
|
|
11
|
-
import { time } from "@modern-js/utils/
|
|
11
|
+
import { time } from "@modern-js/runtime-utils/time";
|
|
12
12
|
import { RouteMatchManager } from "../libs/route";
|
|
13
13
|
import { createRenderHandler } from "../libs/render";
|
|
14
14
|
import { createStaticFileHandler, faviconFallbackHandler } from "../libs/serveFile";
|
|
@@ -19,12 +19,11 @@ import { createContext } from "../libs/context";
|
|
|
19
19
|
import { AGGRED_DIR, ERROR_DIGEST, ERROR_PAGE_TEXT, RUN_MODE, ServerReportTimings } from "../constants";
|
|
20
20
|
import { createAfterMatchContext, createAfterRenderContext, createMiddlewareContext } from "../libs/hook-api";
|
|
21
21
|
var SERVER_DIR = "./server";
|
|
22
|
-
|
|
22
|
+
var ModernServer = /* @__PURE__ */ function() {
|
|
23
23
|
"use strict";
|
|
24
24
|
function ModernServer2(param) {
|
|
25
25
|
var pwd = param.pwd, config = param.config, routes = param.routes, staticGenerate = param.staticGenerate, logger = param.logger, metrics = param.metrics, runMode = param.runMode, proxyTarget = param.proxyTarget, appContext = param.appContext;
|
|
26
26
|
_class_call_check(this, ModernServer2);
|
|
27
|
-
var _appContext;
|
|
28
27
|
_define_property(this, "pwd", void 0);
|
|
29
28
|
_define_property(this, "distDir", void 0);
|
|
30
29
|
_define_property(this, "workDir", void 0);
|
|
@@ -58,7 +57,7 @@ export var ModernServer = /* @__PURE__ */ function() {
|
|
|
58
57
|
this.proxyTarget = proxyTarget;
|
|
59
58
|
this.staticGenerate = staticGenerate || false;
|
|
60
59
|
this.runMode = runMode || RUN_MODE.FULL;
|
|
61
|
-
this.metaName =
|
|
60
|
+
this.metaName = appContext === null || appContext === void 0 ? void 0 : appContext.metaName;
|
|
62
61
|
}
|
|
63
62
|
_create_class(ModernServer2, [
|
|
64
63
|
{
|
|
@@ -68,7 +67,7 @@ export var ModernServer = /* @__PURE__ */ function() {
|
|
|
68
67
|
function onInit(runner, app) {
|
|
69
68
|
var _this = this;
|
|
70
69
|
return _async_to_generator(function() {
|
|
71
|
-
var _conf_bff,
|
|
70
|
+
var _conf_bff, _this_conf_output, distDir, conf, _createProxyHandler, handlers, handleUpgrade, usageRoutes;
|
|
72
71
|
return _ts_generator(this, function(_state) {
|
|
73
72
|
switch (_state.label) {
|
|
74
73
|
case 0:
|
|
@@ -83,7 +82,7 @@ export var ModernServer = /* @__PURE__ */ function() {
|
|
|
83
82
|
_this.addHandler(handler);
|
|
84
83
|
});
|
|
85
84
|
}
|
|
86
|
-
|
|
85
|
+
app === null || app === void 0 ? void 0 : app.on("close", function() {
|
|
87
86
|
_this.reader.close();
|
|
88
87
|
});
|
|
89
88
|
usageRoutes = _this.filterRoutes(_this.getRoutes());
|
|
@@ -129,12 +128,12 @@ export var ModernServer = /* @__PURE__ */ function() {
|
|
|
129
128
|
var ssrConfig = (_this_conf_server = this.conf.server) === null || _this_conf_server === void 0 ? void 0 : _this_conf_server.ssr;
|
|
130
129
|
var forceCSR = typeof ssrConfig === "object" ? ssrConfig.forceCSR : false;
|
|
131
130
|
return createRenderHandler({
|
|
132
|
-
distDir
|
|
133
|
-
staticGenerate
|
|
134
|
-
forceCSR
|
|
131
|
+
distDir,
|
|
132
|
+
staticGenerate,
|
|
133
|
+
forceCSR,
|
|
135
134
|
conf: this.conf,
|
|
136
135
|
nonce: (_conf_security = conf.security) === null || _conf_security === void 0 ? void 0 : _conf_security.nonce,
|
|
137
|
-
metaName
|
|
136
|
+
metaName
|
|
138
137
|
});
|
|
139
138
|
}
|
|
140
139
|
},
|
|
@@ -246,8 +245,8 @@ export var ModernServer = /* @__PURE__ */ function() {
|
|
|
246
245
|
return [
|
|
247
246
|
4,
|
|
248
247
|
_this.prepareFrameHandler({
|
|
249
|
-
onlyWeb
|
|
250
|
-
onlyApi
|
|
248
|
+
onlyWeb,
|
|
249
|
+
onlyApi
|
|
251
250
|
})
|
|
252
251
|
];
|
|
253
252
|
case 1:
|
|
@@ -311,7 +310,7 @@ export var ModernServer = /* @__PURE__ */ function() {
|
|
|
311
310
|
4,
|
|
312
311
|
runner.prepareLoaderHandler({
|
|
313
312
|
serverRoutes: specs,
|
|
314
|
-
distDir
|
|
313
|
+
distDir
|
|
315
314
|
}, {
|
|
316
315
|
onLast: function() {
|
|
317
316
|
return null;
|
|
@@ -432,13 +431,13 @@ export var ModernServer = /* @__PURE__ */ function() {
|
|
|
432
431
|
value: function prepareAPIHandler(extension) {
|
|
433
432
|
var _this = this;
|
|
434
433
|
return _async_to_generator(function() {
|
|
435
|
-
var
|
|
434
|
+
var workDir, runner, conf, bff, prefix, webOnly;
|
|
436
435
|
return _ts_generator(this, function(_state) {
|
|
437
436
|
switch (_state.label) {
|
|
438
437
|
case 0:
|
|
439
438
|
workDir = _this.workDir, runner = _this.runner, conf = _this.conf;
|
|
440
439
|
bff = conf.bff;
|
|
441
|
-
prefix = (
|
|
440
|
+
prefix = (bff === null || bff === void 0 ? void 0 : bff.prefix) || "/api";
|
|
442
441
|
return [
|
|
443
442
|
4,
|
|
444
443
|
isWebOnly()
|
|
@@ -460,7 +459,7 @@ export var ModernServer = /* @__PURE__ */ function() {
|
|
|
460
459
|
pwd: workDir,
|
|
461
460
|
config: extension,
|
|
462
461
|
prefix: Array.isArray(prefix) ? prefix[0] : prefix,
|
|
463
|
-
httpMethodDecider:
|
|
462
|
+
httpMethodDecider: bff === null || bff === void 0 ? void 0 : bff.httpMethodDecider,
|
|
464
463
|
render: _this.render.bind(_this)
|
|
465
464
|
}, {
|
|
466
465
|
onLast: function() {
|
|
@@ -591,7 +590,7 @@ export var ModernServer = /* @__PURE__ */ function() {
|
|
|
591
590
|
4,
|
|
592
591
|
_this.routeRenderHandler({
|
|
593
592
|
ctx: context,
|
|
594
|
-
route
|
|
593
|
+
route,
|
|
595
594
|
runner: _this.runner
|
|
596
595
|
})
|
|
597
596
|
];
|
|
@@ -712,17 +711,12 @@ export var ModernServer = /* @__PURE__ */ function() {
|
|
|
712
711
|
2
|
|
713
712
|
];
|
|
714
713
|
case 3:
|
|
715
|
-
if (!route.entryName)
|
|
716
|
-
return [
|
|
717
|
-
3,
|
|
718
|
-
6
|
|
719
|
-
];
|
|
720
|
-
afterMatchContext = createAfterMatchContext(context, route.entryName);
|
|
721
|
-
if (!(_this.runMode === RUN_MODE.FULL))
|
|
714
|
+
if (!(route.entryName && _this.runMode === RUN_MODE.FULL))
|
|
722
715
|
return [
|
|
723
716
|
3,
|
|
724
717
|
5
|
|
725
718
|
];
|
|
719
|
+
afterMatchContext = createAfterMatchContext(context, route.entryName);
|
|
726
720
|
end1 = time();
|
|
727
721
|
return [
|
|
728
722
|
4,
|
|
@@ -734,8 +728,6 @@ export var ModernServer = /* @__PURE__ */ function() {
|
|
|
734
728
|
_state.sent();
|
|
735
729
|
cost = end1();
|
|
736
730
|
cost && reporter.reportTiming(ServerReportTimings.SERVER_HOOK_AFTER_MATCH, cost);
|
|
737
|
-
_state.label = 5;
|
|
738
|
-
case 5:
|
|
739
731
|
if (_this.isSend(res)) {
|
|
740
732
|
return [
|
|
741
733
|
2
|
|
@@ -758,12 +750,12 @@ export var ModernServer = /* @__PURE__ */ function() {
|
|
|
758
750
|
}
|
|
759
751
|
route = matched1.generate(context.url);
|
|
760
752
|
}
|
|
761
|
-
_state.label =
|
|
762
|
-
case
|
|
753
|
+
_state.label = 5;
|
|
754
|
+
case 5:
|
|
763
755
|
if (!_this.frameWebHandler)
|
|
764
756
|
return [
|
|
765
757
|
3,
|
|
766
|
-
|
|
758
|
+
7
|
|
767
759
|
];
|
|
768
760
|
res.locals = res.locals || {};
|
|
769
761
|
middlewareContext = createMiddlewareContext(context);
|
|
@@ -772,7 +764,7 @@ export var ModernServer = /* @__PURE__ */ function() {
|
|
|
772
764
|
4,
|
|
773
765
|
_this.frameWebHandler(middlewareContext)
|
|
774
766
|
];
|
|
775
|
-
case
|
|
767
|
+
case 6:
|
|
776
768
|
_state.sent();
|
|
777
769
|
cost1 = end2();
|
|
778
770
|
cost1 && reporter.reportTiming(ServerReportTimings.SERVER_MIDDLEWARE, cost1);
|
|
@@ -782,13 +774,13 @@ export var ModernServer = /* @__PURE__ */ function() {
|
|
|
782
774
|
2
|
|
783
775
|
];
|
|
784
776
|
}
|
|
785
|
-
_state.label =
|
|
786
|
-
case
|
|
777
|
+
_state.label = 7;
|
|
778
|
+
case 7:
|
|
787
779
|
return [
|
|
788
780
|
4,
|
|
789
781
|
_this.handleWeb(context, route)
|
|
790
782
|
];
|
|
791
|
-
case
|
|
783
|
+
case 8:
|
|
792
784
|
renderResult = _state.sent();
|
|
793
785
|
if (!renderResult) {
|
|
794
786
|
return [
|
|
@@ -803,17 +795,12 @@ export var ModernServer = /* @__PURE__ */ function() {
|
|
|
803
795
|
2
|
|
804
796
|
];
|
|
805
797
|
}
|
|
806
|
-
if (!route.entryName)
|
|
798
|
+
if (!(route.entryName && _this.runMode === RUN_MODE.FULL))
|
|
807
799
|
return [
|
|
808
800
|
3,
|
|
809
|
-
|
|
801
|
+
10
|
|
810
802
|
];
|
|
811
803
|
afterRenderContext = createAfterRenderContext(context, response.toString());
|
|
812
|
-
if (!(_this.runMode === RUN_MODE.FULL))
|
|
813
|
-
return [
|
|
814
|
-
3,
|
|
815
|
-
11
|
|
816
|
-
];
|
|
817
804
|
end3 = time();
|
|
818
805
|
return [
|
|
819
806
|
4,
|
|
@@ -821,20 +808,18 @@ export var ModernServer = /* @__PURE__ */ function() {
|
|
|
821
808
|
onLast: noop
|
|
822
809
|
})
|
|
823
810
|
];
|
|
824
|
-
case
|
|
811
|
+
case 9:
|
|
825
812
|
_state.sent();
|
|
826
813
|
cost2 = end3();
|
|
827
814
|
cost2 && reporter.reportTiming(ServerReportTimings.SERVER_HOOK_AFTER_RENDER, cost2);
|
|
828
|
-
_state.label = 11;
|
|
829
|
-
case 11:
|
|
830
815
|
if (_this.isSend(res)) {
|
|
831
816
|
return [
|
|
832
817
|
2
|
|
833
818
|
];
|
|
834
819
|
}
|
|
835
820
|
response = afterRenderContext.template.get();
|
|
836
|
-
_state.label =
|
|
837
|
-
case
|
|
821
|
+
_state.label = 10;
|
|
822
|
+
case 10:
|
|
838
823
|
res.end(response);
|
|
839
824
|
return [
|
|
840
825
|
2
|
|
@@ -848,7 +833,11 @@ export var ModernServer = /* @__PURE__ */ function() {
|
|
|
848
833
|
{
|
|
849
834
|
key: "isSend",
|
|
850
835
|
value: function isSend(res) {
|
|
851
|
-
if (res.
|
|
836
|
+
if (res.modernFlushedHeaders) {
|
|
837
|
+
if (res.writableFinished) {
|
|
838
|
+
return true;
|
|
839
|
+
}
|
|
840
|
+
} else if (res.headersSent) {
|
|
852
841
|
return true;
|
|
853
842
|
}
|
|
854
843
|
if (res.getHeader("Location") && isRedirect(res.statusCode)) {
|
|
@@ -997,7 +986,7 @@ export var ModernServer = /* @__PURE__ */ function() {
|
|
|
997
986
|
return [
|
|
998
987
|
4,
|
|
999
988
|
_this.routeRenderHandler({
|
|
1000
|
-
route
|
|
989
|
+
route,
|
|
1001
990
|
ctx: context,
|
|
1002
991
|
runner: _this.runner
|
|
1003
992
|
})
|
|
@@ -1034,3 +1023,6 @@ export var ModernServer = /* @__PURE__ */ function() {
|
|
|
1034
1023
|
]);
|
|
1035
1024
|
return ModernServer2;
|
|
1036
1025
|
}();
|
|
1026
|
+
export {
|
|
1027
|
+
ModernServer
|
|
1028
|
+
};
|
|
@@ -122,7 +122,7 @@ var ModernWebServer = /* @__PURE__ */ function(ModernServer2) {
|
|
|
122
122
|
]);
|
|
123
123
|
return ModernWebServer2;
|
|
124
124
|
}(ModernServer);
|
|
125
|
-
|
|
125
|
+
var createProdServer = function(options) {
|
|
126
126
|
if (options.apiOnly) {
|
|
127
127
|
return new ModernAPIServer(options);
|
|
128
128
|
} else if (options.ssrOnly) {
|
|
@@ -133,3 +133,6 @@ export var createProdServer = function(options) {
|
|
|
133
133
|
return new ModernServer(options);
|
|
134
134
|
}
|
|
135
135
|
};
|
|
136
|
+
export {
|
|
137
|
+
createProdServer
|
|
138
|
+
};
|
package/dist/esm/type.js
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
package/dist/esm/utils.js
CHANGED
|
@@ -1,20 +1,20 @@
|
|
|
1
1
|
import { _ as _object_spread } from "@swc/helpers/_/_object_spread";
|
|
2
2
|
import { _ as _to_consumable_array } from "@swc/helpers/_/_to_consumable_array";
|
|
3
3
|
import { createDebugger } from "@modern-js/utils";
|
|
4
|
-
|
|
5
|
-
|
|
4
|
+
var debug = createDebugger("prod-server");
|
|
5
|
+
var mergeExtension = function(users) {
|
|
6
6
|
var output = [];
|
|
7
7
|
return {
|
|
8
8
|
middleware: output.concat(users)
|
|
9
9
|
};
|
|
10
10
|
};
|
|
11
|
-
|
|
11
|
+
var noop = function() {
|
|
12
12
|
};
|
|
13
|
-
|
|
13
|
+
var createErrorDocument = function(status, text) {
|
|
14
14
|
var title = "".concat(status, ": ").concat(text);
|
|
15
15
|
return '<!DOCTYPE html>\n <html lang="en">\n <head>\n <meta charset="utf-8">\n <meta name="viewport" content="width=device-width">\n <title>'.concat(title, '</title>\n <style>\n html,body {\n margin: 0;\n }\n\n .page-container {\n color: #000;\n background: #fff;\n height: 100vh;\n text-align: center;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n }\n </style>\n </head>\n <body>\n <div class="page-container">\n <h1>').concat(status, "</h1>\n <div>").concat(text, "</div>\n </body>\n </html>\n ");
|
|
16
16
|
};
|
|
17
|
-
|
|
17
|
+
var createMiddlewareCollecter = function() {
|
|
18
18
|
var webMiddlewares = [];
|
|
19
19
|
var apiMiddlewares = [];
|
|
20
20
|
var addWebMiddleware = function(input) {
|
|
@@ -30,12 +30,12 @@ export var createMiddlewareCollecter = function() {
|
|
|
30
30
|
};
|
|
31
31
|
};
|
|
32
32
|
return {
|
|
33
|
-
getMiddlewares
|
|
34
|
-
addWebMiddleware
|
|
35
|
-
addAPIMiddleware
|
|
33
|
+
getMiddlewares,
|
|
34
|
+
addWebMiddleware,
|
|
35
|
+
addAPIMiddleware
|
|
36
36
|
};
|
|
37
37
|
};
|
|
38
|
-
|
|
38
|
+
var getStaticReg = function() {
|
|
39
39
|
var output = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {}, html = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {}, prefix = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : "/";
|
|
40
40
|
var tmp = output.distPath, _ref = tmp === void 0 ? {} : tmp, cssPath = _ref.css, jsPath = _ref.js, mediaPath = _ref.media;
|
|
41
41
|
var favicon = html.favicon, faviconByEntries = html.faviconByEntries;
|
|
@@ -59,7 +59,7 @@ export var getStaticReg = function() {
|
|
|
59
59
|
var staticPathRegExp = new RegExp("^".concat(regPrefix, "(").concat(_to_consumable_array(staticReg).concat(_to_consumable_array(iconReg)).join("|"), ")"));
|
|
60
60
|
return staticPathRegExp;
|
|
61
61
|
};
|
|
62
|
-
|
|
62
|
+
var prepareFavicons = function(favicon, faviconByEntries) {
|
|
63
63
|
var faviconNames = [];
|
|
64
64
|
if (favicon) {
|
|
65
65
|
faviconNames.push(favicon.substring(favicon.lastIndexOf("/") + 1));
|
|
@@ -74,7 +74,7 @@ export var prepareFavicons = function(favicon, faviconByEntries) {
|
|
|
74
74
|
}
|
|
75
75
|
return faviconNames;
|
|
76
76
|
};
|
|
77
|
-
|
|
77
|
+
var headersWithoutCookie = function(headers) {
|
|
78
78
|
if (typeof headers.cookie !== "undefined") {
|
|
79
79
|
var safeHeaders = _object_spread({}, headers);
|
|
80
80
|
delete safeHeaders.cookie;
|
|
@@ -82,7 +82,7 @@ export var headersWithoutCookie = function(headers) {
|
|
|
82
82
|
}
|
|
83
83
|
return headers;
|
|
84
84
|
};
|
|
85
|
-
|
|
85
|
+
var isRedirect = function(code) {
|
|
86
86
|
return [
|
|
87
87
|
301,
|
|
88
88
|
302,
|
|
@@ -90,3 +90,14 @@ export var isRedirect = function(code) {
|
|
|
90
90
|
308
|
|
91
91
|
].includes(code);
|
|
92
92
|
};
|
|
93
|
+
export {
|
|
94
|
+
createErrorDocument,
|
|
95
|
+
createMiddlewareCollecter,
|
|
96
|
+
debug,
|
|
97
|
+
getStaticReg,
|
|
98
|
+
headersWithoutCookie,
|
|
99
|
+
isRedirect,
|
|
100
|
+
mergeExtension,
|
|
101
|
+
noop,
|
|
102
|
+
prepareFavicons
|
|
103
|
+
};
|
package/dist/esm/workerServer.js
CHANGED
|
@@ -5,12 +5,12 @@ import { _ as _define_property } from "@swc/helpers/_/_define_property";
|
|
|
5
5
|
import { _ as _sliced_to_array } from "@swc/helpers/_/_sliced_to_array";
|
|
6
6
|
import { _ as _ts_generator } from "@swc/helpers/_/_ts_generator";
|
|
7
7
|
import { createAsyncPipeline } from "@modern-js/plugin";
|
|
8
|
+
import { createLogger } from "@modern-js/utils/logger";
|
|
8
9
|
import { createAfterMatchContext, createAfterRenderContext, createMiddlewareContext } from "./libs/hook-api/index.worker";
|
|
9
|
-
import { Logger } from "./libs/logger";
|
|
10
10
|
import { RouteMatchManager } from "./libs/route";
|
|
11
11
|
import { metrics as defaultMetrics } from "./libs/metrics";
|
|
12
12
|
import { defaultReporter } from "./libs/reporter";
|
|
13
|
-
|
|
13
|
+
var ReturnResponse = /* @__PURE__ */ function() {
|
|
14
14
|
"use strict";
|
|
15
15
|
function ReturnResponse2(body, status) {
|
|
16
16
|
var headers = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : {};
|
|
@@ -86,13 +86,13 @@ var checkIsSent = function(context) {
|
|
|
86
86
|
return false;
|
|
87
87
|
};
|
|
88
88
|
var middlewarePipeline = createAsyncPipeline();
|
|
89
|
-
|
|
89
|
+
var createHandler = function(manifest) {
|
|
90
90
|
var routeMgr = new RouteMatchManager();
|
|
91
91
|
var pages = manifest.pages, routes = manifest.routes;
|
|
92
92
|
routeMgr.reset(routes);
|
|
93
93
|
return function() {
|
|
94
94
|
var _ref = _async_to_generator(function(options) {
|
|
95
|
-
var _page_serverHooks_afterMatch, _page_serverHooks,
|
|
95
|
+
var _page_serverHooks_afterMatch, _page_serverHooks, request, loadableStats, routeManifest, url, pageMatch, entryName, page, logger, metrics, reporter, hookContext, afterMatchHookContext, _page_serverHooks1, _page_serverHooks_afterRender, _page_serverHooks2, middlewarsHookContext, responseLike, params, baseUrl, serverRenderContext, body, afterRenderHookContext, e;
|
|
96
96
|
function createServerRequest(url2, baseUrl2, request2, params2) {
|
|
97
97
|
var pathname = url2.pathname, host = url2.host, searchParams = url2.searchParams;
|
|
98
98
|
var rawHeaders = request2.headers;
|
|
@@ -104,11 +104,11 @@ export var createHandler = function(manifest) {
|
|
|
104
104
|
return {
|
|
105
105
|
url: url2.href,
|
|
106
106
|
baseUrl: baseUrl2,
|
|
107
|
-
pathname
|
|
108
|
-
host
|
|
109
|
-
headers
|
|
107
|
+
pathname,
|
|
108
|
+
host,
|
|
109
|
+
headers,
|
|
110
110
|
params: params2,
|
|
111
|
-
query
|
|
111
|
+
query
|
|
112
112
|
};
|
|
113
113
|
}
|
|
114
114
|
return _ts_generator(this, function(_state) {
|
|
@@ -125,14 +125,14 @@ export var createHandler = function(manifest) {
|
|
|
125
125
|
}
|
|
126
126
|
entryName = pageMatch.spec.urlPath;
|
|
127
127
|
page = pages[entryName];
|
|
128
|
-
logger =
|
|
128
|
+
logger = createLogger({
|
|
129
129
|
level: "warn"
|
|
130
130
|
});
|
|
131
131
|
metrics = defaultMetrics;
|
|
132
132
|
reporter = defaultReporter;
|
|
133
133
|
hookContext = createWorkerHookContext(request.url, logger, metrics, reporter);
|
|
134
134
|
afterMatchHookContext = createAfterMatchContext(hookContext, entryName);
|
|
135
|
-
|
|
135
|
+
page === null || page === void 0 ? void 0 : (_page_serverHooks = page.serverHooks) === null || _page_serverHooks === void 0 ? void 0 : (_page_serverHooks_afterMatch = _page_serverHooks.afterMatch) === null || _page_serverHooks_afterMatch === void 0 ? void 0 : _page_serverHooks_afterMatch.call(_page_serverHooks, afterMatchHookContext, function() {
|
|
136
136
|
return void 0;
|
|
137
137
|
});
|
|
138
138
|
if (checkIsSent(hookContext)) {
|
|
@@ -178,22 +178,21 @@ export var createHandler = function(manifest) {
|
|
|
178
178
|
serverRenderContext = {
|
|
179
179
|
request: createServerRequest(url, baseUrl, request, params),
|
|
180
180
|
response: responseLike,
|
|
181
|
-
loadableStats
|
|
182
|
-
routeManifest
|
|
181
|
+
loadableStats,
|
|
182
|
+
routeManifest,
|
|
183
183
|
redirection: {},
|
|
184
184
|
template: page.template,
|
|
185
185
|
entryName: page.entryName,
|
|
186
|
-
logger
|
|
186
|
+
logger,
|
|
187
187
|
reporter: defaultReporter,
|
|
188
|
-
metrics
|
|
189
|
-
// FIXME: pass correctly req & res
|
|
188
|
+
metrics,
|
|
190
189
|
req: request,
|
|
190
|
+
res: responseLike,
|
|
191
191
|
serverTiming: {
|
|
192
192
|
addServeTiming: function addServeTiming() {
|
|
193
193
|
return this;
|
|
194
194
|
}
|
|
195
|
-
}
|
|
196
|
-
res: responseLike
|
|
195
|
+
}
|
|
197
196
|
};
|
|
198
197
|
return [
|
|
199
198
|
4,
|
|
@@ -255,11 +254,11 @@ function createWorkerHookContext(url, logger, metrics, reporter) {
|
|
|
255
254
|
new Request(url)
|
|
256
255
|
], res = _ref[0], req = _ref[1];
|
|
257
256
|
return {
|
|
258
|
-
res
|
|
259
|
-
req
|
|
260
|
-
logger
|
|
261
|
-
metrics
|
|
262
|
-
reporter
|
|
257
|
+
res,
|
|
258
|
+
req,
|
|
259
|
+
logger,
|
|
260
|
+
metrics,
|
|
261
|
+
reporter
|
|
263
262
|
};
|
|
264
263
|
}
|
|
265
264
|
function applyMiddlewares(ctx, middleware) {
|
|
@@ -283,3 +282,7 @@ function applyMiddlewares(ctx, middleware) {
|
|
|
283
282
|
});
|
|
284
283
|
}
|
|
285
284
|
}
|
|
285
|
+
export {
|
|
286
|
+
ReturnResponse,
|
|
287
|
+
createHandler
|
|
288
|
+
};
|
|
@@ -1,16 +1,16 @@
|
|
|
1
|
-
|
|
1
|
+
const AGGRED_DIR = {
|
|
2
2
|
mock: "config/mock",
|
|
3
3
|
server: "server",
|
|
4
4
|
api: "api",
|
|
5
5
|
shared: "shared",
|
|
6
6
|
lambda: "lambda"
|
|
7
7
|
};
|
|
8
|
-
|
|
8
|
+
var ApiServerMode;
|
|
9
9
|
(function(ApiServerMode2) {
|
|
10
10
|
ApiServerMode2["func"] = "function";
|
|
11
11
|
ApiServerMode2["frame"] = "framework";
|
|
12
12
|
})(ApiServerMode || (ApiServerMode = {}));
|
|
13
|
-
|
|
13
|
+
const ERROR_DIGEST = {
|
|
14
14
|
INIT: "Server init error",
|
|
15
15
|
ENOTF: "Page could not be found",
|
|
16
16
|
WARMUP: "SSR warmup failed",
|
|
@@ -18,18 +18,26 @@ export const ERROR_DIGEST = {
|
|
|
18
18
|
ERENDER: "SSR render failed",
|
|
19
19
|
EMICROINJ: "Get micro-frontend info failed"
|
|
20
20
|
};
|
|
21
|
-
|
|
21
|
+
const ERROR_PAGE_TEXT = {
|
|
22
22
|
404: "This page could not be found.",
|
|
23
23
|
500: "Internal Server Error."
|
|
24
24
|
};
|
|
25
|
-
|
|
25
|
+
const RUN_MODE = {
|
|
26
26
|
FULL: "full",
|
|
27
27
|
TYPE: "type"
|
|
28
28
|
};
|
|
29
|
-
|
|
29
|
+
var ServerReportTimings;
|
|
30
30
|
(function(ServerReportTimings2) {
|
|
31
31
|
ServerReportTimings2["SERVER_HANDLE_REQUEST"] = "server-handle-request";
|
|
32
32
|
ServerReportTimings2["SERVER_MIDDLEWARE"] = "server-middleware";
|
|
33
33
|
ServerReportTimings2["SERVER_HOOK_AFTER_RENDER"] = "server-hook-after-render";
|
|
34
34
|
ServerReportTimings2["SERVER_HOOK_AFTER_MATCH"] = "server-hook-after-match";
|
|
35
35
|
})(ServerReportTimings || (ServerReportTimings = {}));
|
|
36
|
+
export {
|
|
37
|
+
AGGRED_DIR,
|
|
38
|
+
ApiServerMode,
|
|
39
|
+
ERROR_DIGEST,
|
|
40
|
+
ERROR_PAGE_TEXT,
|
|
41
|
+
RUN_MODE,
|
|
42
|
+
ServerReportTimings
|
|
43
|
+
};
|
package/dist/esm-node/index.js
CHANGED
|
@@ -1,14 +1,20 @@
|
|
|
1
1
|
import { Server } from "./server";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
export { createProxyHandler } from "./libs/proxy";
|
|
2
|
+
import { ModernServer } from "./server/modernServer";
|
|
3
|
+
import { createProxyHandler } from "./libs/proxy";
|
|
5
4
|
export * from "./type";
|
|
6
5
|
export * from "./constants";
|
|
7
|
-
|
|
8
|
-
|
|
6
|
+
import { createRenderHandler } from "./libs/render";
|
|
7
|
+
var src_default = (options) => {
|
|
9
8
|
if (options == null) {
|
|
10
9
|
throw new Error("can not start mserver without options");
|
|
11
10
|
}
|
|
12
11
|
const server = new Server(options);
|
|
13
12
|
return server.init();
|
|
14
13
|
};
|
|
14
|
+
export {
|
|
15
|
+
ModernServer,
|
|
16
|
+
Server,
|
|
17
|
+
createProxyHandler,
|
|
18
|
+
createRenderHandler,
|
|
19
|
+
src_default as default
|
|
20
|
+
};
|
|
@@ -1,3 +1,6 @@
|
|
|
1
|
+
import { _ as _class_private_field_get } from "@swc/helpers/_/_class_private_field_get";
|
|
2
|
+
import { _ as _class_private_field_init } from "@swc/helpers/_/_class_private_field_init";
|
|
3
|
+
import { _ as _class_private_field_set } from "@swc/helpers/_/_class_private_field_set";
|
|
1
4
|
import { _ as _define_property } from "@swc/helpers/_/_define_property";
|
|
2
5
|
import { URL } from "url";
|
|
3
6
|
import qs from "querystring";
|
|
@@ -9,7 +12,8 @@ import { ServerTiming } from "../serverTiming";
|
|
|
9
12
|
import { defaultReporter } from "../reporter";
|
|
10
13
|
import { headersWithoutCookie } from "../../utils";
|
|
11
14
|
const MOCK_URL_BASE = "https://modernjs.dev/";
|
|
12
|
-
|
|
15
|
+
var _urls = /* @__PURE__ */ new WeakMap(), _queries = /* @__PURE__ */ new WeakMap();
|
|
16
|
+
class ModernServerContext {
|
|
13
17
|
get logger() {
|
|
14
18
|
return this.req.logger;
|
|
15
19
|
}
|
|
@@ -18,7 +22,12 @@ export class ModernServerContext {
|
|
|
18
22
|
}
|
|
19
23
|
get parsedURL() {
|
|
20
24
|
try {
|
|
21
|
-
|
|
25
|
+
let url = _class_private_field_get(this, _urls).get(this.req.url);
|
|
26
|
+
if (!url) {
|
|
27
|
+
url = new URL(this.req.url, MOCK_URL_BASE);
|
|
28
|
+
_class_private_field_get(this, _urls).set(this.req.url, url);
|
|
29
|
+
}
|
|
30
|
+
return url;
|
|
22
31
|
} catch (e) {
|
|
23
32
|
this.logger.error("Parse URL error", e.stack || e.message);
|
|
24
33
|
return new URL("/_modern_mock_path", MOCK_URL_BASE);
|
|
@@ -107,7 +116,8 @@ export class ModernServerContext {
|
|
|
107
116
|
if (!host) {
|
|
108
117
|
host = this.getReqHeader("Host");
|
|
109
118
|
}
|
|
110
|
-
|
|
119
|
+
host = host.split(/\s*,\s*/, 1)[0] || "undefined";
|
|
120
|
+
return host;
|
|
111
121
|
}
|
|
112
122
|
get protocol() {
|
|
113
123
|
if (this.req.socket.encrypted) {
|
|
@@ -142,7 +152,12 @@ export class ModernServerContext {
|
|
|
142
152
|
}
|
|
143
153
|
get query() {
|
|
144
154
|
const str = this.querystring;
|
|
145
|
-
|
|
155
|
+
let query = _class_private_field_get(this, _queries).get(str);
|
|
156
|
+
if (!query) {
|
|
157
|
+
query = qs.parse(str);
|
|
158
|
+
_class_private_field_get(this, _queries).set(str, query);
|
|
159
|
+
}
|
|
160
|
+
return query;
|
|
146
161
|
}
|
|
147
162
|
/* response property */
|
|
148
163
|
get status() {
|
|
@@ -161,7 +176,6 @@ export class ModernServerContext {
|
|
|
161
176
|
this.logger.error(`Web Server Error - ${dig}, error = %s, req.url = %s, req.headers = %o`, e instanceof Error ? e.stack || e.message : e, this.path, headersWithoutCookie(this.headers));
|
|
162
177
|
}
|
|
163
178
|
constructor(req, res, options) {
|
|
164
|
-
var _options;
|
|
165
179
|
_define_property(this, "req", void 0);
|
|
166
180
|
_define_property(this, "res", void 0);
|
|
167
181
|
_define_property(this, "params", {});
|
|
@@ -169,10 +183,23 @@ export class ModernServerContext {
|
|
|
169
183
|
_define_property(this, "serverTiming", void 0);
|
|
170
184
|
_define_property(this, "serverData", {});
|
|
171
185
|
_define_property(this, "options", {});
|
|
186
|
+
_class_private_field_init(this, _urls, {
|
|
187
|
+
writable: true,
|
|
188
|
+
value: void 0
|
|
189
|
+
});
|
|
190
|
+
_class_private_field_init(this, _queries, {
|
|
191
|
+
writable: true,
|
|
192
|
+
value: void 0
|
|
193
|
+
});
|
|
172
194
|
this.req = req;
|
|
173
195
|
this.res = res;
|
|
174
196
|
this.options = options || {};
|
|
175
197
|
this.bind();
|
|
176
|
-
|
|
198
|
+
_class_private_field_set(this, _urls, /* @__PURE__ */ new Map());
|
|
199
|
+
_class_private_field_set(this, _queries, /* @__PURE__ */ new Map());
|
|
200
|
+
this.serverTiming = new ServerTiming(this.res, cutNameByHyphen((options === null || options === void 0 ? void 0 : options.metaName) || "modern-js"));
|
|
177
201
|
}
|
|
178
202
|
}
|
|
203
|
+
export {
|
|
204
|
+
ModernServerContext
|
|
205
|
+
};
|
|
@@ -1,3 +1,6 @@
|
|
|
1
1
|
import { ModernServerContext } from "./context";
|
|
2
|
-
|
|
3
|
-
export {
|
|
2
|
+
const createContext = (req, res, options) => new ModernServerContext(req, res, options);
|
|
3
|
+
export {
|
|
4
|
+
ModernServerContext,
|
|
5
|
+
createContext
|
|
6
|
+
};
|