@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
|
@@ -1,52 +1,74 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
Object.
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
Object.
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
2
|
+
var __create = Object.create;
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
7
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
+
var __export = (target, all) => {
|
|
9
|
+
for (var name in all)
|
|
10
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
11
|
+
};
|
|
12
|
+
var __copyProps = (to, from, except, desc) => {
|
|
13
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
14
|
+
for (let key of __getOwnPropNames(from))
|
|
15
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
16
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
9
17
|
}
|
|
18
|
+
return to;
|
|
19
|
+
};
|
|
20
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
21
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
22
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
23
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
24
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
25
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
26
|
+
mod
|
|
27
|
+
));
|
|
28
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
29
|
+
var render_exports = {};
|
|
30
|
+
__export(render_exports, {
|
|
31
|
+
createRenderHandler: () => createRenderHandler
|
|
10
32
|
});
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
const
|
|
33
|
+
module.exports = __toCommonJS(render_exports);
|
|
34
|
+
var import_path = __toESM(require("path"));
|
|
35
|
+
var import_utils = require("@modern-js/utils");
|
|
36
|
+
var import_constants = require("../../constants");
|
|
37
|
+
var import_shouldFlushServerHeader = require("../preload/shouldFlushServerHeader");
|
|
38
|
+
var import_static = require("./static");
|
|
39
|
+
var import_reader = require("./reader");
|
|
40
|
+
var ssr = __toESM(require("./ssr"));
|
|
41
|
+
var import_utils2 = require("./utils");
|
|
42
|
+
const calcFallback = (metaName) => `x-${(0, import_utils.cutNameByHyphen)(metaName)}-ssr-fallback`;
|
|
21
43
|
const createRenderHandler = ({ distDir, staticGenerate, conf, forceCSR, nonce, ssrRender, metaName = "modern-js" }) => async function render({ ctx, route, runner }) {
|
|
22
44
|
if (ctx.resHasHandled()) {
|
|
23
45
|
return null;
|
|
24
46
|
}
|
|
25
47
|
const { entryPath, urlPath } = route;
|
|
26
|
-
const entry =
|
|
48
|
+
const entry = import_path.default.join(distDir, entryPath);
|
|
27
49
|
if (!route.isSPA) {
|
|
28
|
-
const result = await (0,
|
|
50
|
+
const result = await (0, import_static.handleDirectory)(ctx, entry, urlPath);
|
|
29
51
|
return result;
|
|
30
52
|
}
|
|
31
53
|
const templatePath = entry;
|
|
32
|
-
const content = await (0,
|
|
54
|
+
const content = await (0, import_reader.readFile)(templatePath);
|
|
33
55
|
if (!content) {
|
|
34
56
|
return null;
|
|
35
57
|
}
|
|
36
|
-
const useCSR = forceCSR && (ctx.query.csr || ctx.headers[
|
|
58
|
+
const useCSR = forceCSR && (ctx.query.csr || ctx.headers[calcFallback(metaName)]);
|
|
37
59
|
if (route.isSSR && !useCSR) {
|
|
38
60
|
try {
|
|
39
61
|
const userAgent = ctx.getReqHeader("User-Agent");
|
|
40
|
-
const disablePreload = Boolean(ctx.headers[`x-${(0,
|
|
41
|
-
if ((0,
|
|
42
|
-
const { flushServerHeader } = await Promise.resolve().then(() =>
|
|
62
|
+
const disablePreload = Boolean(ctx.headers[`x-${(0, import_utils.cutNameByHyphen)(metaName)}-disable-preload`]);
|
|
63
|
+
if ((0, import_shouldFlushServerHeader.shouldFlushServerHeader)(conf.server, userAgent, disablePreload)) {
|
|
64
|
+
const { flushServerHeader } = await Promise.resolve().then(() => __toESM(require("../preload")));
|
|
43
65
|
flushServerHeader({
|
|
44
66
|
serverConf: conf.server,
|
|
45
67
|
ctx,
|
|
46
68
|
distDir,
|
|
47
69
|
template: content.toString(),
|
|
48
70
|
headers: {
|
|
49
|
-
"Content-Type":
|
|
71
|
+
"Content-Type": import_utils.mime.contentType(import_path.default.extname(templatePath))
|
|
50
72
|
}
|
|
51
73
|
});
|
|
52
74
|
}
|
|
@@ -59,7 +81,7 @@ const createRenderHandler = ({ distDir, staticGenerate, conf, forceCSR, nonce, s
|
|
|
59
81
|
staticGenerate,
|
|
60
82
|
nonce
|
|
61
83
|
};
|
|
62
|
-
const result = await (ssrRender ? ssrRender(ctx, ssrRenderOptions, runner) :
|
|
84
|
+
const result = await (ssrRender ? ssrRender(ctx, ssrRenderOptions, runner) : ssr.render(ctx, {
|
|
63
85
|
distDir,
|
|
64
86
|
entryName: route.entryName,
|
|
65
87
|
urlPath: route.urlPath,
|
|
@@ -70,12 +92,16 @@ const createRenderHandler = ({ distDir, staticGenerate, conf, forceCSR, nonce, s
|
|
|
70
92
|
}, runner));
|
|
71
93
|
return result;
|
|
72
94
|
} catch (err) {
|
|
73
|
-
ctx.error(
|
|
74
|
-
ctx.res.set(
|
|
95
|
+
ctx.error(import_constants.ERROR_DIGEST.ERENDER, err.stack || err.message);
|
|
96
|
+
ctx.res.set(calcFallback(metaName), "1");
|
|
75
97
|
}
|
|
76
98
|
}
|
|
77
99
|
return {
|
|
78
|
-
content: route.entryName ? (0,
|
|
79
|
-
contentType:
|
|
100
|
+
content: route.entryName ? (0, import_utils2.injectServerData)(content.toString(), ctx) : content,
|
|
101
|
+
contentType: import_utils.mime.contentType(import_path.default.extname(templatePath))
|
|
80
102
|
};
|
|
81
103
|
};
|
|
104
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
105
|
+
0 && (module.exports = {
|
|
106
|
+
createRenderHandler
|
|
107
|
+
});
|
|
@@ -1,23 +1,28 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
Object.defineProperty
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
6
7
|
for (var name in all)
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
return createMetrics;
|
|
15
|
-
},
|
|
16
|
-
createLogger: function() {
|
|
17
|
-
return createLogger;
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
18
15
|
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
var measure_exports = {};
|
|
20
|
+
__export(measure_exports, {
|
|
21
|
+
createLogger: () => createLogger,
|
|
22
|
+
createMetrics: () => createMetrics
|
|
19
23
|
});
|
|
20
|
-
|
|
24
|
+
module.exports = __toCommonJS(measure_exports);
|
|
25
|
+
var import_utils = require("../../utils");
|
|
21
26
|
const createMetrics = (context, metrics) => {
|
|
22
27
|
const { entryName: entry, request } = context;
|
|
23
28
|
const { pathname = "" } = request || {};
|
|
@@ -54,7 +59,7 @@ const createLogger = (serverContext, logger) => {
|
|
|
54
59
|
e = message;
|
|
55
60
|
message = "";
|
|
56
61
|
}
|
|
57
|
-
logger.error(`SSR Error - ${message}, error = %s, req.url = %s, req.headers = %o`, e instanceof Error ? e.stack || e.message : e, pathname, (0,
|
|
62
|
+
logger.error(`SSR Error - ${message}, error = %s, req.url = %s, req.headers = %o`, e instanceof Error ? e.stack || e.message : e, pathname, (0, import_utils.headersWithoutCookie)(headers));
|
|
58
63
|
};
|
|
59
64
|
return {
|
|
60
65
|
error,
|
|
@@ -62,3 +67,8 @@ const createLogger = (serverContext, logger) => {
|
|
|
62
67
|
debug
|
|
63
68
|
};
|
|
64
69
|
};
|
|
70
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
71
|
+
0 && (module.exports = {
|
|
72
|
+
createLogger,
|
|
73
|
+
createMetrics
|
|
74
|
+
});
|
|
@@ -1,35 +1,43 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
Object.
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
2
|
+
var __create = Object.create;
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
7
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
+
var __export = (target, all) => {
|
|
6
9
|
for (var name in all)
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
return LruReader;
|
|
15
|
-
},
|
|
16
|
-
readFile: function() {
|
|
17
|
-
return readFile;
|
|
18
|
-
},
|
|
19
|
-
updateFile: function() {
|
|
20
|
-
return updateFile;
|
|
21
|
-
},
|
|
22
|
-
init: function() {
|
|
23
|
-
return init;
|
|
24
|
-
},
|
|
25
|
-
close: function() {
|
|
26
|
-
return close;
|
|
10
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
11
|
+
};
|
|
12
|
+
var __copyProps = (to, from, except, desc) => {
|
|
13
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
14
|
+
for (let key of __getOwnPropNames(from))
|
|
15
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
16
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
27
17
|
}
|
|
18
|
+
return to;
|
|
19
|
+
};
|
|
20
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
21
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
22
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
23
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
24
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
25
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
26
|
+
mod
|
|
27
|
+
));
|
|
28
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
29
|
+
var reader_exports = {};
|
|
30
|
+
__export(reader_exports, {
|
|
31
|
+
LruReader: () => LruReader,
|
|
32
|
+
close: () => close,
|
|
33
|
+
init: () => init,
|
|
34
|
+
readFile: () => readFile,
|
|
35
|
+
updateFile: () => updateFile
|
|
28
36
|
});
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
37
|
+
module.exports = __toCommonJS(reader_exports);
|
|
38
|
+
var import_define_property = require("@swc/helpers/_/_define_property");
|
|
39
|
+
var import_utils = require("@modern-js/utils");
|
|
40
|
+
var import_lru_cache = __toESM(require("lru-cache"));
|
|
33
41
|
const Byte = 1;
|
|
34
42
|
const KB = 1024 * Byte;
|
|
35
43
|
const MB = 1024 * KB;
|
|
@@ -42,7 +50,7 @@ const createCacheItem = async (content, mtime) => {
|
|
|
42
50
|
};
|
|
43
51
|
class LruReader {
|
|
44
52
|
init(fs) {
|
|
45
|
-
this.fs = fs ||
|
|
53
|
+
this.fs = fs || import_utils.fs;
|
|
46
54
|
}
|
|
47
55
|
close() {
|
|
48
56
|
}
|
|
@@ -89,21 +97,20 @@ class LruReader {
|
|
|
89
97
|
}
|
|
90
98
|
}
|
|
91
99
|
constructor() {
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
this.cache = new
|
|
100
|
+
(0, import_define_property._)(this, "cache", void 0);
|
|
101
|
+
(0, import_define_property._)(this, "fs", void 0);
|
|
102
|
+
this.cache = new import_lru_cache.default({
|
|
95
103
|
max: 256 * MB,
|
|
96
104
|
length: getContentLength,
|
|
97
105
|
maxAge: 5 * 60 * 5e3
|
|
98
106
|
});
|
|
99
|
-
this.fs =
|
|
107
|
+
this.fs = import_utils.fs;
|
|
100
108
|
}
|
|
101
109
|
}
|
|
102
110
|
const reader = new LruReader();
|
|
103
111
|
const readFile = async (filepath) => {
|
|
104
|
-
var _file;
|
|
105
112
|
const file = await reader.read(filepath);
|
|
106
|
-
return
|
|
113
|
+
return file === null || file === void 0 ? void 0 : file.content;
|
|
107
114
|
};
|
|
108
115
|
const updateFile = () => {
|
|
109
116
|
reader.update();
|
|
@@ -114,3 +121,11 @@ const init = (fs) => {
|
|
|
114
121
|
const close = () => {
|
|
115
122
|
reader.close();
|
|
116
123
|
};
|
|
124
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
125
|
+
0 && (module.exports = {
|
|
126
|
+
LruReader,
|
|
127
|
+
close,
|
|
128
|
+
init,
|
|
129
|
+
readFile,
|
|
130
|
+
updateFile
|
|
131
|
+
});
|
|
@@ -1,27 +1,49 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
Object.
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
Object.
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
2
|
+
var __create = Object.create;
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
7
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
+
var __export = (target, all) => {
|
|
9
|
+
for (var name in all)
|
|
10
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
11
|
+
};
|
|
12
|
+
var __copyProps = (to, from, except, desc) => {
|
|
13
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
14
|
+
for (let key of __getOwnPropNames(from))
|
|
15
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
16
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
9
17
|
}
|
|
18
|
+
return to;
|
|
19
|
+
};
|
|
20
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
21
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
22
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
23
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
24
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
25
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
26
|
+
mod
|
|
27
|
+
));
|
|
28
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
29
|
+
var ssr_exports = {};
|
|
30
|
+
__export(ssr_exports, {
|
|
31
|
+
render: () => render
|
|
10
32
|
});
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
33
|
+
module.exports = __toCommonJS(ssr_exports);
|
|
34
|
+
var import_path = __toESM(require("path"));
|
|
35
|
+
var import_utils = require("@modern-js/utils");
|
|
36
|
+
var import_cache = __toESM(require("./cache"));
|
|
37
|
+
var import_measure = require("./measure");
|
|
38
|
+
var import_utils2 = require("./utils");
|
|
17
39
|
const render = async (ctx, renderOptions, runner) => {
|
|
18
40
|
var _ctx_res;
|
|
19
41
|
const { urlPath, bundle, distDir, template, entryName, staticGenerate, enableUnsafeCtx = false, nonce } = renderOptions;
|
|
20
|
-
const bundleJS =
|
|
21
|
-
const loadableUri =
|
|
22
|
-
const loadableStats =
|
|
23
|
-
const routesManifestUri =
|
|
24
|
-
const routeManifest =
|
|
42
|
+
const bundleJS = import_path.default.join(distDir, bundle);
|
|
43
|
+
const loadableUri = import_path.default.join(distDir, import_utils.LOADABLE_STATS_FILE);
|
|
44
|
+
const loadableStats = import_utils.fs.existsSync(loadableUri) ? require(loadableUri) : "";
|
|
45
|
+
const routesManifestUri = import_path.default.join(distDir, import_utils.ROUTE_MANIFEST_FILE);
|
|
46
|
+
const routeManifest = import_utils.fs.existsSync(routesManifestUri) ? require(routesManifestUri) : void 0;
|
|
25
47
|
const context = {
|
|
26
48
|
request: {
|
|
27
49
|
baseUrl: urlPath,
|
|
@@ -56,12 +78,12 @@ const render = async (ctx, renderOptions, runner) => {
|
|
|
56
78
|
enableUnsafeCtx,
|
|
57
79
|
nonce
|
|
58
80
|
};
|
|
59
|
-
context.logger = (0,
|
|
60
|
-
context.metrics = (0,
|
|
81
|
+
context.logger = (0, import_measure.createLogger)(context, ctx.logger);
|
|
82
|
+
context.metrics = (0, import_measure.createMetrics)(context, ctx.metrics);
|
|
61
83
|
runner.extendSSRContext(context);
|
|
62
84
|
const bundleJSContent = await Promise.resolve(require(bundleJS));
|
|
63
|
-
const serverRender = bundleJSContent[
|
|
64
|
-
const content = await (0,
|
|
85
|
+
const serverRender = bundleJSContent[import_utils.SERVER_RENDER_FUNCTION_NAME];
|
|
86
|
+
const content = await (0, import_cache.default)(serverRender, ctx)(context);
|
|
65
87
|
const { url, status = 302 } = context.redirection;
|
|
66
88
|
if (url) {
|
|
67
89
|
return {
|
|
@@ -73,14 +95,18 @@ const render = async (ctx, renderOptions, runner) => {
|
|
|
73
95
|
}
|
|
74
96
|
if (typeof content === "string") {
|
|
75
97
|
return {
|
|
76
|
-
content: (0,
|
|
77
|
-
contentType:
|
|
98
|
+
content: (0, import_utils2.injectServerData)(content, ctx),
|
|
99
|
+
contentType: import_utils.mime.contentType("html")
|
|
78
100
|
};
|
|
79
101
|
} else {
|
|
80
102
|
return {
|
|
81
103
|
content: "",
|
|
82
|
-
contentStream: (0,
|
|
83
|
-
contentType:
|
|
104
|
+
contentStream: (0, import_utils2.injectServerDataStream)(content, ctx),
|
|
105
|
+
contentType: import_utils.mime.contentType("html")
|
|
84
106
|
};
|
|
85
107
|
}
|
|
86
108
|
};
|
|
109
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
110
|
+
0 && (module.exports = {
|
|
111
|
+
render
|
|
112
|
+
});
|
|
@@ -1,33 +1,55 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
Object.
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
Object.
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
2
|
+
var __create = Object.create;
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
7
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
+
var __export = (target, all) => {
|
|
9
|
+
for (var name in all)
|
|
10
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
11
|
+
};
|
|
12
|
+
var __copyProps = (to, from, except, desc) => {
|
|
13
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
14
|
+
for (let key of __getOwnPropNames(from))
|
|
15
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
16
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
9
17
|
}
|
|
18
|
+
return to;
|
|
19
|
+
};
|
|
20
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
21
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
22
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
23
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
24
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
25
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
26
|
+
mod
|
|
27
|
+
));
|
|
28
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
29
|
+
var static_exports = {};
|
|
30
|
+
__export(static_exports, {
|
|
31
|
+
handleDirectory: () => handleDirectory
|
|
10
32
|
});
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
33
|
+
module.exports = __toCommonJS(static_exports);
|
|
34
|
+
var import_path = __toESM(require("path"));
|
|
35
|
+
var import_utils = require("@modern-js/utils");
|
|
36
|
+
var import_reader = require("./reader");
|
|
15
37
|
async function handleDirectory(ctx, entryPath, urlPath) {
|
|
16
38
|
const { path: pathname } = ctx;
|
|
17
|
-
const filepath =
|
|
18
|
-
let content = await (0,
|
|
19
|
-
let contentType =
|
|
39
|
+
const filepath = import_path.default.join(entryPath, trimLeft(pathname, urlPath));
|
|
40
|
+
let content = await (0, import_reader.readFile)(filepath);
|
|
41
|
+
let contentType = import_utils.mime.contentType(import_path.default.extname(filepath) || "");
|
|
20
42
|
if (!content) {
|
|
21
43
|
if (pathname.endsWith("/")) {
|
|
22
|
-
content = await (0,
|
|
44
|
+
content = await (0, import_reader.readFile)(`${filepath}index.html`);
|
|
23
45
|
} else if (!pathname.includes(".")) {
|
|
24
|
-
content = await (0,
|
|
46
|
+
content = await (0, import_reader.readFile)(`${filepath}.html`);
|
|
25
47
|
if (!content) {
|
|
26
|
-
content = await (0,
|
|
48
|
+
content = await (0, import_reader.readFile)(`${filepath}/index.html`);
|
|
27
49
|
}
|
|
28
50
|
}
|
|
29
51
|
if (content) {
|
|
30
|
-
contentType =
|
|
52
|
+
contentType = import_utils.mime.contentType("html");
|
|
31
53
|
}
|
|
32
54
|
}
|
|
33
55
|
if (!content) {
|
|
@@ -44,3 +66,7 @@ const trimLeft = (str, prefix) => {
|
|
|
44
66
|
}
|
|
45
67
|
return str;
|
|
46
68
|
};
|
|
69
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
70
|
+
0 && (module.exports = {
|
|
71
|
+
handleDirectory
|
|
72
|
+
});
|
|
@@ -1,16 +1,33 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
Object.defineProperty
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
Object.
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
9
15
|
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
var type_exports = {};
|
|
20
|
+
__export(type_exports, {
|
|
21
|
+
RenderLevel: () => RenderLevel
|
|
10
22
|
});
|
|
23
|
+
module.exports = __toCommonJS(type_exports);
|
|
11
24
|
var RenderLevel;
|
|
12
25
|
(function(RenderLevel2) {
|
|
13
26
|
RenderLevel2[RenderLevel2["CLIENT_RENDER"] = 0] = "CLIENT_RENDER";
|
|
14
27
|
RenderLevel2[RenderLevel2["SERVER_PREFETCH"] = 1] = "SERVER_PREFETCH";
|
|
15
28
|
RenderLevel2[RenderLevel2["SERVER_RENDER"] = 2] = "SERVER_RENDER";
|
|
16
29
|
})(RenderLevel || (RenderLevel = {}));
|
|
30
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
31
|
+
0 && (module.exports = {
|
|
32
|
+
RenderLevel
|
|
33
|
+
});
|
|
@@ -1,31 +1,41 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
Object.defineProperty
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
6
7
|
for (var name in all)
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
return injectServerData;
|
|
15
|
-
},
|
|
16
|
-
injectServerDataStream: function() {
|
|
17
|
-
return injectServerDataStream;
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
18
15
|
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
var utils_exports = {};
|
|
20
|
+
__export(utils_exports, {
|
|
21
|
+
injectServerData: () => injectServerData,
|
|
22
|
+
injectServerDataStream: () => injectServerDataStream
|
|
19
23
|
});
|
|
20
|
-
|
|
21
|
-
|
|
24
|
+
module.exports = __toCommonJS(utils_exports);
|
|
25
|
+
var import_template = require("../hook-api/template");
|
|
26
|
+
var import_templateForStream = require("../hook-api/templateForStream");
|
|
22
27
|
const injectServerData = (content, context) => {
|
|
23
|
-
const template = new
|
|
28
|
+
const template = new import_template.TemplateAPI(content);
|
|
24
29
|
template.prependHead(`<script type="application/json" id="__MODERN_SERVER_DATA__">${JSON.stringify(context.serverData)}</script>`);
|
|
25
30
|
return template.get();
|
|
26
31
|
};
|
|
27
32
|
const injectServerDataStream = (content, context) => {
|
|
28
|
-
return content.pipe((0,
|
|
33
|
+
return content.pipe((0, import_templateForStream.templateInjectableStream)({
|
|
29
34
|
prependHead: `<script type="application/json" id="__MODERN_SERVER_DATA__">${JSON.stringify(context.serverData)}</script>`
|
|
30
35
|
}));
|
|
31
36
|
};
|
|
37
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
38
|
+
0 && (module.exports = {
|
|
39
|
+
injectServerData,
|
|
40
|
+
injectServerDataStream
|
|
41
|
+
});
|
|
@@ -1,13 +1,26 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
Object.defineProperty
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
Object.
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
9
15
|
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
var reporter_exports = {};
|
|
20
|
+
__export(reporter_exports, {
|
|
21
|
+
defaultReporter: () => defaultReporter
|
|
10
22
|
});
|
|
23
|
+
module.exports = __toCommonJS(reporter_exports);
|
|
11
24
|
const defaultReporter = {
|
|
12
25
|
init() {
|
|
13
26
|
},
|
|
@@ -20,3 +33,7 @@ const defaultReporter = {
|
|
|
20
33
|
reportWarn() {
|
|
21
34
|
}
|
|
22
35
|
};
|
|
36
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
37
|
+
0 && (module.exports = {
|
|
38
|
+
defaultReporter
|
|
39
|
+
});
|