@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,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,133 +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, _ref2, content, cacheStatus, _context_redirection, url, _context_redirection_status, status, headers, 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
- _ref2 = _state.sent(), content = _ref2.data, cacheStatus = _ref2.status;
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
- headers = {};
89
- cacheStatus && (headers["x-render-cache"] = cacheStatus);
90
- if (typeof content === "string") {
91
- return [
92
- 2,
93
- {
94
- content: injectServerData(content, ctx),
95
- contentType: mime.contentType("html"),
96
- headers
97
- }
98
- ];
99
- } else {
100
- contentStream = injectServerDataStream(content, ctx);
101
- afterStreamingRenderContext = createAfterStreamingRenderContext(ctx, route);
102
- contentStream = contentStream.pipe(afterRenderInjectableStream(function(chunk) {
103
- var context2 = afterStreamingRenderContext(chunk);
104
- return runner.afterStreamingRender(context2, {
105
- onLast: function(param) {
106
- var _$chunk = param.chunk;
107
- return _$chunk;
108
- }
109
- });
110
- }));
111
- return [
112
- 2,
113
- {
114
- content: "",
115
- contentStream,
116
- contentType: mime.contentType("html"),
117
- headers
118
- }
119
- ];
120
- }
121
- return [
122
- 2
123
- ];
124
- }
125
- });
126
- });
127
- return function render2(ctx, renderOptions, runner) {
128
- return _ref.apply(this, arguments);
129
- };
130
- }();
131
- export {
132
- render
133
- };
@@ -1,25 +0,0 @@
1
- import { _ as _class_call_check } from "@swc/helpers/_/_class_call_check";
2
- import path from "path";
3
- import { SERVER_DIR, requireExistModule } from "@modern-js/utils";
4
- var CACHE_FILENAME = "cache";
5
- var ServerCacheMod = /* @__PURE__ */ function() {
6
- "use strict";
7
- function ServerCacheMod2() {
8
- _class_call_check(this, ServerCacheMod2);
9
- }
10
- var _proto = ServerCacheMod2.prototype;
11
- _proto.loadServerCacheMod = function loadServerCacheMod() {
12
- var pwd = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : process.cwd();
13
- var serverCacheFilepath = path.resolve(pwd, SERVER_DIR, CACHE_FILENAME);
14
- var mod = requireExistModule(serverCacheFilepath, {
15
- interop: false
16
- });
17
- this.customContainer = mod === null || mod === void 0 ? void 0 : mod.customContainer;
18
- this.cacheOption = mod === null || mod === void 0 ? void 0 : mod.cacheOption;
19
- };
20
- return ServerCacheMod2;
21
- }();
22
- var cacheMod = new ServerCacheMod();
23
- export {
24
- cacheMod
25
- };
@@ -1,170 +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 _ts_generator } from "@swc/helpers/_/_ts_generator";
4
- import { Transform } from "stream";
5
- import { createMemoryStorage } from "@modern-js/runtime-utils/storer";
6
- import { cacheMod } from "./cacheMod";
7
- import { CacheManager } from "./manager";
8
- var cacheStorage = createMemoryStorage("__ssr__cache");
9
- function ssrCache(req, render, ssrContext) {
10
- return _ssrCache.apply(this, arguments);
11
- }
12
- function _ssrCache() {
13
- _ssrCache = _async_to_generator(function(req, render, ssrContext) {
14
- var customContainer, cacheOption, cacheControl, cacheManager, renderResult, stream, data;
15
- return _ts_generator(this, function(_state) {
16
- switch (_state.label) {
17
- case 0:
18
- customContainer = cacheMod.customContainer, cacheOption = cacheMod.cacheOption;
19
- return [
20
- 4,
21
- matchCacheControl(req, cacheOption)
22
- ];
23
- case 1:
24
- cacheControl = _state.sent();
25
- cacheManager = new CacheManager(customContainer ? customContainer : cacheStorage);
26
- if (!cacheControl)
27
- return [
28
- 3,
29
- 2
30
- ];
31
- return [
32
- 2,
33
- cacheManager.getCacheResult(req, cacheControl, render, ssrContext)
34
- ];
35
- case 2:
36
- return [
37
- 4,
38
- render(ssrContext)
39
- ];
40
- case 3:
41
- renderResult = _state.sent();
42
- if (!!renderResult)
43
- return [
44
- 3,
45
- 4
46
- ];
47
- return [
48
- 2,
49
- {
50
- data: ""
51
- }
52
- ];
53
- case 4:
54
- if (!(typeof renderResult === "string"))
55
- return [
56
- 3,
57
- 5
58
- ];
59
- return [
60
- 2,
61
- {
62
- data: renderResult
63
- }
64
- ];
65
- case 5:
66
- stream = new Transform({
67
- write: function write(chunk, _, callback) {
68
- this.push(chunk);
69
- callback();
70
- }
71
- });
72
- return [
73
- 4,
74
- renderResult(stream)
75
- ];
76
- case 6:
77
- data = _state.sent();
78
- return [
79
- 2,
80
- {
81
- data
82
- }
83
- ];
84
- case 7:
85
- return [
86
- 2
87
- ];
88
- }
89
- });
90
- });
91
- return _ssrCache.apply(this, arguments);
92
- }
93
- function matchCacheControl(req, cacheOption) {
94
- return _matchCacheControl.apply(this, arguments);
95
- }
96
- function _matchCacheControl() {
97
- _matchCacheControl = _async_to_generator(function(req, cacheOption) {
98
- var url, options, _iteratorNormalCompletion, _didIteratorError, _iteratorError, _iterator, _step, _step_value, key, option;
99
- function isCacheOptionProvider(option2) {
100
- return typeof option2 === "function";
101
- }
102
- function isCacheControl(option2) {
103
- return typeof option2 === "object" && option2 !== null && "maxAge" in option2;
104
- }
105
- return _ts_generator(this, function(_state) {
106
- if (!cacheOption) {
107
- return [
108
- 2,
109
- void 0
110
- ];
111
- } else if (isCacheControl(cacheOption)) {
112
- return [
113
- 2,
114
- cacheOption
115
- ];
116
- } else if (isCacheOptionProvider(cacheOption)) {
117
- return [
118
- 2,
119
- cacheOption(req)
120
- ];
121
- } else {
122
- url = req.url;
123
- options = Object.entries(cacheOption);
124
- _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;
125
- try {
126
- for (_iterator = options[Symbol.iterator](); !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
127
- _step_value = _sliced_to_array(_step.value, 2), key = _step_value[0], option = _step_value[1];
128
- if (key === "*" || new RegExp(key).test(url)) {
129
- if (typeof option === "function") {
130
- return [
131
- 2,
132
- option(req)
133
- ];
134
- } else {
135
- return [
136
- 2,
137
- option
138
- ];
139
- }
140
- }
141
- }
142
- } catch (err) {
143
- _didIteratorError = true;
144
- _iteratorError = err;
145
- } finally {
146
- try {
147
- if (!_iteratorNormalCompletion && _iterator.return != null) {
148
- _iterator.return();
149
- }
150
- } finally {
151
- if (_didIteratorError) {
152
- throw _iteratorError;
153
- }
154
- }
155
- }
156
- return [
157
- 2,
158
- void 0
159
- ];
160
- }
161
- return [
162
- 2
163
- ];
164
- });
165
- });
166
- return _matchCacheControl.apply(this, arguments);
167
- }
168
- export {
169
- ssrCache
170
- };