@modern-js/server-core 2.48.5-alpha.2 → 2.48.5

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 (209) hide show
  1. package/dist/cjs/index.js +4 -6
  2. package/dist/cjs/{core/loadPlugins.js → loadPlugins.js} +7 -4
  3. package/dist/cjs/{core/plugin.js → plugin.js} +42 -1
  4. package/dist/esm/index.js +2 -3
  5. package/dist/{esm-node/core → esm}/loadPlugins.js +7 -4
  6. package/dist/{esm-node/core → esm}/plugin.js +42 -1
  7. package/dist/types/index.d.ts +2 -3
  8. package/dist/types/loadPlugins.d.ts +5 -0
  9. package/dist/types/plugin.d.ts +493 -0
  10. package/package.json +6 -44
  11. package/dist/cjs/base/adapters/node/bff.js +0 -70
  12. package/dist/cjs/base/adapters/node/hono.js +0 -63
  13. package/dist/cjs/base/adapters/node/index.js +0 -54
  14. package/dist/cjs/base/adapters/node/loadServer.js +0 -56
  15. package/dist/cjs/base/adapters/node/middlewares/index.js +0 -28
  16. package/dist/cjs/base/adapters/node/middlewares/mock.js +0 -113
  17. package/dist/cjs/base/adapters/node/middlewares/serverManifest.js +0 -82
  18. package/dist/cjs/base/adapters/node/middlewares/serverPublic.js +0 -67
  19. package/dist/cjs/base/adapters/node/middlewares/serverStatic.js +0 -109
  20. package/dist/cjs/base/adapters/node/middlewares/templates.js +0 -67
  21. package/dist/cjs/base/adapters/node/node.js +0 -127
  22. package/dist/cjs/base/adapters/node/polyfills/index.js +0 -24
  23. package/dist/cjs/base/adapters/node/polyfills/install.js +0 -72
  24. package/dist/cjs/base/adapters/node/polyfills/stream.js +0 -153
  25. package/dist/cjs/base/constants.js +0 -58
  26. package/dist/cjs/base/index.js +0 -49
  27. package/dist/cjs/base/middlewares/customServer/base.js +0 -154
  28. package/dist/cjs/base/middlewares/customServer/context.js +0 -73
  29. package/dist/cjs/base/middlewares/customServer/index.js +0 -130
  30. package/dist/cjs/base/middlewares/customServer/routerApi.js +0 -44
  31. package/dist/cjs/base/middlewares/customServer/template.js +0 -58
  32. package/dist/cjs/base/middlewares/faviconFallback.js +0 -34
  33. package/dist/cjs/base/middlewares/frameworkHeader.js +0 -31
  34. package/dist/cjs/base/middlewares/index.js +0 -30
  35. package/dist/cjs/base/middlewares/logger.js +0 -77
  36. package/dist/cjs/base/middlewares/monitor.js +0 -90
  37. package/dist/cjs/base/middlewares/renderHandler/dataHandler.js +0 -46
  38. package/dist/cjs/base/middlewares/renderHandler/index.js +0 -106
  39. package/dist/cjs/base/middlewares/renderHandler/render.js +0 -126
  40. package/dist/cjs/base/middlewares/renderHandler/serverTiming.js +0 -40
  41. package/dist/cjs/base/middlewares/renderHandler/ssrCache.js +0 -197
  42. package/dist/cjs/base/middlewares/renderHandler/ssrRender.js +0 -208
  43. package/dist/cjs/base/serverBase.js +0 -203
  44. package/dist/cjs/base/utils/debug.js +0 -29
  45. package/dist/cjs/base/utils/entry.js +0 -30
  46. package/dist/cjs/base/utils/env.js +0 -45
  47. package/dist/cjs/base/utils/error.js +0 -65
  48. package/dist/cjs/base/utils/index.js +0 -34
  49. package/dist/cjs/base/utils/middlewareCollector.js +0 -54
  50. package/dist/cjs/base/utils/request.js +0 -65
  51. package/dist/cjs/base/utils/serverConfig.js +0 -70
  52. package/dist/cjs/base/utils/transformStream.js +0 -61
  53. package/dist/cjs/base/utils/warmup.js +0 -43
  54. package/dist/cjs/core/index.js +0 -22
  55. package/dist/cjs/core/render.js +0 -16
  56. package/dist/cjs/core/server.js +0 -16
  57. package/dist/esm/base/adapters/node/bff.js +0 -128
  58. package/dist/esm/base/adapters/node/hono.js +0 -83
  59. package/dist/esm/base/adapters/node/index.js +0 -19
  60. package/dist/esm/base/adapters/node/loadServer.js +0 -73
  61. package/dist/esm/base/adapters/node/middlewares/index.js +0 -4
  62. package/dist/esm/base/adapters/node/middlewares/mock.js +0 -198
  63. package/dist/esm/base/adapters/node/middlewares/serverManifest.js +0 -132
  64. package/dist/esm/base/adapters/node/middlewares/serverPublic.js +0 -85
  65. package/dist/esm/base/adapters/node/middlewares/serverStatic.js +0 -119
  66. package/dist/esm/base/adapters/node/middlewares/templates.js +0 -114
  67. package/dist/esm/base/adapters/node/node.js +0 -197
  68. package/dist/esm/base/adapters/node/polyfills/index.js +0 -2
  69. package/dist/esm/base/adapters/node/polyfills/install.js +0 -48
  70. package/dist/esm/base/adapters/node/polyfills/stream.js +0 -316
  71. package/dist/esm/base/constants.js +0 -31
  72. package/dist/esm/base/index.js +0 -16
  73. package/dist/esm/base/middlewares/customServer/base.js +0 -182
  74. package/dist/esm/base/middlewares/customServer/context.js +0 -68
  75. package/dist/esm/base/middlewares/customServer/index.js +0 -214
  76. package/dist/esm/base/middlewares/customServer/routerApi.js +0 -26
  77. package/dist/esm/base/middlewares/customServer/template.js +0 -47
  78. package/dist/esm/base/middlewares/faviconFallback.js +0 -28
  79. package/dist/esm/base/middlewares/frameworkHeader.js +0 -27
  80. package/dist/esm/base/middlewares/index.js +0 -5
  81. package/dist/esm/base/middlewares/logger.js +0 -75
  82. package/dist/esm/base/middlewares/monitor.js +0 -157
  83. package/dist/esm/base/middlewares/renderHandler/dataHandler.js +0 -45
  84. package/dist/esm/base/middlewares/renderHandler/index.js +0 -165
  85. package/dist/esm/base/middlewares/renderHandler/render.js +0 -216
  86. package/dist/esm/base/middlewares/renderHandler/serverTiming.js +0 -21
  87. package/dist/esm/base/middlewares/renderHandler/ssrCache.js +0 -306
  88. package/dist/esm/base/middlewares/renderHandler/ssrRender.js +0 -265
  89. package/dist/esm/base/serverBase.js +0 -383
  90. package/dist/esm/base/utils/debug.js +0 -5
  91. package/dist/esm/base/utils/entry.js +0 -6
  92. package/dist/esm/base/utils/env.js +0 -20
  93. package/dist/esm/base/utils/error.js +0 -12
  94. package/dist/esm/base/utils/index.js +0 -7
  95. package/dist/esm/base/utils/middlewareCollector.js +0 -31
  96. package/dist/esm/base/utils/request.js +0 -39
  97. package/dist/esm/base/utils/serverConfig.js +0 -58
  98. package/dist/esm/base/utils/transformStream.js +0 -90
  99. package/dist/esm/base/utils/warmup.js +0 -9
  100. package/dist/esm/core/index.js +0 -1
  101. package/dist/esm/core/loadPlugins.js +0 -26
  102. package/dist/esm/core/plugin.js +0 -59
  103. package/dist/esm/core/render.js +0 -0
  104. package/dist/esm/core/server.js +0 -0
  105. package/dist/esm-node/base/adapters/node/bff.js +0 -46
  106. package/dist/esm-node/base/adapters/node/hono.js +0 -38
  107. package/dist/esm-node/base/adapters/node/index.js +0 -19
  108. package/dist/esm-node/base/adapters/node/loadServer.js +0 -22
  109. package/dist/esm-node/base/adapters/node/middlewares/index.js +0 -4
  110. package/dist/esm-node/base/adapters/node/middlewares/mock.js +0 -79
  111. package/dist/esm-node/base/adapters/node/middlewares/serverManifest.js +0 -48
  112. package/dist/esm-node/base/adapters/node/middlewares/serverPublic.js +0 -33
  113. package/dist/esm-node/base/adapters/node/middlewares/serverStatic.js +0 -75
  114. package/dist/esm-node/base/adapters/node/middlewares/templates.js +0 -32
  115. package/dist/esm-node/base/adapters/node/node.js +0 -101
  116. package/dist/esm-node/base/adapters/node/polyfills/index.js +0 -2
  117. package/dist/esm-node/base/adapters/node/polyfills/install.js +0 -48
  118. package/dist/esm-node/base/adapters/node/polyfills/stream.js +0 -126
  119. package/dist/esm-node/base/constants.js +0 -31
  120. package/dist/esm-node/base/index.js +0 -16
  121. package/dist/esm-node/base/middlewares/customServer/base.js +0 -130
  122. package/dist/esm-node/base/middlewares/customServer/context.js +0 -46
  123. package/dist/esm-node/base/middlewares/customServer/index.js +0 -106
  124. package/dist/esm-node/base/middlewares/customServer/routerApi.js +0 -20
  125. package/dist/esm-node/base/middlewares/customServer/template.js +0 -34
  126. package/dist/esm-node/base/middlewares/faviconFallback.js +0 -10
  127. package/dist/esm-node/base/middlewares/frameworkHeader.js +0 -7
  128. package/dist/esm-node/base/middlewares/index.js +0 -5
  129. package/dist/esm-node/base/middlewares/logger.js +0 -53
  130. package/dist/esm-node/base/middlewares/monitor.js +0 -63
  131. package/dist/esm-node/base/middlewares/renderHandler/dataHandler.js +0 -22
  132. package/dist/esm-node/base/middlewares/renderHandler/index.js +0 -71
  133. package/dist/esm-node/base/middlewares/renderHandler/render.js +0 -102
  134. package/dist/esm-node/base/middlewares/renderHandler/serverTiming.js +0 -16
  135. package/dist/esm-node/base/middlewares/renderHandler/ssrCache.js +0 -162
  136. package/dist/esm-node/base/middlewares/renderHandler/ssrRender.js +0 -173
  137. package/dist/esm-node/base/serverBase.js +0 -168
  138. package/dist/esm-node/base/utils/debug.js +0 -5
  139. package/dist/esm-node/base/utils/entry.js +0 -6
  140. package/dist/esm-node/base/utils/env.js +0 -20
  141. package/dist/esm-node/base/utils/error.js +0 -41
  142. package/dist/esm-node/base/utils/index.js +0 -7
  143. package/dist/esm-node/base/utils/middlewareCollector.js +0 -29
  144. package/dist/esm-node/base/utils/request.js +0 -38
  145. package/dist/esm-node/base/utils/serverConfig.js +0 -34
  146. package/dist/esm-node/base/utils/transformStream.js +0 -36
  147. package/dist/esm-node/base/utils/warmup.js +0 -9
  148. package/dist/esm-node/core/index.js +0 -1
  149. package/dist/esm-node/core/render.js +0 -0
  150. package/dist/esm-node/core/server.js +0 -0
  151. package/dist/esm-node/index.js +0 -5
  152. package/dist/esm-node/types/config/bff.js +0 -0
  153. package/dist/esm-node/types/config/dev.js +0 -0
  154. package/dist/esm-node/types/config/html.js +0 -0
  155. package/dist/esm-node/types/config/index.js +0 -6
  156. package/dist/esm-node/types/config/output.js +0 -0
  157. package/dist/esm-node/types/config/security.js +0 -0
  158. package/dist/esm-node/types/config/server.js +0 -0
  159. package/dist/esm-node/types/config/share.js +0 -0
  160. package/dist/esm-node/types/config/source.js +0 -0
  161. package/dist/esm-node/types/config/tools.js +0 -0
  162. package/dist/types/base/adapters/node/bff.d.ts +0 -3
  163. package/dist/types/base/adapters/node/hono.d.ts +0 -22
  164. package/dist/types/base/adapters/node/index.d.ts +0 -6
  165. package/dist/types/base/adapters/node/loadServer.d.ts +0 -3
  166. package/dist/types/base/adapters/node/middlewares/index.d.ts +0 -4
  167. package/dist/types/base/adapters/node/middlewares/mock.d.ts +0 -5
  168. package/dist/types/base/adapters/node/middlewares/serverManifest.d.ts +0 -3
  169. package/dist/types/base/adapters/node/middlewares/serverPublic.d.ts +0 -7
  170. package/dist/types/base/adapters/node/middlewares/serverStatic.d.ts +0 -11
  171. package/dist/types/base/adapters/node/middlewares/templates.d.ts +0 -4
  172. package/dist/types/base/adapters/node/node.d.ts +0 -13
  173. package/dist/types/base/adapters/node/polyfills/index.d.ts +0 -2
  174. package/dist/types/base/adapters/node/polyfills/install.d.ts +0 -1
  175. package/dist/types/base/adapters/node/polyfills/stream.d.ts +0 -18
  176. package/dist/types/base/constants.d.ts +0 -24
  177. package/dist/types/base/index.d.ts +0 -7
  178. package/dist/types/base/middlewares/customServer/base.d.ts +0 -3
  179. package/dist/types/base/middlewares/customServer/context.d.ts +0 -7
  180. package/dist/types/base/middlewares/customServer/index.d.ts +0 -13
  181. package/dist/types/base/middlewares/customServer/routerApi.d.ts +0 -9
  182. package/dist/types/base/middlewares/customServer/template.d.ts +0 -11
  183. package/dist/types/base/middlewares/faviconFallback.d.ts +0 -2
  184. package/dist/types/base/middlewares/frameworkHeader.d.ts +0 -2
  185. package/dist/types/base/middlewares/index.d.ts +0 -5
  186. package/dist/types/base/middlewares/logger.d.ts +0 -2
  187. package/dist/types/base/middlewares/monitor.d.ts +0 -6
  188. package/dist/types/base/middlewares/renderHandler/dataHandler.d.ts +0 -5
  189. package/dist/types/base/middlewares/renderHandler/index.d.ts +0 -9
  190. package/dist/types/base/middlewares/renderHandler/render.d.ts +0 -12
  191. package/dist/types/base/middlewares/renderHandler/serverTiming.d.ts +0 -7
  192. package/dist/types/base/middlewares/renderHandler/ssrCache.d.ts +0 -28
  193. package/dist/types/base/middlewares/renderHandler/ssrRender.d.ts +0 -20
  194. package/dist/types/base/serverBase.d.ts +0 -70
  195. package/dist/types/base/utils/debug.d.ts +0 -1
  196. package/dist/types/base/utils/entry.d.ts +0 -2
  197. package/dist/types/base/utils/env.d.ts +0 -2
  198. package/dist/types/base/utils/error.d.ts +0 -1
  199. package/dist/types/base/utils/index.d.ts +0 -7
  200. package/dist/types/base/utils/middlewareCollector.d.ts +0 -12
  201. package/dist/types/base/utils/request.d.ts +0 -12
  202. package/dist/types/base/utils/serverConfig.d.ts +0 -14
  203. package/dist/types/base/utils/transformStream.d.ts +0 -5
  204. package/dist/types/base/utils/warmup.d.ts +0 -1
  205. package/dist/types/core/index.d.ts +0 -1
  206. package/dist/types/core/loadPlugins.d.ts +0 -3
  207. package/dist/types/core/plugin.d.ts +0 -202
  208. package/dist/types/core/render.d.ts +0 -15
  209. package/dist/types/core/server.d.ts +0 -44
@@ -1,165 +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 { checkIsProd, sortRoutes, getRuntimeEnv } from "../../utils";
4
- import { initReporter } from "../monitor";
5
- import { CustomServer } from "../customServer";
6
- import { createRender } from "./render";
7
- function createRenderHandler(render) {
8
- return function() {
9
- var _ref = _async_to_generator(function(c, _) {
10
- var _c_env_node, logger, reporter, templates, serverManifest, locals, request, nodeReq, res;
11
- return _ts_generator(this, function(_state) {
12
- switch (_state.label) {
13
- case 0:
14
- logger = c.get("logger");
15
- reporter = c.get("reporter");
16
- templates = c.get("templates") || {};
17
- serverManifest = c.get("serverManifest") || {};
18
- locals = c.get("locals");
19
- request = c.req.raw;
20
- nodeReq = (_c_env_node = c.env.node) === null || _c_env_node === void 0 ? void 0 : _c_env_node.req;
21
- return [
22
- 4,
23
- render(request, {
24
- logger,
25
- nodeReq,
26
- reporter,
27
- templates,
28
- serverManifest,
29
- locals
30
- })
31
- ];
32
- case 1:
33
- res = _state.sent();
34
- return [
35
- 2,
36
- res
37
- ];
38
- }
39
- });
40
- });
41
- return function(c, _) {
42
- return _ref.apply(this, arguments);
43
- };
44
- }();
45
- }
46
- function getRenderHandler(options) {
47
- return _getRenderHandler.apply(this, arguments);
48
- }
49
- function _getRenderHandler() {
50
- _getRenderHandler = _async_to_generator(function(options) {
51
- var routes, pwd, config, _config_server, _options_config_security, ssrConfig, forceCSR, render;
52
- return _ts_generator(this, function(_state) {
53
- routes = options.routes, pwd = options.pwd, config = options.config;
54
- if (routes && routes.length > 0) {
55
- ;
56
- ssrConfig = (_config_server = config.server) === null || _config_server === void 0 ? void 0 : _config_server.ssr;
57
- forceCSR = typeof ssrConfig === "object" ? ssrConfig.forceCSR : false;
58
- render = createRender({
59
- routes,
60
- pwd,
61
- staticGenerate: options.staticGenerate,
62
- metaName: options.metaName || "modern-js",
63
- forceCSR,
64
- nonce: (_options_config_security = options.config.security) === null || _options_config_security === void 0 ? void 0 : _options_config_security.nonce
65
- });
66
- return [
67
- 2,
68
- render
69
- ];
70
- }
71
- return [
72
- 2,
73
- null
74
- ];
75
- });
76
- });
77
- return _getRenderHandler.apply(this, arguments);
78
- }
79
- function bindRenderHandler(server, options) {
80
- return _bindRenderHandler.apply(this, arguments);
81
- }
82
- function _bindRenderHandler() {
83
- _bindRenderHandler = _async_to_generator(function(server, options) {
84
- var routes, pwd, disableCustomHook, runner, customServer, cacheModuleName, ssrCache, pageRoutes, render, _iteratorNormalCompletion, _didIteratorError, _iteratorError, _iterator, _step, route, originUrlPath, entryName, urlPath, customServerHookMiddleware, customServerMiddleware;
85
- return _ts_generator(this, function(_state) {
86
- switch (_state.label) {
87
- case 0:
88
- routes = options.routes, pwd = options.pwd, disableCustomHook = options.disableCustomHook;
89
- runner = server.runner;
90
- if (!(routes && routes.length > 0))
91
- return [
92
- 3,
93
- 5
94
- ];
95
- customServer = new CustomServer(runner, server, pwd);
96
- if (!(getRuntimeEnv() === "node"))
97
- return [
98
- 3,
99
- 3
100
- ];
101
- cacheModuleName = "./ssrCache";
102
- return [
103
- 4,
104
- import(cacheModuleName)
105
- ];
106
- case 1:
107
- ssrCache = _state.sent().ssrCache;
108
- return [
109
- 4,
110
- ssrCache.loadCacheMod(checkIsProd() ? pwd : void 0)
111
- ];
112
- case 2:
113
- _state.sent();
114
- _state.label = 3;
115
- case 3:
116
- pageRoutes = routes.filter(function(route2) {
117
- return !route2.isApi;
118
- }).sort(sortRoutes);
119
- return [
120
- 4,
121
- getRenderHandler(options)
122
- ];
123
- case 4:
124
- render = _state.sent();
125
- _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;
126
- try {
127
- for (_iterator = pageRoutes[Symbol.iterator](); !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
128
- route = _step.value;
129
- originUrlPath = route.urlPath, entryName = route.entryName;
130
- urlPath = originUrlPath.endsWith("/") ? "".concat(originUrlPath, "*") : "".concat(originUrlPath, "/*");
131
- customServerHookMiddleware = customServer.getHookMiddleware(entryName || "main", routes);
132
- server.use(urlPath, initReporter(entryName));
133
- !disableCustomHook && server.use(urlPath, customServerHookMiddleware);
134
- customServerMiddleware = customServer.getServerMiddleware();
135
- server.use(urlPath, customServerMiddleware);
136
- render && server.all(urlPath, createRenderHandler(render));
137
- }
138
- } catch (err) {
139
- _didIteratorError = true;
140
- _iteratorError = err;
141
- } finally {
142
- try {
143
- if (!_iteratorNormalCompletion && _iterator.return != null) {
144
- _iterator.return();
145
- }
146
- } finally {
147
- if (_didIteratorError) {
148
- throw _iteratorError;
149
- }
150
- }
151
- }
152
- _state.label = 5;
153
- case 5:
154
- return [
155
- 2
156
- ];
157
- }
158
- });
159
- });
160
- return _bindRenderHandler.apply(this, arguments);
161
- }
162
- export {
163
- bindRenderHandler,
164
- getRenderHandler
165
- };
@@ -1,216 +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 { cutNameByHyphen } from "@modern-js/utils/universal";
4
- import { REPLACE_REG } from "../../../base/constants";
5
- import { createErrorHtml, sortRoutes, parseQuery, transformResponse, getPathname } from "../../utils";
6
- import { dataHandler } from "./dataHandler";
7
- import { ssrRender } from "./ssrRender";
8
- function createRender(_) {
9
- return _createRender.apply(this, arguments);
10
- }
11
- function _createRender() {
12
- _createRender = _async_to_generator(function(param) {
13
- var routes, pwd, metaName, staticGenerate, forceCSR, nonce;
14
- return _ts_generator(this, function(_state) {
15
- routes = param.routes, pwd = param.pwd, metaName = param.metaName, staticGenerate = param.staticGenerate, forceCSR = param.forceCSR, nonce = param.nonce;
16
- return [
17
- 2,
18
- function() {
19
- var _ref = _async_to_generator(function(req, param2) {
20
- var logger, nodeReq, reporter, templates, serverManifest, locals, routeInfo, html, renderMode, renderOptions, response;
21
- return _ts_generator(this, function(_state2) {
22
- switch (_state2.label) {
23
- case 0:
24
- logger = param2.logger, nodeReq = param2.nodeReq, reporter = param2.reporter, templates = param2.templates, serverManifest = param2.serverManifest, locals = param2.locals;
25
- routeInfo = matchRoute(req, routes);
26
- if (!routeInfo) {
27
- return [
28
- 2,
29
- new Response(createErrorHtml(404), {
30
- status: 404,
31
- headers: {
32
- "content-type": "text/html; charset=UTF-8"
33
- }
34
- })
35
- ];
36
- }
37
- html = templates[routeInfo.entryName];
38
- if (!html) {
39
- throw new Error("Can't found entry ".concat(routeInfo.entryName, " html "));
40
- }
41
- renderMode = getRenderMode(req, metaName || "modern-js", routeInfo.isSSR, forceCSR, nodeReq);
42
- renderOptions = {
43
- pwd,
44
- html,
45
- routeInfo,
46
- staticGenerate: staticGenerate || false,
47
- metaName: metaName || "modern-js",
48
- nonce,
49
- logger,
50
- nodeReq,
51
- reporter,
52
- serverRoutes: routes,
53
- locals,
54
- serverManifest
55
- };
56
- switch (renderMode) {
57
- case "data":
58
- return [
59
- 3,
60
- 1
61
- ];
62
- case "ssr":
63
- return [
64
- 3,
65
- 5
66
- ];
67
- case "csr":
68
- return [
69
- 3,
70
- 5
71
- ];
72
- }
73
- return [
74
- 3,
75
- 6
76
- ];
77
- case 1:
78
- return [
79
- 4,
80
- dataHandler(req, renderOptions)
81
- ];
82
- case 2:
83
- response = _state2.sent();
84
- if (!!response)
85
- return [
86
- 3,
87
- 4
88
- ];
89
- return [
90
- 4,
91
- renderHandler(req, renderOptions, "ssr")
92
- ];
93
- case 3:
94
- response = _state2.sent();
95
- _state2.label = 4;
96
- case 4:
97
- return [
98
- 2,
99
- response
100
- ];
101
- case 5:
102
- return [
103
- 2,
104
- renderHandler(req, renderOptions, renderMode)
105
- ];
106
- case 6:
107
- throw new Error("Unknown render mode: ".concat(renderMode));
108
- case 7:
109
- return [
110
- 2
111
- ];
112
- }
113
- });
114
- });
115
- return function(req, _) {
116
- return _ref.apply(this, arguments);
117
- };
118
- }()
119
- ];
120
- });
121
- });
122
- return _createRender.apply(this, arguments);
123
- }
124
- function renderHandler(request, options, mode) {
125
- return _renderHandler.apply(this, arguments);
126
- }
127
- function _renderHandler() {
128
- _renderHandler = _async_to_generator(function(request, options, mode) {
129
- var serverData, response;
130
- return _ts_generator(this, function(_state) {
131
- switch (_state.label) {
132
- case 0:
133
- serverData = {
134
- router: {
135
- baseUrl: options.routeInfo.urlPath,
136
- params: {}
137
- }
138
- };
139
- return [
140
- 4,
141
- mode === "ssr" ? ssrRender(request, options) : csrRender(options.html)
142
- ];
143
- case 1:
144
- response = _state.sent();
145
- return [
146
- 2,
147
- transformResponse(response, injectServerData(serverData))
148
- ];
149
- }
150
- });
151
- });
152
- return _renderHandler.apply(this, arguments);
153
- }
154
- function matchRoute(req, routes) {
155
- var sorted = routes.sort(sortRoutes);
156
- var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;
157
- try {
158
- for (var _iterator = sorted[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
159
- var route = _step.value;
160
- var pathname = getPathname(req);
161
- if (pathname.startsWith(route.urlPath)) {
162
- return route;
163
- }
164
- }
165
- } catch (err) {
166
- _didIteratorError = true;
167
- _iteratorError = err;
168
- } finally {
169
- try {
170
- if (!_iteratorNormalCompletion && _iterator.return != null) {
171
- _iterator.return();
172
- }
173
- } finally {
174
- if (_didIteratorError) {
175
- throw _iteratorError;
176
- }
177
- }
178
- }
179
- return void 0;
180
- }
181
- function getRenderMode(req, framework, isSSR, forceCSR, nodeReq) {
182
- var query = parseQuery(req);
183
- var fallbackHeader = "x-".concat(cutNameByHyphen(framework), "-ssr-fallback");
184
- if (isSSR) {
185
- if (query.__loader) {
186
- return "data";
187
- }
188
- if (forceCSR && (query.csr || req.headers.get(fallbackHeader) || (nodeReq === null || nodeReq === void 0 ? void 0 : nodeReq.headers[fallbackHeader]))) {
189
- return "csr";
190
- }
191
- return "ssr";
192
- } else {
193
- return "csr";
194
- }
195
- }
196
- function csrRender(html) {
197
- return new Response(html, {
198
- status: 200,
199
- headers: new Headers({
200
- "content-type": "text/html; charset=UTF-8"
201
- })
202
- });
203
- }
204
- function injectServerData(serverData) {
205
- var head = REPLACE_REG.before.head;
206
- var searchValue = new RegExp(head);
207
- var replcaeCb = function(beforeHead) {
208
- return "".concat(beforeHead, '<script type="application/json" id="__MODERN_SERVER_DATA__">').concat(JSON.stringify(serverData), "</script>");
209
- };
210
- return function(template) {
211
- return template.replace(searchValue, replcaeCb);
212
- };
213
- }
214
- export {
215
- createRender
216
- };
@@ -1,21 +0,0 @@
1
- import { _ as _class_call_check } from "@swc/helpers/_/_class_call_check";
2
- var SERVER_TIMING = "Server-Timing";
3
- var ServerTiming = /* @__PURE__ */ function() {
4
- "use strict";
5
- function ServerTiming2(headers, meta) {
6
- _class_call_check(this, ServerTiming2);
7
- this.meta = meta;
8
- this.headers = headers;
9
- }
10
- var _proto = ServerTiming2.prototype;
11
- _proto.addServeTiming = function addServeTiming(name, dur, desc) {
12
- var _name = "bd-".concat(this.meta, "-").concat(name);
13
- var value = "".concat(_name, ";").concat(desc ? 'decs="'.concat(desc, '";') : "", " dur=").concat(dur);
14
- this.headers.append(SERVER_TIMING, value);
15
- return this;
16
- };
17
- return ServerTiming2;
18
- }();
19
- export {
20
- ServerTiming
21
- };
@@ -1,306 +0,0 @@
1
- import { _ as _async_to_generator } from "@swc/helpers/_/_async_to_generator";
2
- import { _ as _class_call_check } from "@swc/helpers/_/_class_call_check";
3
- import { _ as _instanceof } from "@swc/helpers/_/_instanceof";
4
- import { _ as _sliced_to_array } from "@swc/helpers/_/_sliced_to_array";
5
- import { _ as _ts_generator } from "@swc/helpers/_/_ts_generator";
6
- import { Readable } from "stream";
7
- import { SERVER_DIR, requireExistModule } from "@modern-js/utils";
8
- import { createMemoryStorage } from "@modern-js/runtime-utils/storer";
9
- import { createReadableStreamFromReadable } from "../../adapters/node/polyfills/stream";
10
- import { createTransformStream, getPathname } from "../../utils";
11
- var CacheManager = /* @__PURE__ */ function() {
12
- "use strict";
13
- function CacheManager2(container) {
14
- _class_call_check(this, CacheManager2);
15
- this.container = container;
16
- }
17
- var _proto = CacheManager2.prototype;
18
- _proto.getCacheResult = function getCacheResult(req, cacheControl, render, ssrContext) {
19
- var _this = this;
20
- return _async_to_generator(function() {
21
- var key, value, maxAge, staleWhileRevalidate, ttl, cache, interval;
22
- return _ts_generator(this, function(_state) {
23
- switch (_state.label) {
24
- case 0:
25
- key = _this.computedKey(req, cacheControl);
26
- return [
27
- 4,
28
- _this.container.get(key)
29
- ];
30
- case 1:
31
- value = _state.sent();
32
- maxAge = cacheControl.maxAge, staleWhileRevalidate = cacheControl.staleWhileRevalidate;
33
- ttl = maxAge + staleWhileRevalidate;
34
- if (value) {
35
- cache = JSON.parse(value);
36
- interval = Date.now() - cache.cursor;
37
- if (interval <= maxAge) {
38
- return [
39
- 2,
40
- {
41
- data: cache.val,
42
- status: "hit"
43
- }
44
- ];
45
- } else if (interval <= staleWhileRevalidate + maxAge) {
46
- _this.processCache(key, render, ssrContext, ttl);
47
- return [
48
- 2,
49
- {
50
- data: cache.val,
51
- status: "stale"
52
- }
53
- ];
54
- } else {
55
- return [
56
- 2,
57
- _this.processCache(key, render, ssrContext, ttl, "expired")
58
- ];
59
- }
60
- } else {
61
- return [
62
- 2,
63
- _this.processCache(key, render, ssrContext, ttl, "miss")
64
- ];
65
- }
66
- return [
67
- 2
68
- ];
69
- }
70
- });
71
- })();
72
- };
73
- _proto.processCache = function processCache(key, render, ssrContext, ttl, status) {
74
- var _this = this;
75
- return _async_to_generator(function() {
76
- var renderResult, current, cache, body, html, stream;
77
- return _ts_generator(this, function(_state) {
78
- switch (_state.label) {
79
- case 0:
80
- return [
81
- 4,
82
- render(ssrContext)
83
- ];
84
- case 1:
85
- renderResult = _state.sent();
86
- if (!!renderResult)
87
- return [
88
- 3,
89
- 2
90
- ];
91
- return [
92
- 2,
93
- {
94
- data: ""
95
- }
96
- ];
97
- case 2:
98
- if (!(typeof renderResult === "string"))
99
- return [
100
- 3,
101
- 4
102
- ];
103
- current = Date.now();
104
- cache = {
105
- val: renderResult,
106
- cursor: current
107
- };
108
- return [
109
- 4,
110
- _this.container.set(key, JSON.stringify(cache), {
111
- ttl
112
- })
113
- ];
114
- case 3:
115
- _state.sent();
116
- return [
117
- 2,
118
- {
119
- data: renderResult,
120
- status
121
- }
122
- ];
123
- case 4:
124
- body = // TODO: remove node:stream, move it to ssr entry.
125
- _instanceof(renderResult, Readable) ? createReadableStreamFromReadable(renderResult) : renderResult;
126
- html = "";
127
- stream = createTransformStream(function(chunk) {
128
- html += chunk;
129
- return chunk;
130
- });
131
- stream.readable.getReader().closed.then(function() {
132
- var current2 = Date.now();
133
- var cache2 = {
134
- val: html,
135
- cursor: current2
136
- };
137
- _this.container.set(key, JSON.stringify(cache2), {
138
- ttl
139
- });
140
- });
141
- body.pipeThrough(stream);
142
- return [
143
- 2,
144
- {
145
- data: stream.readable,
146
- status
147
- }
148
- ];
149
- case 5:
150
- return [
151
- 2
152
- ];
153
- }
154
- });
155
- })();
156
- };
157
- _proto.computedKey = function computedKey(req, cacheControl) {
158
- var pathname = getPathname(req);
159
- var customKey = cacheControl.customKey;
160
- var defaultKey = pathname.replace(/.+\/+$/, "");
161
- if (customKey) {
162
- if (typeof customKey === "string") {
163
- return customKey;
164
- } else {
165
- return customKey(defaultKey);
166
- }
167
- } else {
168
- return defaultKey;
169
- }
170
- };
171
- return CacheManager2;
172
- }();
173
- var CACHE_FILENAME = "cache";
174
- var ServerCache = /* @__PURE__ */ function() {
175
- "use strict";
176
- function ServerCache2() {
177
- _class_call_check(this, ServerCache2);
178
- }
179
- var _proto = ServerCache2.prototype;
180
- _proto.loadCacheMod = function loadCacheMod() {
181
- var pwd = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : process.cwd();
182
- var _this = this;
183
- return _async_to_generator(function() {
184
- var path, serverCacheFilepath, mod, cacheStorage;
185
- return _ts_generator(this, function(_state) {
186
- switch (_state.label) {
187
- case 0:
188
- return [
189
- 4,
190
- import("path").catch(function() {
191
- return {};
192
- })
193
- ];
194
- case 1:
195
- path = _state.sent();
196
- serverCacheFilepath = path.resolve(pwd, SERVER_DIR, CACHE_FILENAME);
197
- mod = requireExistModule(serverCacheFilepath, {
198
- interop: false
199
- });
200
- _this.cacheOption = mod === null || mod === void 0 ? void 0 : mod.cacheOption;
201
- if (_this.cacheOption && !(mod === null || mod === void 0 ? void 0 : mod.customContainer)) {
202
- cacheStorage = createMemoryStorage("__ssr__cache");
203
- _this.customContainer = cacheStorage;
204
- } else {
205
- _this.customContainer = mod === null || mod === void 0 ? void 0 : mod.customContainer;
206
- }
207
- if (_this.customContainer) {
208
- _this.cacheManger = new CacheManager(_this.customContainer);
209
- }
210
- return [
211
- 2
212
- ];
213
- }
214
- });
215
- })();
216
- };
217
- _proto.matchCacheControl = function matchCacheControl(req) {
218
- var cacheOption = this.cacheOption;
219
- if (!cacheOption || !req) {
220
- return void 0;
221
- } else if (isCacheControl(cacheOption)) {
222
- return cacheOption;
223
- } else if (isCacheOptionProvider(cacheOption)) {
224
- return cacheOption(req);
225
- } else {
226
- var url = req.url;
227
- var options = Object.entries(cacheOption);
228
- var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;
229
- try {
230
- for (var _iterator = options[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
231
- var _step_value = _sliced_to_array(_step.value, 2), key = _step_value[0], option = _step_value[1];
232
- if (key === "*" || new RegExp(key).test(url)) {
233
- if (typeof option === "function") {
234
- return option(req);
235
- } else {
236
- return option;
237
- }
238
- }
239
- }
240
- } catch (err) {
241
- _didIteratorError = true;
242
- _iteratorError = err;
243
- } finally {
244
- try {
245
- if (!_iteratorNormalCompletion && _iterator.return != null) {
246
- _iterator.return();
247
- }
248
- } finally {
249
- if (_didIteratorError) {
250
- throw _iteratorError;
251
- }
252
- }
253
- }
254
- return void 0;
255
- }
256
- function isCacheOptionProvider(option2) {
257
- return typeof option2 === "function";
258
- }
259
- function isCacheControl(option2) {
260
- return typeof option2 === "object" && option2 !== null && "maxAge" in option2;
261
- }
262
- };
263
- _proto.getCache = function getCache(req, cacheControl, render, ssrContext) {
264
- var _this = this;
265
- return _async_to_generator(function() {
266
- var renderResult;
267
- return _ts_generator(this, function(_state) {
268
- switch (_state.label) {
269
- case 0:
270
- if (!_this.cacheManger)
271
- return [
272
- 3,
273
- 1
274
- ];
275
- return [
276
- 2,
277
- _this.cacheManger.getCacheResult(req, cacheControl, render, ssrContext)
278
- ];
279
- case 1:
280
- return [
281
- 4,
282
- render(ssrContext)
283
- ];
284
- case 2:
285
- renderResult = _state.sent();
286
- return [
287
- 2,
288
- {
289
- data: renderResult
290
- }
291
- ];
292
- case 3:
293
- return [
294
- 2
295
- ];
296
- }
297
- });
298
- })();
299
- };
300
- return ServerCache2;
301
- }();
302
- var ssrCache = new ServerCache();
303
- export {
304
- CacheManager,
305
- ssrCache
306
- };