@modern-js/prod-server 2.47.0 → 2.47.1-alpha.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 (169) hide show
  1. package/README.md +20 -16
  2. package/dist/cjs/{libs/hook-api/route.js → error.js} +16 -25
  3. package/dist/cjs/index.js +46 -24
  4. package/dist/esm/error.js +15 -0
  5. package/dist/esm/index.js +105 -19
  6. package/dist/esm-node/error.js +14 -0
  7. package/dist/esm-node/index.js +44 -17
  8. package/dist/types/error.d.ts +6 -0
  9. package/dist/types/index.d.ts +21 -11
  10. package/package.json +18 -92
  11. package/dist/cjs/constants.js +0 -72
  12. package/dist/cjs/libs/context/context.js +0 -240
  13. package/dist/cjs/libs/context/index.js +0 -31
  14. package/dist/cjs/libs/hook-api/afterRenderForStream.js +0 -34
  15. package/dist/cjs/libs/hook-api/base.js +0 -107
  16. package/dist/cjs/libs/hook-api/index.js +0 -85
  17. package/dist/cjs/libs/hook-api/index.worker.js +0 -119
  18. package/dist/cjs/libs/hook-api/template.js +0 -74
  19. package/dist/cjs/libs/hook-api/templateForStream.js +0 -52
  20. package/dist/cjs/libs/loadConfig.js +0 -70
  21. package/dist/cjs/libs/metrics.js +0 -33
  22. package/dist/cjs/libs/preload/flushServerHeader.js +0 -49
  23. package/dist/cjs/libs/preload/index.js +0 -24
  24. package/dist/cjs/libs/preload/parseLinks.js +0 -124
  25. package/dist/cjs/libs/preload/shouldFlushServerHeader.js +0 -52
  26. package/dist/cjs/libs/preload/transformLinks2String.js +0 -150
  27. package/dist/cjs/libs/proxy.js +0 -99
  28. package/dist/cjs/libs/render/index.js +0 -109
  29. package/dist/cjs/libs/render/measure.js +0 -74
  30. package/dist/cjs/libs/render/ssr.js +0 -126
  31. package/dist/cjs/libs/render/ssrCache/cacheMod.js +0 -56
  32. package/dist/cjs/libs/render/ssrCache/index.js +0 -83
  33. package/dist/cjs/libs/render/ssrCache/manager.js +0 -106
  34. package/dist/cjs/libs/render/static.js +0 -72
  35. package/dist/cjs/libs/render/type.js +0 -33
  36. package/dist/cjs/libs/render/utils.js +0 -41
  37. package/dist/cjs/libs/reporter.js +0 -39
  38. package/dist/cjs/libs/route/index.js +0 -85
  39. package/dist/cjs/libs/route/matcher.js +0 -117
  40. package/dist/cjs/libs/route/route.js +0 -49
  41. package/dist/cjs/libs/serveFile.js +0 -84
  42. package/dist/cjs/libs/serverTiming.js +0 -44
  43. package/dist/cjs/renderHtml.js +0 -72
  44. package/dist/cjs/server/index.js +0 -229
  45. package/dist/cjs/server/modernServer.js +0 -532
  46. package/dist/cjs/server/modernServerSplit.js +0 -67
  47. package/dist/cjs/type.js +0 -16
  48. package/dist/cjs/utils.js +0 -164
  49. package/dist/cjs/workerServer.js +0 -264
  50. package/dist/esm/constants.js +0 -43
  51. package/dist/esm/libs/context/context.js +0 -292
  52. package/dist/esm/libs/context/index.js +0 -8
  53. package/dist/esm/libs/hook-api/afterRenderForStream.js +0 -33
  54. package/dist/esm/libs/hook-api/base.js +0 -108
  55. package/dist/esm/libs/hook-api/index.js +0 -55
  56. package/dist/esm/libs/hook-api/index.worker.js +0 -113
  57. package/dist/esm/libs/hook-api/route.js +0 -41
  58. package/dist/esm/libs/hook-api/template.js +0 -84
  59. package/dist/esm/libs/hook-api/templateForStream.js +0 -35
  60. package/dist/esm/libs/loadConfig.js +0 -36
  61. package/dist/esm/libs/metrics.js +0 -9
  62. package/dist/esm/libs/preload/flushServerHeader.js +0 -50
  63. package/dist/esm/libs/preload/index.js +0 -2
  64. package/dist/esm/libs/preload/parseLinks.js +0 -172
  65. package/dist/esm/libs/preload/shouldFlushServerHeader.js +0 -27
  66. package/dist/esm/libs/preload/transformLinks2String.js +0 -140
  67. package/dist/esm/libs/proxy.js +0 -160
  68. package/dist/esm/libs/render/index.js +0 -175
  69. package/dist/esm/libs/render/measure.js +0 -69
  70. package/dist/esm/libs/render/ssr.js +0 -129
  71. package/dist/esm/libs/render/ssrCache/cacheMod.js +0 -33
  72. package/dist/esm/libs/render/ssrCache/index.js +0 -151
  73. package/dist/esm/libs/render/ssrCache/manager.js +0 -170
  74. package/dist/esm/libs/render/static.js +0 -100
  75. package/dist/esm/libs/render/type.js +0 -9
  76. package/dist/esm/libs/render/utils.js +0 -16
  77. package/dist/esm/libs/reporter.js +0 -15
  78. package/dist/esm/libs/route/index.js +0 -116
  79. package/dist/esm/libs/route/matcher.js +0 -128
  80. package/dist/esm/libs/route/route.js +0 -26
  81. package/dist/esm/libs/serveFile.js +0 -68
  82. package/dist/esm/libs/serverTiming.js +0 -30
  83. package/dist/esm/renderHtml.js +0 -150
  84. package/dist/esm/server/index.js +0 -426
  85. package/dist/esm/server/modernServer.js +0 -1018
  86. package/dist/esm/server/modernServerSplit.js +0 -138
  87. package/dist/esm/type.js +0 -0
  88. package/dist/esm/utils.js +0 -103
  89. package/dist/esm/workerServer.js +0 -347
  90. package/dist/esm-node/constants.js +0 -43
  91. package/dist/esm-node/libs/context/context.js +0 -206
  92. package/dist/esm-node/libs/context/index.js +0 -6
  93. package/dist/esm-node/libs/hook-api/afterRenderForStream.js +0 -10
  94. package/dist/esm-node/libs/hook-api/base.js +0 -72
  95. package/dist/esm-node/libs/hook-api/index.js +0 -57
  96. package/dist/esm-node/libs/hook-api/index.worker.js +0 -92
  97. package/dist/esm-node/libs/hook-api/route.js +0 -24
  98. package/dist/esm-node/libs/hook-api/template.js +0 -49
  99. package/dist/esm-node/libs/hook-api/templateForStream.js +0 -28
  100. package/dist/esm-node/libs/loadConfig.js +0 -34
  101. package/dist/esm-node/libs/metrics.js +0 -9
  102. package/dist/esm-node/libs/preload/flushServerHeader.js +0 -25
  103. package/dist/esm-node/libs/preload/index.js +0 -2
  104. package/dist/esm-node/libs/preload/parseLinks.js +0 -90
  105. package/dist/esm-node/libs/preload/shouldFlushServerHeader.js +0 -27
  106. package/dist/esm-node/libs/preload/transformLinks2String.js +0 -126
  107. package/dist/esm-node/libs/proxy.js +0 -74
  108. package/dist/esm-node/libs/render/index.js +0 -75
  109. package/dist/esm-node/libs/render/measure.js +0 -49
  110. package/dist/esm-node/libs/render/ssr.js +0 -92
  111. package/dist/esm-node/libs/render/ssrCache/cacheMod.js +0 -22
  112. package/dist/esm-node/libs/render/ssrCache/index.js +0 -59
  113. package/dist/esm-node/libs/render/ssrCache/manager.js +0 -82
  114. package/dist/esm-node/libs/render/static.js +0 -38
  115. package/dist/esm-node/libs/render/type.js +0 -9
  116. package/dist/esm-node/libs/render/utils.js +0 -16
  117. package/dist/esm-node/libs/reporter.js +0 -15
  118. package/dist/esm-node/libs/route/index.js +0 -60
  119. package/dist/esm-node/libs/route/matcher.js +0 -93
  120. package/dist/esm-node/libs/route/route.js +0 -25
  121. package/dist/esm-node/libs/serveFile.js +0 -49
  122. package/dist/esm-node/libs/serverTiming.js +0 -20
  123. package/dist/esm-node/renderHtml.js +0 -80
  124. package/dist/esm-node/server/index.js +0 -195
  125. package/dist/esm-node/server/modernServer.js +0 -498
  126. package/dist/esm-node/server/modernServerSplit.js +0 -43
  127. package/dist/esm-node/type.js +0 -0
  128. package/dist/esm-node/utils.js +0 -132
  129. package/dist/esm-node/workerServer.js +0 -239
  130. package/dist/types/constants.d.ts +0 -30
  131. package/dist/types/libs/context/context.d.ts +0 -62
  132. package/dist/types/libs/context/index.d.ts +0 -7
  133. package/dist/types/libs/hook-api/afterRenderForStream.d.ts +0 -4
  134. package/dist/types/libs/hook-api/base.d.ts +0 -53
  135. package/dist/types/libs/hook-api/index.d.ts +0 -6
  136. package/dist/types/libs/hook-api/index.worker.d.ts +0 -19
  137. package/dist/types/libs/hook-api/route.d.ts +0 -9
  138. package/dist/types/libs/hook-api/template.d.ts +0 -22
  139. package/dist/types/libs/hook-api/templateForStream.d.ts +0 -8
  140. package/dist/types/libs/loadConfig.d.ts +0 -13
  141. package/dist/types/libs/metrics.d.ts +0 -3
  142. package/dist/types/libs/preload/flushServerHeader.d.ts +0 -14
  143. package/dist/types/libs/preload/index.d.ts +0 -2
  144. package/dist/types/libs/preload/parseLinks.d.ts +0 -13
  145. package/dist/types/libs/preload/shouldFlushServerHeader.d.ts +0 -3
  146. package/dist/types/libs/preload/transformLinks2String.d.ts +0 -3
  147. package/dist/types/libs/proxy.d.ts +0 -13
  148. package/dist/types/libs/render/index.d.ts +0 -21
  149. package/dist/types/libs/render/measure.d.ts +0 -10
  150. package/dist/types/libs/render/ssr.d.ts +0 -12
  151. package/dist/types/libs/render/ssrCache/cacheMod.d.ts +0 -8
  152. package/dist/types/libs/render/ssrCache/index.d.ts +0 -7
  153. package/dist/types/libs/render/ssrCache/manager.d.ts +0 -14
  154. package/dist/types/libs/render/static.d.ts +0 -3
  155. package/dist/types/libs/render/type.d.ts +0 -36
  156. package/dist/types/libs/render/utils.d.ts +0 -5
  157. package/dist/types/libs/reporter.d.ts +0 -2
  158. package/dist/types/libs/route/index.d.ts +0 -15
  159. package/dist/types/libs/route/matcher.d.ts +0 -15
  160. package/dist/types/libs/route/route.d.ts +0 -14
  161. package/dist/types/libs/serveFile.d.ts +0 -9
  162. package/dist/types/libs/serverTiming.d.ts +0 -13
  163. package/dist/types/renderHtml.d.ts +0 -23
  164. package/dist/types/server/index.d.ts +0 -55
  165. package/dist/types/server/modernServer.d.ts +0 -71
  166. package/dist/types/server/modernServerSplit.d.ts +0 -2
  167. package/dist/types/type.d.ts +0 -77
  168. package/dist/types/utils.d.ts +0 -24
  169. package/dist/types/workerServer.d.ts +0 -59
@@ -1,160 +0,0 @@
1
- import { _ as _async_to_generator } from "@swc/helpers/_/_async_to_generator";
2
- import { _ as _sliced_to_array } from "@swc/helpers/_/_sliced_to_array";
3
- import { _ as _to_consumable_array } from "@swc/helpers/_/_to_consumable_array";
4
- import { _ as _ts_generator } from "@swc/helpers/_/_ts_generator";
5
- import { HttpProxyMiddleware } from "http-proxy-middleware/dist/http-proxy-middleware";
6
- import { debug } from "../utils";
7
- function formatProxyOptions(proxyOptions) {
8
- var ret = [];
9
- if (Array.isArray(proxyOptions)) {
10
- var _ret;
11
- (_ret = ret).push.apply(_ret, _to_consumable_array(proxyOptions));
12
- } else if ("target" in proxyOptions) {
13
- ret.push(proxyOptions);
14
- } else {
15
- var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;
16
- try {
17
- for (var _iterator = Object.entries(proxyOptions)[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
18
- var _step_value = _sliced_to_array(_step.value, 2), context = _step_value[0], options = _step_value[1];
19
- var opts = {
20
- context,
21
- changeOrigin: true,
22
- logLevel: "warn"
23
- };
24
- if (typeof options === "string") {
25
- opts.target = options;
26
- } else {
27
- Object.assign(opts, options);
28
- }
29
- ret.push(opts);
30
- }
31
- } catch (err) {
32
- _didIteratorError = true;
33
- _iteratorError = err;
34
- } finally {
35
- try {
36
- if (!_iteratorNormalCompletion && _iterator.return != null) {
37
- _iterator.return();
38
- }
39
- } finally {
40
- if (_didIteratorError) {
41
- throw _iteratorError;
42
- }
43
- }
44
- }
45
- }
46
- var handleError = function(err, _req, _res, _target) {
47
- console.error(err);
48
- };
49
- var _iteratorNormalCompletion1 = true, _didIteratorError1 = false, _iteratorError1 = void 0;
50
- try {
51
- for (var _iterator1 = ret[Symbol.iterator](), _step1; !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = true) {
52
- var opts1 = _step1.value;
53
- var _opts;
54
- var _onError;
55
- (_onError = (_opts = opts1).onError) !== null && _onError !== void 0 ? _onError : _opts.onError = handleError;
56
- }
57
- } catch (err) {
58
- _didIteratorError1 = true;
59
- _iteratorError1 = err;
60
- } finally {
61
- try {
62
- if (!_iteratorNormalCompletion1 && _iterator1.return != null) {
63
- _iterator1.return();
64
- }
65
- } finally {
66
- if (_didIteratorError1) {
67
- throw _iteratorError1;
68
- }
69
- }
70
- }
71
- return ret;
72
- }
73
- var createProxyHandler = function(proxyOptions) {
74
- debug("createProxyHandler", proxyOptions);
75
- var formattedOptionsList = formatProxyOptions(proxyOptions);
76
- var proxies = [];
77
- var handlers = [];
78
- var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;
79
- try {
80
- var _loop = function() {
81
- var opts = _step.value;
82
- var proxy = new HttpProxyMiddleware(opts.context, opts);
83
- var handler = function() {
84
- var _ref = _async_to_generator(function(ctx, next) {
85
- var req, res, bypassUrl;
86
- return _ts_generator(this, function(_state) {
87
- req = ctx.req, res = ctx.res;
88
- bypassUrl = typeof opts.bypass === "function" ? opts.bypass(req, res, opts) : null;
89
- if (typeof bypassUrl === "boolean") {
90
- ctx.status = 404;
91
- next();
92
- } else if (typeof bypassUrl === "string") {
93
- ctx.url = bypassUrl;
94
- next();
95
- } else {
96
- proxy.middleware(req, res, next);
97
- }
98
- return [
99
- 2
100
- ];
101
- });
102
- });
103
- return function handler2(ctx, next) {
104
- return _ref.apply(this, arguments);
105
- };
106
- }();
107
- proxies.push(proxy);
108
- handlers.push(handler);
109
- };
110
- for (var _iterator = formattedOptionsList[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true)
111
- _loop();
112
- } catch (err) {
113
- _didIteratorError = true;
114
- _iteratorError = err;
115
- } finally {
116
- try {
117
- if (!_iteratorNormalCompletion && _iterator.return != null) {
118
- _iterator.return();
119
- }
120
- } finally {
121
- if (_didIteratorError) {
122
- throw _iteratorError;
123
- }
124
- }
125
- }
126
- var handleUpgrade = function(server) {
127
- var _iteratorNormalCompletion2 = true, _didIteratorError2 = false, _iteratorError2 = void 0;
128
- try {
129
- for (var _iterator2 = proxies[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {
130
- var proxy = _step2.value;
131
- var raw = proxy;
132
- if (raw.proxyOptions.ws === true && !raw.wsInternalSubscribed) {
133
- server.on("upgrade", raw.handleUpgrade);
134
- raw.wsInternalSubscribed = true;
135
- }
136
- }
137
- } catch (err) {
138
- _didIteratorError2 = true;
139
- _iteratorError2 = err;
140
- } finally {
141
- try {
142
- if (!_iteratorNormalCompletion2 && _iterator2.return != null) {
143
- _iterator2.return();
144
- }
145
- } finally {
146
- if (_didIteratorError2) {
147
- throw _iteratorError2;
148
- }
149
- }
150
- }
151
- };
152
- return {
153
- handlers,
154
- handleUpgrade
155
- };
156
- };
157
- export {
158
- createProxyHandler,
159
- formatProxyOptions
160
- };
@@ -1,175 +0,0 @@
1
- import { _ as _async_to_generator } from "@swc/helpers/_/_async_to_generator";
2
- import { _ as _ts_generator } from "@swc/helpers/_/_ts_generator";
3
- import path from "path";
4
- import { cutNameByHyphen, mime } from "@modern-js/utils";
5
- import { fileReader } from "@modern-js/runtime-utils/fileReader";
6
- import { ERROR_DIGEST } from "../../constants";
7
- import { shouldFlushServerHeader } from "../preload/shouldFlushServerHeader";
8
- import { handleDirectory } from "./static";
9
- import * as ssr from "./ssr";
10
- import { injectServerData } from "./utils";
11
- var calcFallback = function(metaName) {
12
- return "x-".concat(cutNameByHyphen(metaName), "-ssr-fallback");
13
- };
14
- var createRenderHandler = function(param) {
15
- var distDir = param.distDir, staticGenerate = param.staticGenerate, conf = param.conf, forceCSR = param.forceCSR, nonce = param.nonce, ssrRender = param.ssrRender, _param_metaName = param.metaName, metaName = _param_metaName === void 0 ? "modern-js" : _param_metaName;
16
- return function() {
17
- var _render = _async_to_generator(function(param2) {
18
- var ctx, route, runner, entryPath, urlPath, entry, result, templatePath, content, queryCSR, headerFallback, useCSR, userAgent, disablePreload, flushServerHeader, ssrRenderOptions, result1, err, fallbackType;
19
- return _ts_generator(this, function(_state) {
20
- switch (_state.label) {
21
- case 0:
22
- ctx = param2.ctx, route = param2.route, runner = param2.runner;
23
- if (ctx.resHasHandled()) {
24
- return [
25
- 2,
26
- null
27
- ];
28
- }
29
- entryPath = route.entryPath, urlPath = route.urlPath;
30
- entry = path.join(distDir, entryPath);
31
- if (!!route.isSPA)
32
- return [
33
- 3,
34
- 2
35
- ];
36
- return [
37
- 4,
38
- handleDirectory(ctx, entry, urlPath)
39
- ];
40
- case 1:
41
- result = _state.sent();
42
- return [
43
- 2,
44
- result
45
- ];
46
- case 2:
47
- templatePath = entry;
48
- return [
49
- 4,
50
- fileReader.readFile(templatePath)
51
- ];
52
- case 3:
53
- content = _state.sent();
54
- if (!content) {
55
- return [
56
- 2,
57
- null
58
- ];
59
- }
60
- queryCSR = ctx.query.csr;
61
- headerFallback = ctx.headers[calcFallback(metaName)];
62
- useCSR = forceCSR && (queryCSR || headerFallback);
63
- if (!(route.isSSR && !useCSR))
64
- return [
65
- 3,
66
- 11
67
- ];
68
- _state.label = 4;
69
- case 4:
70
- _state.trys.push([
71
- 4,
72
- 8,
73
- ,
74
- 10
75
- ]);
76
- userAgent = ctx.getReqHeader("User-Agent");
77
- disablePreload = Boolean(ctx.headers["x-".concat(cutNameByHyphen(metaName), "-disable-preload")]);
78
- if (!shouldFlushServerHeader(conf.server, userAgent, disablePreload))
79
- return [
80
- 3,
81
- 6
82
- ];
83
- return [
84
- 4,
85
- import("../preload")
86
- ];
87
- case 5:
88
- flushServerHeader = _state.sent().flushServerHeader;
89
- flushServerHeader({
90
- serverConf: conf.server,
91
- ctx,
92
- distDir,
93
- template: content.toString(),
94
- headers: {
95
- "Content-Type": mime.contentType(path.extname(templatePath))
96
- }
97
- });
98
- _state.label = 6;
99
- case 6:
100
- ssrRenderOptions = {
101
- distDir,
102
- route,
103
- template: content.toString(),
104
- staticGenerate,
105
- nonce
106
- };
107
- return [
108
- 4,
109
- ssrRender ? ssrRender(ctx, ssrRenderOptions, runner) : ssr.render(ctx, ssrRenderOptions, runner)
110
- ];
111
- case 7:
112
- result1 = _state.sent();
113
- return [
114
- 2,
115
- result1
116
- ];
117
- case 8:
118
- err = _state.sent();
119
- ctx.error(ERROR_DIGEST.ERENDER, err.stack || err.message);
120
- ctx.res.set(calcFallback(metaName), "1");
121
- return [
122
- 4,
123
- runner.handleSSRFallback({
124
- ctx,
125
- type: "error"
126
- })
127
- ];
128
- case 9:
129
- _state.sent();
130
- return [
131
- 3,
132
- 10
133
- ];
134
- case 10:
135
- return [
136
- 3,
137
- 13
138
- ];
139
- case 11:
140
- if (!(route.isSSR && useCSR))
141
- return [
142
- 3,
143
- 13
144
- ];
145
- fallbackType = queryCSR ? "query" : "header";
146
- return [
147
- 4,
148
- runner.handleSSRFallback({
149
- ctx,
150
- type: fallbackType
151
- })
152
- ];
153
- case 12:
154
- _state.sent();
155
- _state.label = 13;
156
- case 13:
157
- return [
158
- 2,
159
- {
160
- content: route.entryName ? injectServerData(content.toString(), ctx) : content,
161
- contentType: mime.contentType(path.extname(templatePath))
162
- }
163
- ];
164
- }
165
- });
166
- });
167
- function render(_) {
168
- return _render.apply(this, arguments);
169
- }
170
- return render;
171
- }();
172
- };
173
- export {
174
- createRenderHandler
175
- };
@@ -1,69 +0,0 @@
1
- import { _ as _instanceof } from "@swc/helpers/_/_instanceof";
2
- import { _ as _object_spread } from "@swc/helpers/_/_object_spread";
3
- import { _ as _object_spread_props } from "@swc/helpers/_/_object_spread_props";
4
- import { _ as _to_consumable_array } from "@swc/helpers/_/_to_consumable_array";
5
- import { headersWithoutCookie } from "../../utils";
6
- var createMetrics = function(context, metrics) {
7
- var entry = context.entryName, request = context.request;
8
- var _ref = request || {}, _ref_pathname = _ref.pathname, pathname = _ref_pathname === void 0 ? "" : _ref_pathname;
9
- var emitTimer = function(name, cost) {
10
- var tags = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : {};
11
- metrics.emitTimer(name, cost, void 0, _object_spread_props(_object_spread({}, tags), {
12
- pathname,
13
- entry
14
- }));
15
- };
16
- var emitCounter = function(name, counter) {
17
- var tags = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : {};
18
- metrics.emitCounter(name, counter, void 0, _object_spread_props(_object_spread({}, tags), {
19
- pathname,
20
- entry
21
- }));
22
- };
23
- return {
24
- emitTimer,
25
- emitCounter
26
- };
27
- };
28
- var createLogger = function(serverContext, logger) {
29
- var request = serverContext.request || {};
30
- var _request_headers = request.headers, headers = _request_headers === void 0 ? {} : _request_headers, _request_pathname = request.pathname, pathname = _request_pathname === void 0 ? "" : _request_pathname;
31
- var debug = function(message) {
32
- for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
33
- args[_key - 1] = arguments[_key];
34
- }
35
- var _logger;
36
- (_logger = logger).debug.apply(_logger, [
37
- "SSR Debug - ".concat(message, ", req.url = %s")
38
- ].concat(_to_consumable_array(args), [
39
- pathname
40
- ]));
41
- };
42
- var info = function(message) {
43
- for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
44
- args[_key - 1] = arguments[_key];
45
- }
46
- var _logger;
47
- (_logger = logger).info.apply(_logger, [
48
- "SSR Info - ".concat(message, ", req.url = %s")
49
- ].concat(_to_consumable_array(args), [
50
- pathname
51
- ]));
52
- };
53
- var error = function(message, e) {
54
- if (!e) {
55
- e = message;
56
- message = "";
57
- }
58
- logger.error("SSR Error - ".concat(message, ", error = %s, req.url = %s, req.headers = %o"), _instanceof(e, Error) ? e.stack || e.message : e, pathname, headersWithoutCookie(headers));
59
- };
60
- return {
61
- error,
62
- info,
63
- debug
64
- };
65
- };
66
- export {
67
- createLogger,
68
- createMetrics
69
- };
@@ -1,129 +0,0 @@
1
- import { _ as _async_to_generator } from "@swc/helpers/_/_async_to_generator";
2
- import { _ as _ts_generator } from "@swc/helpers/_/_ts_generator";
3
- import path from "path";
4
- import { fs, mime, LOADABLE_STATS_FILE, ROUTE_MANIFEST_FILE, SERVER_RENDER_FUNCTION_NAME } from "@modern-js/utils";
5
- import * as isbot from "isbot";
6
- import { createAfterStreamingRenderContext } from "../hook-api";
7
- import { afterRenderInjectableStream } from "../hook-api/afterRenderForStream";
8
- import { createLogger, createMetrics } from "./measure";
9
- import { injectServerDataStream, injectServerData } from "./utils";
10
- import { ssrCache } from "./ssrCache";
11
- var render = function() {
12
- var _ref = _async_to_generator(function(ctx, renderOptions, runner) {
13
- var _ctx_res, distDir, route, template, staticGenerate, _renderOptions_enableUnsafeCtx, enableUnsafeCtx, nonce, urlPath, bundle, entryName, bundleJS, loadableUri, loadableStats, routesManifestUri, routeManifest, isSpider, context, bundleJSContent, serverRender, content, _context_redirection, url, _context_redirection_status, status, contentStream, afterStreamingRenderContext;
14
- return _ts_generator(this, function(_state) {
15
- switch (_state.label) {
16
- case 0:
17
- distDir = renderOptions.distDir, route = renderOptions.route, template = renderOptions.template, staticGenerate = renderOptions.staticGenerate, _renderOptions_enableUnsafeCtx = renderOptions.enableUnsafeCtx, enableUnsafeCtx = _renderOptions_enableUnsafeCtx === void 0 ? false : _renderOptions_enableUnsafeCtx, nonce = renderOptions.nonce;
18
- urlPath = route.urlPath, bundle = route.bundle, entryName = route.entryName;
19
- bundleJS = path.join(distDir, bundle);
20
- loadableUri = path.join(distDir, LOADABLE_STATS_FILE);
21
- loadableStats = fs.existsSync(loadableUri) ? require(loadableUri) : "";
22
- routesManifestUri = path.join(distDir, ROUTE_MANIFEST_FILE);
23
- routeManifest = fs.existsSync(routesManifestUri) ? require(routesManifestUri) : void 0;
24
- isSpider = isbot.default(ctx.headers["user-agent"] || null);
25
- context = {
26
- request: {
27
- baseUrl: urlPath,
28
- params: ctx.params,
29
- pathname: ctx.path,
30
- host: ctx.host,
31
- query: ctx.query,
32
- url: ctx.href,
33
- headers: ctx.headers
34
- },
35
- response: {
36
- setHeader: function(key, value) {
37
- return ctx.res.setHeader(key, value);
38
- },
39
- status: function(code) {
40
- ctx.res.statusCode = code;
41
- },
42
- locals: ((_ctx_res = ctx.res) === null || _ctx_res === void 0 ? void 0 : _ctx_res.locals) || {}
43
- },
44
- redirection: {},
45
- template,
46
- loadableStats,
47
- routeManifest,
48
- entryName,
49
- staticGenerate,
50
- logger: void 0,
51
- metrics: void 0,
52
- reporter: ctx.reporter,
53
- serverTiming: ctx.serverTiming,
54
- req: ctx.req,
55
- res: ctx.res,
56
- enableUnsafeCtx,
57
- isSpider,
58
- nonce
59
- };
60
- context.logger = createLogger(context, ctx.logger);
61
- context.metrics = createMetrics(context, ctx.metrics);
62
- runner.extendSSRContext(context);
63
- return [
64
- 4,
65
- Promise.resolve(require(bundleJS))
66
- ];
67
- case 1:
68
- bundleJSContent = _state.sent();
69
- serverRender = bundleJSContent[SERVER_RENDER_FUNCTION_NAME];
70
- return [
71
- 4,
72
- ssrCache(ctx.req, serverRender, context)
73
- ];
74
- case 2:
75
- content = _state.sent();
76
- _context_redirection = context.redirection, url = _context_redirection.url, _context_redirection_status = _context_redirection.status, status = _context_redirection_status === void 0 ? 302 : _context_redirection_status;
77
- if (url) {
78
- return [
79
- 2,
80
- {
81
- content: url,
82
- contentType: "",
83
- statusCode: status,
84
- redirect: true
85
- }
86
- ];
87
- }
88
- if (typeof content === "string") {
89
- return [
90
- 2,
91
- {
92
- content: injectServerData(content, ctx),
93
- contentType: mime.contentType("html")
94
- }
95
- ];
96
- } else {
97
- contentStream = injectServerDataStream(content, ctx);
98
- afterStreamingRenderContext = createAfterStreamingRenderContext(ctx, route);
99
- contentStream = contentStream.pipe(afterRenderInjectableStream(function(chunk) {
100
- var context2 = afterStreamingRenderContext(chunk);
101
- return runner.afterStreamingRender(context2, {
102
- onLast: function(param) {
103
- var _$chunk = param.chunk;
104
- return _$chunk;
105
- }
106
- });
107
- }));
108
- return [
109
- 2,
110
- {
111
- content: "",
112
- contentStream,
113
- contentType: mime.contentType("html")
114
- }
115
- ];
116
- }
117
- return [
118
- 2
119
- ];
120
- }
121
- });
122
- });
123
- return function render2(ctx, renderOptions, runner) {
124
- return _ref.apply(this, arguments);
125
- };
126
- }();
127
- export {
128
- render
129
- };
@@ -1,33 +0,0 @@
1
- import { _ as _class_call_check } from "@swc/helpers/_/_class_call_check";
2
- import { _ as _create_class } from "@swc/helpers/_/_create_class";
3
- import { _ as _define_property } from "@swc/helpers/_/_define_property";
4
- import path from "path";
5
- import { SERVER_DIR, requireExistModule } from "@modern-js/utils";
6
- var CACHE_FILENAME = "cache";
7
- var ServerCacheMod = /* @__PURE__ */ function() {
8
- "use strict";
9
- function ServerCacheMod2() {
10
- _class_call_check(this, ServerCacheMod2);
11
- _define_property(this, "customContainer", void 0);
12
- _define_property(this, "cacheOption", void 0);
13
- }
14
- _create_class(ServerCacheMod2, [
15
- {
16
- key: "loadServerCacheMod",
17
- value: function loadServerCacheMod() {
18
- var pwd = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : process.cwd();
19
- var serverCacheFilepath = path.resolve(pwd, SERVER_DIR, CACHE_FILENAME);
20
- var mod = requireExistModule(serverCacheFilepath, {
21
- interop: false
22
- });
23
- this.customContainer = mod === null || mod === void 0 ? void 0 : mod.customContainer;
24
- this.cacheOption = mod === null || mod === void 0 ? void 0 : mod.cacheOption;
25
- }
26
- }
27
- ]);
28
- return ServerCacheMod2;
29
- }();
30
- var cacheMod = new ServerCacheMod();
31
- export {
32
- cacheMod
33
- };