@modern-js/server-core 2.48.5-alpha.1 → 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 (213) 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/hono.js +0 -16
  55. package/dist/cjs/core/index.js +0 -22
  56. package/dist/cjs/core/render.js +0 -16
  57. package/dist/cjs/core/server.js +0 -16
  58. package/dist/esm/base/adapters/node/bff.js +0 -128
  59. package/dist/esm/base/adapters/node/hono.js +0 -83
  60. package/dist/esm/base/adapters/node/index.js +0 -19
  61. package/dist/esm/base/adapters/node/loadServer.js +0 -73
  62. package/dist/esm/base/adapters/node/middlewares/index.js +0 -4
  63. package/dist/esm/base/adapters/node/middlewares/mock.js +0 -198
  64. package/dist/esm/base/adapters/node/middlewares/serverManifest.js +0 -132
  65. package/dist/esm/base/adapters/node/middlewares/serverPublic.js +0 -85
  66. package/dist/esm/base/adapters/node/middlewares/serverStatic.js +0 -119
  67. package/dist/esm/base/adapters/node/middlewares/templates.js +0 -114
  68. package/dist/esm/base/adapters/node/node.js +0 -197
  69. package/dist/esm/base/adapters/node/polyfills/index.js +0 -2
  70. package/dist/esm/base/adapters/node/polyfills/install.js +0 -48
  71. package/dist/esm/base/adapters/node/polyfills/stream.js +0 -316
  72. package/dist/esm/base/constants.js +0 -31
  73. package/dist/esm/base/index.js +0 -16
  74. package/dist/esm/base/middlewares/customServer/base.js +0 -182
  75. package/dist/esm/base/middlewares/customServer/context.js +0 -68
  76. package/dist/esm/base/middlewares/customServer/index.js +0 -214
  77. package/dist/esm/base/middlewares/customServer/routerApi.js +0 -26
  78. package/dist/esm/base/middlewares/customServer/template.js +0 -47
  79. package/dist/esm/base/middlewares/faviconFallback.js +0 -28
  80. package/dist/esm/base/middlewares/frameworkHeader.js +0 -27
  81. package/dist/esm/base/middlewares/index.js +0 -5
  82. package/dist/esm/base/middlewares/logger.js +0 -75
  83. package/dist/esm/base/middlewares/monitor.js +0 -157
  84. package/dist/esm/base/middlewares/renderHandler/dataHandler.js +0 -45
  85. package/dist/esm/base/middlewares/renderHandler/index.js +0 -165
  86. package/dist/esm/base/middlewares/renderHandler/render.js +0 -216
  87. package/dist/esm/base/middlewares/renderHandler/serverTiming.js +0 -21
  88. package/dist/esm/base/middlewares/renderHandler/ssrCache.js +0 -306
  89. package/dist/esm/base/middlewares/renderHandler/ssrRender.js +0 -265
  90. package/dist/esm/base/serverBase.js +0 -383
  91. package/dist/esm/base/utils/debug.js +0 -5
  92. package/dist/esm/base/utils/entry.js +0 -6
  93. package/dist/esm/base/utils/env.js +0 -20
  94. package/dist/esm/base/utils/error.js +0 -12
  95. package/dist/esm/base/utils/index.js +0 -7
  96. package/dist/esm/base/utils/middlewareCollector.js +0 -31
  97. package/dist/esm/base/utils/request.js +0 -39
  98. package/dist/esm/base/utils/serverConfig.js +0 -58
  99. package/dist/esm/base/utils/transformStream.js +0 -90
  100. package/dist/esm/base/utils/warmup.js +0 -9
  101. package/dist/esm/core/hono.js +0 -0
  102. package/dist/esm/core/index.js +0 -1
  103. package/dist/esm/core/loadPlugins.js +0 -26
  104. package/dist/esm/core/plugin.js +0 -59
  105. package/dist/esm/core/render.js +0 -0
  106. package/dist/esm/core/server.js +0 -0
  107. package/dist/esm-node/base/adapters/node/bff.js +0 -46
  108. package/dist/esm-node/base/adapters/node/hono.js +0 -38
  109. package/dist/esm-node/base/adapters/node/index.js +0 -19
  110. package/dist/esm-node/base/adapters/node/loadServer.js +0 -22
  111. package/dist/esm-node/base/adapters/node/middlewares/index.js +0 -4
  112. package/dist/esm-node/base/adapters/node/middlewares/mock.js +0 -79
  113. package/dist/esm-node/base/adapters/node/middlewares/serverManifest.js +0 -48
  114. package/dist/esm-node/base/adapters/node/middlewares/serverPublic.js +0 -33
  115. package/dist/esm-node/base/adapters/node/middlewares/serverStatic.js +0 -75
  116. package/dist/esm-node/base/adapters/node/middlewares/templates.js +0 -32
  117. package/dist/esm-node/base/adapters/node/node.js +0 -101
  118. package/dist/esm-node/base/adapters/node/polyfills/index.js +0 -2
  119. package/dist/esm-node/base/adapters/node/polyfills/install.js +0 -48
  120. package/dist/esm-node/base/adapters/node/polyfills/stream.js +0 -126
  121. package/dist/esm-node/base/constants.js +0 -31
  122. package/dist/esm-node/base/index.js +0 -16
  123. package/dist/esm-node/base/middlewares/customServer/base.js +0 -130
  124. package/dist/esm-node/base/middlewares/customServer/context.js +0 -46
  125. package/dist/esm-node/base/middlewares/customServer/index.js +0 -106
  126. package/dist/esm-node/base/middlewares/customServer/routerApi.js +0 -20
  127. package/dist/esm-node/base/middlewares/customServer/template.js +0 -34
  128. package/dist/esm-node/base/middlewares/faviconFallback.js +0 -10
  129. package/dist/esm-node/base/middlewares/frameworkHeader.js +0 -7
  130. package/dist/esm-node/base/middlewares/index.js +0 -5
  131. package/dist/esm-node/base/middlewares/logger.js +0 -53
  132. package/dist/esm-node/base/middlewares/monitor.js +0 -63
  133. package/dist/esm-node/base/middlewares/renderHandler/dataHandler.js +0 -22
  134. package/dist/esm-node/base/middlewares/renderHandler/index.js +0 -71
  135. package/dist/esm-node/base/middlewares/renderHandler/render.js +0 -102
  136. package/dist/esm-node/base/middlewares/renderHandler/serverTiming.js +0 -16
  137. package/dist/esm-node/base/middlewares/renderHandler/ssrCache.js +0 -162
  138. package/dist/esm-node/base/middlewares/renderHandler/ssrRender.js +0 -173
  139. package/dist/esm-node/base/serverBase.js +0 -168
  140. package/dist/esm-node/base/utils/debug.js +0 -5
  141. package/dist/esm-node/base/utils/entry.js +0 -6
  142. package/dist/esm-node/base/utils/env.js +0 -20
  143. package/dist/esm-node/base/utils/error.js +0 -41
  144. package/dist/esm-node/base/utils/index.js +0 -7
  145. package/dist/esm-node/base/utils/middlewareCollector.js +0 -29
  146. package/dist/esm-node/base/utils/request.js +0 -38
  147. package/dist/esm-node/base/utils/serverConfig.js +0 -34
  148. package/dist/esm-node/base/utils/transformStream.js +0 -36
  149. package/dist/esm-node/base/utils/warmup.js +0 -9
  150. package/dist/esm-node/core/hono.js +0 -0
  151. package/dist/esm-node/core/index.js +0 -1
  152. package/dist/esm-node/core/render.js +0 -0
  153. package/dist/esm-node/core/server.js +0 -0
  154. package/dist/esm-node/index.js +0 -5
  155. package/dist/esm-node/types/config/bff.js +0 -0
  156. package/dist/esm-node/types/config/dev.js +0 -0
  157. package/dist/esm-node/types/config/html.js +0 -0
  158. package/dist/esm-node/types/config/index.js +0 -6
  159. package/dist/esm-node/types/config/output.js +0 -0
  160. package/dist/esm-node/types/config/security.js +0 -0
  161. package/dist/esm-node/types/config/server.js +0 -0
  162. package/dist/esm-node/types/config/share.js +0 -0
  163. package/dist/esm-node/types/config/source.js +0 -0
  164. package/dist/esm-node/types/config/tools.js +0 -0
  165. package/dist/types/base/adapters/node/bff.d.ts +0 -4
  166. package/dist/types/base/adapters/node/hono.d.ts +0 -22
  167. package/dist/types/base/adapters/node/index.d.ts +0 -6
  168. package/dist/types/base/adapters/node/loadServer.d.ts +0 -3
  169. package/dist/types/base/adapters/node/middlewares/index.d.ts +0 -4
  170. package/dist/types/base/adapters/node/middlewares/mock.d.ts +0 -5
  171. package/dist/types/base/adapters/node/middlewares/serverManifest.d.ts +0 -3
  172. package/dist/types/base/adapters/node/middlewares/serverPublic.d.ts +0 -7
  173. package/dist/types/base/adapters/node/middlewares/serverStatic.d.ts +0 -11
  174. package/dist/types/base/adapters/node/middlewares/templates.d.ts +0 -4
  175. package/dist/types/base/adapters/node/node.d.ts +0 -13
  176. package/dist/types/base/adapters/node/polyfills/index.d.ts +0 -2
  177. package/dist/types/base/adapters/node/polyfills/install.d.ts +0 -1
  178. package/dist/types/base/adapters/node/polyfills/stream.d.ts +0 -18
  179. package/dist/types/base/constants.d.ts +0 -24
  180. package/dist/types/base/index.d.ts +0 -7
  181. package/dist/types/base/middlewares/customServer/base.d.ts +0 -3
  182. package/dist/types/base/middlewares/customServer/context.d.ts +0 -7
  183. package/dist/types/base/middlewares/customServer/index.d.ts +0 -13
  184. package/dist/types/base/middlewares/customServer/routerApi.d.ts +0 -9
  185. package/dist/types/base/middlewares/customServer/template.d.ts +0 -11
  186. package/dist/types/base/middlewares/faviconFallback.d.ts +0 -2
  187. package/dist/types/base/middlewares/frameworkHeader.d.ts +0 -2
  188. package/dist/types/base/middlewares/index.d.ts +0 -5
  189. package/dist/types/base/middlewares/logger.d.ts +0 -2
  190. package/dist/types/base/middlewares/monitor.d.ts +0 -6
  191. package/dist/types/base/middlewares/renderHandler/dataHandler.d.ts +0 -5
  192. package/dist/types/base/middlewares/renderHandler/index.d.ts +0 -10
  193. package/dist/types/base/middlewares/renderHandler/render.d.ts +0 -12
  194. package/dist/types/base/middlewares/renderHandler/serverTiming.d.ts +0 -7
  195. package/dist/types/base/middlewares/renderHandler/ssrCache.d.ts +0 -29
  196. package/dist/types/base/middlewares/renderHandler/ssrRender.d.ts +0 -21
  197. package/dist/types/base/serverBase.d.ts +0 -52
  198. package/dist/types/base/utils/debug.d.ts +0 -1
  199. package/dist/types/base/utils/entry.d.ts +0 -2
  200. package/dist/types/base/utils/env.d.ts +0 -2
  201. package/dist/types/base/utils/error.d.ts +0 -1
  202. package/dist/types/base/utils/index.d.ts +0 -7
  203. package/dist/types/base/utils/middlewareCollector.d.ts +0 -12
  204. package/dist/types/base/utils/request.d.ts +0 -12
  205. package/dist/types/base/utils/serverConfig.d.ts +0 -14
  206. package/dist/types/base/utils/transformStream.d.ts +0 -5
  207. package/dist/types/base/utils/warmup.d.ts +0 -1
  208. package/dist/types/core/hono.d.ts +0 -1
  209. package/dist/types/core/index.d.ts +0 -1
  210. package/dist/types/core/loadPlugins.d.ts +0 -3
  211. package/dist/types/core/plugin.d.ts +0 -202
  212. package/dist/types/core/render.d.ts +0 -15
  213. package/dist/types/core/server.d.ts +0 -94
@@ -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
- };