@modern-js/prod-server 2.48.5 → 2.49.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.
Files changed (174) hide show
  1. package/README.md +20 -16
  2. package/dist/cjs/{libs/route/route.js → error.js} +16 -17
  3. package/dist/cjs/index.js +18 -24
  4. package/dist/cjs/init.js +71 -0
  5. package/dist/cjs/{type.js → types.js} +2 -2
  6. package/dist/esm/error.js +15 -0
  7. package/dist/esm/index.js +53 -19
  8. package/dist/esm/init.js +73 -0
  9. package/dist/esm-node/error.js +14 -0
  10. package/dist/esm-node/index.js +16 -17
  11. package/dist/esm-node/init.js +47 -0
  12. package/dist/types/error.d.ts +6 -0
  13. package/dist/types/index.d.ts +8 -11
  14. package/dist/types/init.d.ts +4 -0
  15. package/dist/types/types.d.ts +14 -0
  16. package/package.json +23 -64
  17. package/dist/cjs/constants.js +0 -72
  18. package/dist/cjs/libs/context/context.js +0 -236
  19. package/dist/cjs/libs/context/index.js +0 -31
  20. package/dist/cjs/libs/hook-api/afterRenderForStream.js +0 -34
  21. package/dist/cjs/libs/hook-api/base.js +0 -96
  22. package/dist/cjs/libs/hook-api/index.js +0 -85
  23. package/dist/cjs/libs/hook-api/index.worker.js +0 -116
  24. package/dist/cjs/libs/hook-api/route.js +0 -44
  25. package/dist/cjs/libs/hook-api/template.js +0 -72
  26. package/dist/cjs/libs/hook-api/templateForStream.js +0 -52
  27. package/dist/cjs/libs/loadConfig.js +0 -70
  28. package/dist/cjs/libs/metrics.js +0 -33
  29. package/dist/cjs/libs/preload/flushServerHeader.js +0 -49
  30. package/dist/cjs/libs/preload/index.js +0 -24
  31. package/dist/cjs/libs/preload/parseLinks.js +0 -124
  32. package/dist/cjs/libs/preload/shouldFlushServerHeader.js +0 -52
  33. package/dist/cjs/libs/preload/transformLinks2String.js +0 -150
  34. package/dist/cjs/libs/proxy.js +0 -99
  35. package/dist/cjs/libs/render/index.js +0 -109
  36. package/dist/cjs/libs/render/measure.js +0 -74
  37. package/dist/cjs/libs/render/ssr.js +0 -130
  38. package/dist/cjs/libs/render/ssrCache/cacheMod.js +0 -51
  39. package/dist/cjs/libs/render/ssrCache/index.js +0 -90
  40. package/dist/cjs/libs/render/ssrCache/manager.js +0 -120
  41. package/dist/cjs/libs/render/static.js +0 -72
  42. package/dist/cjs/libs/render/type.js +0 -33
  43. package/dist/cjs/libs/render/utils.js +0 -41
  44. package/dist/cjs/libs/reporter.js +0 -39
  45. package/dist/cjs/libs/route/index.js +0 -83
  46. package/dist/cjs/libs/route/matcher.js +0 -113
  47. package/dist/cjs/libs/serveFile.js +0 -84
  48. package/dist/cjs/libs/serverTiming.js +0 -41
  49. package/dist/cjs/renderHtml.js +0 -65
  50. package/dist/cjs/server/index.js +0 -223
  51. package/dist/cjs/server/modernServer.js +0 -522
  52. package/dist/cjs/server/modernServerSplit.js +0 -67
  53. package/dist/cjs/utils.js +0 -164
  54. package/dist/cjs/workerServer.js +0 -260
  55. package/dist/esm/constants.js +0 -43
  56. package/dist/esm/libs/context/context.js +0 -260
  57. package/dist/esm/libs/context/index.js +0 -8
  58. package/dist/esm/libs/hook-api/afterRenderForStream.js +0 -33
  59. package/dist/esm/libs/hook-api/base.js +0 -73
  60. package/dist/esm/libs/hook-api/index.js +0 -55
  61. package/dist/esm/libs/hook-api/index.worker.js +0 -99
  62. package/dist/esm/libs/hook-api/route.js +0 -26
  63. package/dist/esm/libs/hook-api/template.js +0 -56
  64. package/dist/esm/libs/hook-api/templateForStream.js +0 -35
  65. package/dist/esm/libs/loadConfig.js +0 -36
  66. package/dist/esm/libs/metrics.js +0 -9
  67. package/dist/esm/libs/preload/flushServerHeader.js +0 -50
  68. package/dist/esm/libs/preload/index.js +0 -2
  69. package/dist/esm/libs/preload/parseLinks.js +0 -172
  70. package/dist/esm/libs/preload/shouldFlushServerHeader.js +0 -27
  71. package/dist/esm/libs/preload/transformLinks2String.js +0 -140
  72. package/dist/esm/libs/proxy.js +0 -160
  73. package/dist/esm/libs/render/index.js +0 -175
  74. package/dist/esm/libs/render/measure.js +0 -69
  75. package/dist/esm/libs/render/ssr.js +0 -133
  76. package/dist/esm/libs/render/ssrCache/cacheMod.js +0 -25
  77. package/dist/esm/libs/render/ssrCache/index.js +0 -170
  78. package/dist/esm/libs/render/ssrCache/manager.js +0 -178
  79. package/dist/esm/libs/render/static.js +0 -100
  80. package/dist/esm/libs/render/type.js +0 -9
  81. package/dist/esm/libs/render/utils.js +0 -16
  82. package/dist/esm/libs/reporter.js +0 -15
  83. package/dist/esm/libs/route/index.js +0 -82
  84. package/dist/esm/libs/route/matcher.js +0 -92
  85. package/dist/esm/libs/route/route.js +0 -17
  86. package/dist/esm/libs/serveFile.js +0 -68
  87. package/dist/esm/libs/serverTiming.js +0 -22
  88. package/dist/esm/renderHtml.js +0 -133
  89. package/dist/esm/server/index.js +0 -350
  90. package/dist/esm/server/modernServer.js +0 -884
  91. package/dist/esm/server/modernServerSplit.js +0 -113
  92. package/dist/esm/utils.js +0 -103
  93. package/dist/esm/workerServer.js +0 -352
  94. package/dist/esm-node/constants.js +0 -43
  95. package/dist/esm-node/libs/context/context.js +0 -202
  96. package/dist/esm-node/libs/context/index.js +0 -6
  97. package/dist/esm-node/libs/hook-api/afterRenderForStream.js +0 -10
  98. package/dist/esm-node/libs/hook-api/base.js +0 -61
  99. package/dist/esm-node/libs/hook-api/index.js +0 -57
  100. package/dist/esm-node/libs/hook-api/index.worker.js +0 -89
  101. package/dist/esm-node/libs/hook-api/route.js +0 -20
  102. package/dist/esm-node/libs/hook-api/template.js +0 -47
  103. package/dist/esm-node/libs/hook-api/templateForStream.js +0 -28
  104. package/dist/esm-node/libs/loadConfig.js +0 -34
  105. package/dist/esm-node/libs/metrics.js +0 -9
  106. package/dist/esm-node/libs/preload/flushServerHeader.js +0 -25
  107. package/dist/esm-node/libs/preload/index.js +0 -2
  108. package/dist/esm-node/libs/preload/parseLinks.js +0 -90
  109. package/dist/esm-node/libs/preload/shouldFlushServerHeader.js +0 -27
  110. package/dist/esm-node/libs/preload/transformLinks2String.js +0 -126
  111. package/dist/esm-node/libs/proxy.js +0 -74
  112. package/dist/esm-node/libs/render/index.js +0 -75
  113. package/dist/esm-node/libs/render/measure.js +0 -49
  114. package/dist/esm-node/libs/render/ssr.js +0 -96
  115. package/dist/esm-node/libs/render/ssrCache/cacheMod.js +0 -17
  116. package/dist/esm-node/libs/render/ssrCache/index.js +0 -66
  117. package/dist/esm-node/libs/render/ssrCache/manager.js +0 -96
  118. package/dist/esm-node/libs/render/static.js +0 -38
  119. package/dist/esm-node/libs/render/type.js +0 -9
  120. package/dist/esm-node/libs/render/utils.js +0 -16
  121. package/dist/esm-node/libs/reporter.js +0 -15
  122. package/dist/esm-node/libs/route/index.js +0 -58
  123. package/dist/esm-node/libs/route/matcher.js +0 -89
  124. package/dist/esm-node/libs/route/route.js +0 -16
  125. package/dist/esm-node/libs/serveFile.js +0 -49
  126. package/dist/esm-node/libs/serverTiming.js +0 -17
  127. package/dist/esm-node/renderHtml.js +0 -73
  128. package/dist/esm-node/server/index.js +0 -189
  129. package/dist/esm-node/server/modernServer.js +0 -488
  130. package/dist/esm-node/server/modernServerSplit.js +0 -43
  131. package/dist/esm-node/utils.js +0 -132
  132. package/dist/esm-node/workerServer.js +0 -235
  133. package/dist/types/constants.d.ts +0 -30
  134. package/dist/types/libs/context/context.d.ts +0 -62
  135. package/dist/types/libs/context/index.d.ts +0 -7
  136. package/dist/types/libs/hook-api/afterRenderForStream.d.ts +0 -4
  137. package/dist/types/libs/hook-api/base.d.ts +0 -53
  138. package/dist/types/libs/hook-api/index.d.ts +0 -6
  139. package/dist/types/libs/hook-api/index.worker.d.ts +0 -19
  140. package/dist/types/libs/hook-api/route.d.ts +0 -9
  141. package/dist/types/libs/hook-api/template.d.ts +0 -22
  142. package/dist/types/libs/hook-api/templateForStream.d.ts +0 -8
  143. package/dist/types/libs/loadConfig.d.ts +0 -13
  144. package/dist/types/libs/metrics.d.ts +0 -3
  145. package/dist/types/libs/preload/flushServerHeader.d.ts +0 -14
  146. package/dist/types/libs/preload/index.d.ts +0 -2
  147. package/dist/types/libs/preload/parseLinks.d.ts +0 -13
  148. package/dist/types/libs/preload/shouldFlushServerHeader.d.ts +0 -3
  149. package/dist/types/libs/preload/transformLinks2String.d.ts +0 -3
  150. package/dist/types/libs/proxy.d.ts +0 -13
  151. package/dist/types/libs/render/index.d.ts +0 -21
  152. package/dist/types/libs/render/measure.d.ts +0 -10
  153. package/dist/types/libs/render/ssr.d.ts +0 -12
  154. package/dist/types/libs/render/ssrCache/cacheMod.d.ts +0 -8
  155. package/dist/types/libs/render/ssrCache/index.d.ts +0 -6
  156. package/dist/types/libs/render/ssrCache/manager.d.ts +0 -20
  157. package/dist/types/libs/render/static.d.ts +0 -3
  158. package/dist/types/libs/render/type.d.ts +0 -36
  159. package/dist/types/libs/render/utils.d.ts +0 -5
  160. package/dist/types/libs/reporter.d.ts +0 -2
  161. package/dist/types/libs/route/index.d.ts +0 -15
  162. package/dist/types/libs/route/matcher.d.ts +0 -15
  163. package/dist/types/libs/route/route.d.ts +0 -14
  164. package/dist/types/libs/serveFile.d.ts +0 -9
  165. package/dist/types/libs/serverTiming.d.ts +0 -13
  166. package/dist/types/renderHtml.d.ts +0 -23
  167. package/dist/types/server/index.d.ts +0 -55
  168. package/dist/types/server/modernServer.d.ts +0 -71
  169. package/dist/types/server/modernServerSplit.d.ts +0 -2
  170. package/dist/types/type.d.ts +0 -78
  171. package/dist/types/utils.d.ts +0 -24
  172. package/dist/types/workerServer.d.ts +0 -59
  173. /package/dist/esm/{type.js → types.js} +0 -0
  174. /package/dist/esm-node/{type.js → types.js} +0 -0
@@ -1,150 +0,0 @@
1
- "use strict";
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 });
15
- }
16
- return to;
17
- };
18
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
- var transformLinks2String_exports = {};
20
- __export(transformLinks2String_exports, {
21
- transformLinks2String: () => transformLinks2String
22
- });
23
- module.exports = __toCommonJS(transformLinks2String_exports);
24
- var import_shouldFlushServerHeader = require("./shouldFlushServerHeader");
25
- function transformLinks2String(links, preload) {
26
- if (typeof preload === "boolean") {
27
- return transformLinkToString(dedup(links));
28
- }
29
- const { include, exclude, attributes } = preload;
30
- const resolveLinks = transformLinkToString(addAttributes(dedup(removeExclude(addInclude(links, include), exclude)), attributes));
31
- return resolveLinks;
32
- }
33
- function addInclude(links, include) {
34
- const images = [
35
- "gif",
36
- "jpg",
37
- "jpeg",
38
- "png",
39
- "webp",
40
- "bmp",
41
- "tiff",
42
- "anpg",
43
- "ico"
44
- ];
45
- const videos = [
46
- "mp4",
47
- "webm",
48
- "ogm",
49
- "ogv",
50
- "ogg"
51
- ];
52
- const fonts = [
53
- "woff",
54
- "woff2",
55
- "eot",
56
- "ttf",
57
- "otf"
58
- ];
59
- const includes = (include === null || include === void 0 ? void 0 : include.map((item) => {
60
- if (typeof item === "string") {
61
- const type = (() => {
62
- if (item.endsWith(".js")) {
63
- return "script";
64
- }
65
- if (item.endsWith(".css")) {
66
- return "style";
67
- }
68
- if (images.some((image) => item.endsWith(`.${image}`))) {
69
- return "image";
70
- }
71
- if (videos.some((video) => item.endsWith(`.${video}`))) {
72
- return "video";
73
- }
74
- if (fonts.some((font) => item.endsWith(`.${font}`))) {
75
- return "font";
76
- }
77
- })();
78
- return {
79
- uri: item,
80
- as: type
81
- };
82
- }
83
- return {
84
- uri: item.url,
85
- as: item.as,
86
- rel: item.rel
87
- };
88
- })) || [];
89
- return links.concat(includes);
90
- }
91
- function removeExclude(links, exclude) {
92
- return exclude ? links.filter(({ uri }) => !(0, import_shouldFlushServerHeader.transformToRegExp)(exclude).test(uri)) : links;
93
- }
94
- function addAttributes(links, attributes) {
95
- const parseAttributes = (_attributes) => {
96
- return Object.entries(_attributes || {}).reduce((results, [key, value]) => {
97
- if (typeof value === "boolean") {
98
- value && results.push(`; ${key}`);
99
- return results;
100
- }
101
- results.push(`; ${key}=${value}`);
102
- return results;
103
- }, []).join("");
104
- };
105
- return links.map((link) => {
106
- const { as } = link;
107
- if (as) {
108
- const attributesStr = (() => {
109
- const { style, script, image, font } = attributes || {};
110
- switch (as) {
111
- case "script":
112
- return parseAttributes(script);
113
- case "style":
114
- return parseAttributes(style);
115
- case "image":
116
- return parseAttributes(image);
117
- case "font":
118
- return parseAttributes(font);
119
- default:
120
- return "";
121
- }
122
- })();
123
- return {
124
- ...link,
125
- rest: attributesStr
126
- };
127
- }
128
- return link;
129
- });
130
- }
131
- function dedup(links) {
132
- const set = /* @__PURE__ */ new Set();
133
- return links.filter(({ uri }) => {
134
- if (set.has(uri)) {
135
- return false;
136
- }
137
- set.add(uri);
138
- return true;
139
- });
140
- }
141
- function transformLinkToString(links) {
142
- return links.map(({ uri, as, rel: originalRel, rest }) => {
143
- const rel = originalRel || "preload";
144
- return as ? `<${uri}>; rel=${rel}; as=${as}${rest || ""}` : `<${uri}>; rel=${rel}${rest || ""}`;
145
- }).join(", ");
146
- }
147
- // Annotate the CommonJS export names for ESM import in node:
148
- 0 && (module.exports = {
149
- transformLinks2String
150
- });
@@ -1,99 +0,0 @@
1
- "use strict";
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 });
15
- }
16
- return to;
17
- };
18
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
- var proxy_exports = {};
20
- __export(proxy_exports, {
21
- createProxyHandler: () => createProxyHandler,
22
- formatProxyOptions: () => formatProxyOptions
23
- });
24
- module.exports = __toCommonJS(proxy_exports);
25
- var import_http_proxy_middleware = require("http-proxy-middleware/dist/http-proxy-middleware");
26
- var import_utils = require("../utils");
27
- function formatProxyOptions(proxyOptions) {
28
- const ret = [];
29
- if (Array.isArray(proxyOptions)) {
30
- ret.push(...proxyOptions);
31
- } else if ("target" in proxyOptions) {
32
- ret.push(proxyOptions);
33
- } else {
34
- for (const [context, options] of Object.entries(proxyOptions)) {
35
- const opts = {
36
- context,
37
- changeOrigin: true,
38
- logLevel: "warn"
39
- };
40
- if (typeof options === "string") {
41
- opts.target = options;
42
- } else {
43
- Object.assign(opts, options);
44
- }
45
- ret.push(opts);
46
- }
47
- }
48
- const handleError = (err, _req, _res, _target) => {
49
- console.error(err);
50
- };
51
- for (const opts of ret) {
52
- var _opts;
53
- var _onError;
54
- (_onError = (_opts = opts).onError) !== null && _onError !== void 0 ? _onError : _opts.onError = handleError;
55
- }
56
- return ret;
57
- }
58
- const createProxyHandler = (proxyOptions) => {
59
- (0, import_utils.debug)("createProxyHandler", proxyOptions);
60
- const formattedOptionsList = formatProxyOptions(proxyOptions);
61
- const proxies = [];
62
- const handlers = [];
63
- for (const opts of formattedOptionsList) {
64
- const proxy = new import_http_proxy_middleware.HttpProxyMiddleware(opts.context, opts);
65
- const handler = async (ctx, next) => {
66
- const { req, res } = ctx;
67
- const bypassUrl = typeof opts.bypass === "function" ? opts.bypass(req, res, opts) : null;
68
- if (typeof bypassUrl === "boolean") {
69
- ctx.status = 404;
70
- next();
71
- } else if (typeof bypassUrl === "string") {
72
- ctx.url = bypassUrl;
73
- next();
74
- } else {
75
- proxy.middleware(req, res, next);
76
- }
77
- };
78
- proxies.push(proxy);
79
- handlers.push(handler);
80
- }
81
- const handleUpgrade = (server) => {
82
- for (const proxy of proxies) {
83
- const raw = proxy;
84
- if (raw.proxyOptions.ws === true && !raw.wsInternalSubscribed) {
85
- server.on("upgrade", raw.handleUpgrade);
86
- raw.wsInternalSubscribed = true;
87
- }
88
- }
89
- };
90
- return {
91
- handlers,
92
- handleUpgrade
93
- };
94
- };
95
- // Annotate the CommonJS export names for ESM import in node:
96
- 0 && (module.exports = {
97
- createProxyHandler,
98
- formatProxyOptions
99
- });
@@ -1,109 +0,0 @@
1
- "use strict";
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 });
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
32
- });
33
- module.exports = __toCommonJS(render_exports);
34
- var import_path = __toESM(require("path"));
35
- var import_utils = require("@modern-js/utils");
36
- var import_fileReader = require("@modern-js/runtime-utils/fileReader");
37
- var import_constants = require("../../constants");
38
- var import_shouldFlushServerHeader = require("../preload/shouldFlushServerHeader");
39
- var import_static = require("./static");
40
- var ssr = __toESM(require("./ssr"));
41
- var import_utils2 = require("./utils");
42
- const calcFallback = (metaName) => `x-${(0, import_utils.cutNameByHyphen)(metaName)}-ssr-fallback`;
43
- const createRenderHandler = ({ distDir, staticGenerate, conf, forceCSR, nonce, ssrRender, metaName = "modern-js" }) => async function render({ ctx, route, runner }) {
44
- if (ctx.resHasHandled()) {
45
- return null;
46
- }
47
- const { entryPath, urlPath } = route;
48
- const entry = import_path.default.join(distDir, entryPath);
49
- if (!route.isSPA) {
50
- const result = await (0, import_static.handleDirectory)(ctx, entry, urlPath);
51
- return result;
52
- }
53
- const templatePath = entry;
54
- const content = await import_fileReader.fileReader.readFile(templatePath);
55
- if (!content) {
56
- return null;
57
- }
58
- const queryCSR = ctx.query.csr;
59
- const headerFallback = ctx.headers[calcFallback(metaName)];
60
- const useCSR = forceCSR && (queryCSR || headerFallback);
61
- if (route.isSSR && !useCSR) {
62
- try {
63
- const userAgent = ctx.getReqHeader("User-Agent");
64
- const disablePreload = Boolean(ctx.headers[`x-${(0, import_utils.cutNameByHyphen)(metaName)}-disable-preload`]);
65
- if ((0, import_shouldFlushServerHeader.shouldFlushServerHeader)(conf.server, userAgent, disablePreload)) {
66
- const { flushServerHeader } = await Promise.resolve().then(() => __toESM(require("../preload")));
67
- flushServerHeader({
68
- serverConf: conf.server,
69
- ctx,
70
- distDir,
71
- template: content.toString(),
72
- headers: {
73
- "Content-Type": import_utils.mime.contentType(import_path.default.extname(templatePath))
74
- }
75
- });
76
- }
77
- const ssrRenderOptions = {
78
- distDir,
79
- route,
80
- template: content.toString(),
81
- staticGenerate,
82
- nonce
83
- };
84
- const result = await (ssrRender ? ssrRender(ctx, ssrRenderOptions, runner) : ssr.render(ctx, ssrRenderOptions, runner));
85
- return result;
86
- } catch (err) {
87
- ctx.error(import_constants.ERROR_DIGEST.ERENDER, err.stack || err.message);
88
- ctx.res.set(calcFallback(metaName), "1");
89
- await runner.handleSSRFallback({
90
- ctx,
91
- type: "error"
92
- });
93
- }
94
- } else if (route.isSSR && useCSR) {
95
- const fallbackType = queryCSR ? "query" : "header";
96
- await runner.handleSSRFallback({
97
- ctx,
98
- type: fallbackType
99
- });
100
- }
101
- return {
102
- content: route.entryName ? (0, import_utils2.injectServerData)(content.toString(), ctx) : content,
103
- contentType: import_utils.mime.contentType(import_path.default.extname(templatePath))
104
- };
105
- };
106
- // Annotate the CommonJS export names for ESM import in node:
107
- 0 && (module.exports = {
108
- createRenderHandler
109
- });
@@ -1,74 +0,0 @@
1
- "use strict";
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 });
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
23
- });
24
- module.exports = __toCommonJS(measure_exports);
25
- var import_utils = require("../../utils");
26
- const createMetrics = (context, metrics) => {
27
- const { entryName: entry, request } = context;
28
- const { pathname = "" } = request || {};
29
- const emitTimer = (name, cost, tags = {}) => {
30
- metrics.emitTimer(name, cost, void 0, {
31
- ...tags,
32
- pathname,
33
- entry
34
- });
35
- };
36
- const emitCounter = (name, counter, tags = {}) => {
37
- metrics.emitCounter(name, counter, void 0, {
38
- ...tags,
39
- pathname,
40
- entry
41
- });
42
- };
43
- return {
44
- emitTimer,
45
- emitCounter
46
- };
47
- };
48
- const createLogger = (serverContext, logger) => {
49
- const request = serverContext.request || {};
50
- const { headers = {}, pathname = "" } = request;
51
- const debug = (message, ...args) => {
52
- logger.debug(`SSR Debug - ${message}, req.url = %s`, ...args, pathname);
53
- };
54
- const info = (message, ...args) => {
55
- logger.info(`SSR Info - ${message}, req.url = %s`, ...args, pathname);
56
- };
57
- const error = (message, e) => {
58
- if (!e) {
59
- e = message;
60
- message = "";
61
- }
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));
63
- };
64
- return {
65
- error,
66
- info,
67
- debug
68
- };
69
- };
70
- // Annotate the CommonJS export names for ESM import in node:
71
- 0 && (module.exports = {
72
- createLogger,
73
- createMetrics
74
- });
@@ -1,130 +0,0 @@
1
- "use strict";
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 });
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
32
- });
33
- module.exports = __toCommonJS(ssr_exports);
34
- var import_path = __toESM(require("path"));
35
- var import_utils = require("@modern-js/utils");
36
- var isbot = __toESM(require("isbot"));
37
- var import_hook_api = require("../hook-api");
38
- var import_afterRenderForStream = require("../hook-api/afterRenderForStream");
39
- var import_measure = require("./measure");
40
- var import_utils2 = require("./utils");
41
- var import_ssrCache = require("./ssrCache");
42
- const render = async (ctx, renderOptions, runner) => {
43
- var _ctx_res;
44
- const { distDir, route, template, staticGenerate, enableUnsafeCtx = false, nonce } = renderOptions;
45
- const { urlPath, bundle, entryName } = route;
46
- const bundleJS = import_path.default.join(distDir, bundle);
47
- const loadableUri = import_path.default.join(distDir, import_utils.LOADABLE_STATS_FILE);
48
- const loadableStats = import_utils.fs.existsSync(loadableUri) ? require(loadableUri) : "";
49
- const routesManifestUri = import_path.default.join(distDir, import_utils.ROUTE_MANIFEST_FILE);
50
- const routeManifest = import_utils.fs.existsSync(routesManifestUri) ? require(routesManifestUri) : void 0;
51
- const isSpider = isbot.default(ctx.headers["user-agent"] || null);
52
- const context = {
53
- request: {
54
- baseUrl: urlPath,
55
- params: ctx.params,
56
- pathname: ctx.path,
57
- host: ctx.host,
58
- query: ctx.query,
59
- url: ctx.href,
60
- headers: ctx.headers
61
- },
62
- response: {
63
- setHeader: (key, value) => {
64
- return ctx.res.setHeader(key, value);
65
- },
66
- status: (code) => {
67
- ctx.res.statusCode = code;
68
- },
69
- locals: ((_ctx_res = ctx.res) === null || _ctx_res === void 0 ? void 0 : _ctx_res.locals) || {}
70
- },
71
- redirection: {},
72
- template,
73
- loadableStats,
74
- routeManifest,
75
- entryName,
76
- staticGenerate,
77
- logger: void 0,
78
- metrics: void 0,
79
- reporter: ctx.reporter,
80
- serverTiming: ctx.serverTiming,
81
- req: ctx.req,
82
- res: ctx.res,
83
- enableUnsafeCtx,
84
- isSpider,
85
- nonce
86
- };
87
- context.logger = (0, import_measure.createLogger)(context, ctx.logger);
88
- context.metrics = (0, import_measure.createMetrics)(context, ctx.metrics);
89
- runner.extendSSRContext(context);
90
- const bundleJSContent = await Promise.resolve(require(bundleJS));
91
- const serverRender = bundleJSContent[import_utils.SERVER_RENDER_FUNCTION_NAME];
92
- const { data: content, status: cacheStatus } = await (0, import_ssrCache.ssrCache)(ctx.req, serverRender, context);
93
- const { url, status = 302 } = context.redirection;
94
- if (url) {
95
- return {
96
- content: url,
97
- contentType: "",
98
- statusCode: status,
99
- redirect: true
100
- };
101
- }
102
- const headers = {};
103
- cacheStatus && (headers["x-render-cache"] = cacheStatus);
104
- if (typeof content === "string") {
105
- return {
106
- content: (0, import_utils2.injectServerData)(content, ctx),
107
- contentType: import_utils.mime.contentType("html"),
108
- headers
109
- };
110
- } else {
111
- let contentStream = (0, import_utils2.injectServerDataStream)(content, ctx);
112
- const afterStreamingRenderContext = (0, import_hook_api.createAfterStreamingRenderContext)(ctx, route);
113
- contentStream = contentStream.pipe((0, import_afterRenderForStream.afterRenderInjectableStream)((chunk) => {
114
- const context2 = afterStreamingRenderContext(chunk);
115
- return runner.afterStreamingRender(context2, {
116
- onLast: ({ chunk: chunk2 }) => chunk2
117
- });
118
- }));
119
- return {
120
- content: "",
121
- contentStream,
122
- contentType: import_utils.mime.contentType("html"),
123
- headers
124
- };
125
- }
126
- };
127
- // Annotate the CommonJS export names for ESM import in node:
128
- 0 && (module.exports = {
129
- render
130
- });
@@ -1,51 +0,0 @@
1
- "use strict";
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 });
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 cacheMod_exports = {};
30
- __export(cacheMod_exports, {
31
- cacheMod: () => cacheMod
32
- });
33
- module.exports = __toCommonJS(cacheMod_exports);
34
- var import_path = __toESM(require("path"));
35
- var import_utils = require("@modern-js/utils");
36
- const CACHE_FILENAME = "cache";
37
- class ServerCacheMod {
38
- loadServerCacheMod(pwd = process.cwd()) {
39
- const serverCacheFilepath = import_path.default.resolve(pwd, import_utils.SERVER_DIR, CACHE_FILENAME);
40
- const mod = (0, import_utils.requireExistModule)(serverCacheFilepath, {
41
- interop: false
42
- });
43
- this.customContainer = mod === null || mod === void 0 ? void 0 : mod.customContainer;
44
- this.cacheOption = mod === null || mod === void 0 ? void 0 : mod.cacheOption;
45
- }
46
- }
47
- const cacheMod = new ServerCacheMod();
48
- // Annotate the CommonJS export names for ESM import in node:
49
- 0 && (module.exports = {
50
- cacheMod
51
- });