@modern-js/server-core 2.48.1 → 2.48.3-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (204) hide show
  1. package/dist/cjs/base/adapters/node/bff.js +69 -0
  2. package/dist/cjs/base/adapters/node/hono.js +63 -0
  3. package/dist/cjs/base/adapters/node/index.js +54 -0
  4. package/dist/cjs/base/adapters/node/loadServer.js +56 -0
  5. package/dist/cjs/base/adapters/node/middlewares/index.js +28 -0
  6. package/dist/cjs/base/adapters/node/middlewares/mock.js +113 -0
  7. package/dist/cjs/base/adapters/node/middlewares/serverManifest.js +82 -0
  8. package/dist/cjs/base/adapters/node/middlewares/serverPublic.js +67 -0
  9. package/dist/cjs/base/adapters/node/middlewares/serverStatic.js +109 -0
  10. package/dist/cjs/base/adapters/node/middlewares/templates.js +67 -0
  11. package/dist/cjs/base/adapters/node/node.js +126 -0
  12. package/dist/cjs/base/adapters/node/polyfills/index.js +24 -0
  13. package/dist/cjs/base/adapters/node/polyfills/install.js +70 -0
  14. package/dist/cjs/base/adapters/node/polyfills/stream.js +153 -0
  15. package/dist/cjs/base/constants.js +58 -0
  16. package/dist/cjs/base/index.js +45 -0
  17. package/dist/cjs/base/middlewares/customServer/base.js +111 -0
  18. package/dist/cjs/base/middlewares/customServer/context.js +78 -0
  19. package/dist/cjs/base/middlewares/customServer/index.js +130 -0
  20. package/dist/cjs/base/middlewares/customServer/routerApi.js +44 -0
  21. package/dist/cjs/base/middlewares/customServer/template.js +58 -0
  22. package/dist/cjs/base/middlewares/faviconFallback.js +34 -0
  23. package/dist/cjs/base/middlewares/index.js +26 -0
  24. package/dist/cjs/base/middlewares/monitor.js +90 -0
  25. package/dist/cjs/base/middlewares/renderHandler/dataHandler.js +46 -0
  26. package/dist/cjs/base/middlewares/renderHandler/index.js +104 -0
  27. package/dist/cjs/base/middlewares/renderHandler/render.js +123 -0
  28. package/dist/cjs/base/middlewares/renderHandler/serverTiming.js +40 -0
  29. package/dist/cjs/base/middlewares/renderHandler/ssrCache.js +197 -0
  30. package/dist/cjs/base/middlewares/renderHandler/ssrRender.js +168 -0
  31. package/dist/cjs/base/serverBase.js +203 -0
  32. package/dist/cjs/base/utils/debug.js +29 -0
  33. package/dist/cjs/base/utils/entry.js +30 -0
  34. package/dist/cjs/base/utils/env.js +45 -0
  35. package/dist/cjs/base/utils/error.js +65 -0
  36. package/dist/cjs/base/utils/index.js +45 -0
  37. package/dist/cjs/base/utils/middlewareCollector.js +54 -0
  38. package/dist/cjs/base/utils/request.js +65 -0
  39. package/dist/cjs/base/utils/serverConfig.js +70 -0
  40. package/dist/cjs/base/utils/transformStream.js +61 -0
  41. package/dist/cjs/base/utils/warmup.js +43 -0
  42. package/dist/cjs/core/hono.js +16 -0
  43. package/dist/cjs/core/index.js +22 -0
  44. package/dist/cjs/{loadPlugins.js → core/loadPlugins.js} +4 -7
  45. package/dist/cjs/{plugin.js → core/plugin.js} +1 -3
  46. package/dist/cjs/core/render.js +16 -0
  47. package/dist/cjs/core/server.js +16 -0
  48. package/dist/cjs/index.js +6 -4
  49. package/dist/esm/base/adapters/node/bff.js +128 -0
  50. package/dist/esm/base/adapters/node/hono.js +83 -0
  51. package/dist/esm/base/adapters/node/index.js +19 -0
  52. package/dist/esm/base/adapters/node/loadServer.js +73 -0
  53. package/dist/esm/base/adapters/node/middlewares/index.js +4 -0
  54. package/dist/esm/base/adapters/node/middlewares/mock.js +198 -0
  55. package/dist/esm/base/adapters/node/middlewares/serverManifest.js +132 -0
  56. package/dist/esm/base/adapters/node/middlewares/serverPublic.js +85 -0
  57. package/dist/esm/base/adapters/node/middlewares/serverStatic.js +109 -0
  58. package/dist/esm/base/adapters/node/middlewares/templates.js +114 -0
  59. package/dist/esm/base/adapters/node/node.js +194 -0
  60. package/dist/esm/base/adapters/node/polyfills/index.js +2 -0
  61. package/dist/esm/base/adapters/node/polyfills/install.js +46 -0
  62. package/dist/esm/base/adapters/node/polyfills/stream.js +316 -0
  63. package/dist/esm/base/constants.js +31 -0
  64. package/dist/esm/base/index.js +14 -0
  65. package/dist/esm/base/middlewares/customServer/base.js +126 -0
  66. package/dist/esm/base/middlewares/customServer/context.js +70 -0
  67. package/dist/esm/base/middlewares/customServer/index.js +208 -0
  68. package/dist/esm/base/middlewares/customServer/routerApi.js +26 -0
  69. package/dist/esm/base/middlewares/customServer/template.js +47 -0
  70. package/dist/esm/base/middlewares/faviconFallback.js +28 -0
  71. package/dist/esm/base/middlewares/index.js +3 -0
  72. package/dist/esm/base/middlewares/monitor.js +157 -0
  73. package/dist/esm/base/middlewares/renderHandler/dataHandler.js +45 -0
  74. package/dist/esm/base/middlewares/renderHandler/index.js +163 -0
  75. package/dist/esm/base/middlewares/renderHandler/render.js +213 -0
  76. package/dist/esm/base/middlewares/renderHandler/serverTiming.js +21 -0
  77. package/dist/esm/base/middlewares/renderHandler/ssrCache.js +306 -0
  78. package/dist/esm/base/middlewares/renderHandler/ssrRender.js +226 -0
  79. package/dist/esm/base/serverBase.js +383 -0
  80. package/dist/esm/base/utils/debug.js +5 -0
  81. package/dist/esm/base/utils/entry.js +6 -0
  82. package/dist/esm/base/utils/env.js +20 -0
  83. package/dist/esm/base/utils/error.js +12 -0
  84. package/dist/esm/base/utils/index.js +13 -0
  85. package/dist/esm/base/utils/middlewareCollector.js +31 -0
  86. package/dist/esm/base/utils/request.js +39 -0
  87. package/dist/esm/base/utils/serverConfig.js +58 -0
  88. package/dist/esm/base/utils/transformStream.js +90 -0
  89. package/dist/esm/base/utils/warmup.js +9 -0
  90. package/dist/esm/core/hono.js +0 -0
  91. package/dist/esm/core/index.js +1 -0
  92. package/dist/esm/core/loadPlugins.js +26 -0
  93. package/dist/esm/core/plugin.js +98 -0
  94. package/dist/esm/core/render.js +0 -0
  95. package/dist/esm/core/server.js +0 -0
  96. package/dist/esm/index.js +3 -2
  97. package/dist/esm-node/base/adapters/node/bff.js +45 -0
  98. package/dist/esm-node/base/adapters/node/hono.js +38 -0
  99. package/dist/esm-node/base/adapters/node/index.js +19 -0
  100. package/dist/esm-node/base/adapters/node/loadServer.js +22 -0
  101. package/dist/esm-node/base/adapters/node/middlewares/index.js +4 -0
  102. package/dist/esm-node/base/adapters/node/middlewares/mock.js +79 -0
  103. package/dist/esm-node/base/adapters/node/middlewares/serverManifest.js +48 -0
  104. package/dist/esm-node/base/adapters/node/middlewares/serverPublic.js +33 -0
  105. package/dist/esm-node/base/adapters/node/middlewares/serverStatic.js +75 -0
  106. package/dist/esm-node/base/adapters/node/middlewares/templates.js +32 -0
  107. package/dist/esm-node/base/adapters/node/node.js +100 -0
  108. package/dist/esm-node/base/adapters/node/polyfills/index.js +2 -0
  109. package/dist/esm-node/base/adapters/node/polyfills/install.js +46 -0
  110. package/dist/esm-node/base/adapters/node/polyfills/stream.js +126 -0
  111. package/dist/esm-node/base/constants.js +31 -0
  112. package/dist/esm-node/base/index.js +14 -0
  113. package/dist/esm-node/base/middlewares/customServer/base.js +87 -0
  114. package/dist/esm-node/base/middlewares/customServer/context.js +51 -0
  115. package/dist/esm-node/base/middlewares/customServer/index.js +106 -0
  116. package/dist/esm-node/base/middlewares/customServer/routerApi.js +20 -0
  117. package/dist/esm-node/base/middlewares/customServer/template.js +34 -0
  118. package/dist/esm-node/base/middlewares/faviconFallback.js +10 -0
  119. package/dist/esm-node/base/middlewares/index.js +3 -0
  120. package/dist/esm-node/base/middlewares/monitor.js +63 -0
  121. package/dist/esm-node/base/middlewares/renderHandler/dataHandler.js +22 -0
  122. package/dist/esm-node/base/middlewares/renderHandler/index.js +69 -0
  123. package/dist/esm-node/base/middlewares/renderHandler/render.js +99 -0
  124. package/dist/esm-node/base/middlewares/renderHandler/serverTiming.js +16 -0
  125. package/dist/esm-node/base/middlewares/renderHandler/ssrCache.js +162 -0
  126. package/dist/esm-node/base/middlewares/renderHandler/ssrRender.js +134 -0
  127. package/dist/esm-node/base/serverBase.js +168 -0
  128. package/dist/esm-node/base/utils/debug.js +5 -0
  129. package/dist/esm-node/base/utils/entry.js +6 -0
  130. package/dist/esm-node/base/utils/env.js +20 -0
  131. package/dist/esm-node/base/utils/error.js +41 -0
  132. package/dist/esm-node/base/utils/index.js +13 -0
  133. package/dist/esm-node/base/utils/middlewareCollector.js +29 -0
  134. package/dist/esm-node/base/utils/request.js +38 -0
  135. package/dist/esm-node/base/utils/serverConfig.js +34 -0
  136. package/dist/esm-node/base/utils/transformStream.js +36 -0
  137. package/dist/esm-node/base/utils/warmup.js +9 -0
  138. package/dist/esm-node/core/hono.js +0 -0
  139. package/dist/esm-node/core/index.js +1 -0
  140. package/dist/{esm → esm-node/core}/loadPlugins.js +4 -7
  141. package/dist/{esm → esm-node/core}/plugin.js +1 -3
  142. package/dist/esm-node/core/render.js +0 -0
  143. package/dist/esm-node/core/server.js +0 -0
  144. package/dist/esm-node/index.js +5 -0
  145. package/dist/esm-node/types/config/bff.js +0 -0
  146. package/dist/esm-node/types/config/dev.js +0 -0
  147. package/dist/esm-node/types/config/html.js +0 -0
  148. package/dist/esm-node/types/config/index.js +6 -0
  149. package/dist/esm-node/types/config/output.js +0 -0
  150. package/dist/esm-node/types/config/security.js +0 -0
  151. package/dist/esm-node/types/config/server.js +0 -0
  152. package/dist/esm-node/types/config/share.js +0 -0
  153. package/dist/esm-node/types/config/source.js +0 -0
  154. package/dist/esm-node/types/config/tools.js +0 -0
  155. package/dist/types/base/adapters/node/bff.d.ts +4 -0
  156. package/dist/types/base/adapters/node/hono.d.ts +22 -0
  157. package/dist/types/base/adapters/node/index.d.ts +6 -0
  158. package/dist/types/base/adapters/node/loadServer.d.ts +3 -0
  159. package/dist/types/base/adapters/node/middlewares/index.d.ts +4 -0
  160. package/dist/types/base/adapters/node/middlewares/mock.d.ts +5 -0
  161. package/dist/types/base/adapters/node/middlewares/serverManifest.d.ts +3 -0
  162. package/dist/types/base/adapters/node/middlewares/serverPublic.d.ts +7 -0
  163. package/dist/types/base/adapters/node/middlewares/serverStatic.d.ts +11 -0
  164. package/dist/types/base/adapters/node/middlewares/templates.d.ts +4 -0
  165. package/dist/types/base/adapters/node/node.d.ts +12 -0
  166. package/dist/types/base/adapters/node/polyfills/index.d.ts +2 -0
  167. package/dist/types/base/adapters/node/polyfills/install.d.ts +1 -0
  168. package/dist/types/base/adapters/node/polyfills/stream.d.ts +18 -0
  169. package/dist/types/base/constants.d.ts +24 -0
  170. package/dist/types/base/index.d.ts +7 -0
  171. package/dist/types/base/middlewares/customServer/base.d.ts +3 -0
  172. package/dist/types/base/middlewares/customServer/context.d.ts +7 -0
  173. package/dist/types/base/middlewares/customServer/index.d.ts +13 -0
  174. package/dist/types/base/middlewares/customServer/routerApi.d.ts +9 -0
  175. package/dist/types/base/middlewares/customServer/template.d.ts +11 -0
  176. package/dist/types/base/middlewares/faviconFallback.d.ts +2 -0
  177. package/dist/types/base/middlewares/index.d.ts +3 -0
  178. package/dist/types/base/middlewares/monitor.d.ts +6 -0
  179. package/dist/types/base/middlewares/renderHandler/dataHandler.d.ts +5 -0
  180. package/dist/types/base/middlewares/renderHandler/index.d.ts +9 -0
  181. package/dist/types/base/middlewares/renderHandler/render.d.ts +12 -0
  182. package/dist/types/base/middlewares/renderHandler/serverTiming.d.ts +7 -0
  183. package/dist/types/base/middlewares/renderHandler/ssrCache.d.ts +29 -0
  184. package/dist/types/base/middlewares/renderHandler/ssrRender.d.ts +18 -0
  185. package/dist/types/base/serverBase.d.ts +52 -0
  186. package/dist/types/base/utils/debug.d.ts +1 -0
  187. package/dist/types/base/utils/entry.d.ts +2 -0
  188. package/dist/types/base/utils/env.d.ts +2 -0
  189. package/dist/types/base/utils/error.d.ts +1 -0
  190. package/dist/types/base/utils/index.d.ts +8 -0
  191. package/dist/types/base/utils/middlewareCollector.d.ts +12 -0
  192. package/dist/types/base/utils/request.d.ts +12 -0
  193. package/dist/types/base/utils/serverConfig.d.ts +14 -0
  194. package/dist/types/base/utils/transformStream.d.ts +5 -0
  195. package/dist/types/base/utils/warmup.d.ts +1 -0
  196. package/dist/types/core/hono.d.ts +1 -0
  197. package/dist/types/core/index.d.ts +1 -0
  198. package/dist/types/core/loadPlugins.d.ts +3 -0
  199. package/dist/types/{plugin.d.ts → core/plugin.d.ts} +32 -35
  200. package/dist/types/core/render.d.ts +13 -0
  201. package/dist/types/core/server.d.ts +99 -0
  202. package/dist/types/index.d.ts +3 -2
  203. package/package.json +41 -6
  204. package/dist/types/loadPlugins.d.ts +0 -5
@@ -0,0 +1,45 @@
1
+ import { _ as _async_to_generator } from "@swc/helpers/_/_async_to_generator";
2
+ import { _ as _ts_generator } from "@swc/helpers/_/_ts_generator";
3
+ import { MAIN_ENTRY_NAME } from "@modern-js/utils/universal/constants";
4
+ var dataHandler = function() {
5
+ var _ref = _async_to_generator(function(request, param) {
6
+ var routeInfo, serverRoutes, reporter, logger, serverManifest, _serverManifest_loaderBundles, serverLoaderModule, routes, handleRequest, response;
7
+ return _ts_generator(this, function(_state) {
8
+ switch (_state.label) {
9
+ case 0:
10
+ routeInfo = param.routeInfo, serverRoutes = param.serverRoutes, reporter = param.reporter, logger = param.logger, serverManifest = param.serverManifest;
11
+ serverLoaderModule = serverManifest === null || serverManifest === void 0 ? void 0 : (_serverManifest_loaderBundles = serverManifest.loaderBundles) === null || _serverManifest_loaderBundles === void 0 ? void 0 : _serverManifest_loaderBundles[routeInfo.entryName || MAIN_ENTRY_NAME];
12
+ if (!serverLoaderModule) {
13
+ return [
14
+ 2
15
+ ];
16
+ }
17
+ routes = serverLoaderModule.routes, handleRequest = serverLoaderModule.handleRequest;
18
+ return [
19
+ 4,
20
+ handleRequest({
21
+ request,
22
+ serverRoutes,
23
+ context: {
24
+ logger,
25
+ reporter
26
+ },
27
+ routes
28
+ })
29
+ ];
30
+ case 1:
31
+ response = _state.sent();
32
+ return [
33
+ 2,
34
+ response
35
+ ];
36
+ }
37
+ });
38
+ });
39
+ return function dataHandler2(request, _) {
40
+ return _ref.apply(this, arguments);
41
+ };
42
+ }();
43
+ export {
44
+ dataHandler
45
+ };
@@ -0,0 +1,163 @@
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, 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
+ request = c.req.raw;
19
+ nodeReq = (_c_env_node = c.env.node) === null || _c_env_node === void 0 ? void 0 : _c_env_node.req;
20
+ return [
21
+ 4,
22
+ render(request, {
23
+ logger,
24
+ nodeReq,
25
+ reporter,
26
+ templates,
27
+ serverManifest
28
+ })
29
+ ];
30
+ case 1:
31
+ res = _state.sent();
32
+ return [
33
+ 2,
34
+ res
35
+ ];
36
+ }
37
+ });
38
+ });
39
+ return function(c, _) {
40
+ return _ref.apply(this, arguments);
41
+ };
42
+ }();
43
+ }
44
+ function getRenderHandler(options) {
45
+ return _getRenderHandler.apply(this, arguments);
46
+ }
47
+ function _getRenderHandler() {
48
+ _getRenderHandler = _async_to_generator(function(options) {
49
+ var routes, pwd, config, _config_server, _options_config_security, ssrConfig, forceCSR, render;
50
+ return _ts_generator(this, function(_state) {
51
+ routes = options.routes, pwd = options.pwd, config = options.config;
52
+ if (routes && routes.length > 0) {
53
+ ;
54
+ ssrConfig = (_config_server = config.server) === null || _config_server === void 0 ? void 0 : _config_server.ssr;
55
+ forceCSR = typeof ssrConfig === "object" ? ssrConfig.forceCSR : false;
56
+ render = createRender({
57
+ routes,
58
+ pwd,
59
+ staticGenerate: options.staticGenerate,
60
+ metaName: options.metaName || "modern-js",
61
+ forceCSR,
62
+ nonce: (_options_config_security = options.config.security) === null || _options_config_security === void 0 ? void 0 : _options_config_security.nonce
63
+ });
64
+ return [
65
+ 2,
66
+ render
67
+ ];
68
+ }
69
+ return [
70
+ 2,
71
+ null
72
+ ];
73
+ });
74
+ });
75
+ return _getRenderHandler.apply(this, arguments);
76
+ }
77
+ function bindRenderHandler(server, options) {
78
+ return _bindRenderHandler.apply(this, arguments);
79
+ }
80
+ function _bindRenderHandler() {
81
+ _bindRenderHandler = _async_to_generator(function(server, options) {
82
+ var routes, pwd, runner, customServer, cacheModuleName, ssrCache, pageRoutes, _iteratorNormalCompletion, _didIteratorError, _iteratorError, _iterator, _step, route, originUrlPath, entryName, urlPath, customServerHookMiddleware, customServerMiddleware, render;
83
+ return _ts_generator(this, function(_state) {
84
+ switch (_state.label) {
85
+ case 0:
86
+ routes = options.routes, pwd = options.pwd;
87
+ runner = server.runner;
88
+ if (!(routes && routes.length > 0))
89
+ return [
90
+ 3,
91
+ 5
92
+ ];
93
+ customServer = new CustomServer(runner, server, pwd);
94
+ if (!(getRuntimeEnv() === "node"))
95
+ return [
96
+ 3,
97
+ 3
98
+ ];
99
+ cacheModuleName = "./ssrCache";
100
+ return [
101
+ 4,
102
+ import(cacheModuleName)
103
+ ];
104
+ case 1:
105
+ ssrCache = _state.sent().ssrCache;
106
+ return [
107
+ 4,
108
+ ssrCache.loadCacheMod(checkIsProd() ? pwd : void 0)
109
+ ];
110
+ case 2:
111
+ _state.sent();
112
+ _state.label = 3;
113
+ case 3:
114
+ pageRoutes = routes.filter(function(route2) {
115
+ return !route2.isApi;
116
+ }).sort(sortRoutes);
117
+ _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;
118
+ try {
119
+ for (_iterator = pageRoutes[Symbol.iterator](); !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
120
+ route = _step.value;
121
+ originUrlPath = route.urlPath, entryName = route.entryName;
122
+ urlPath = originUrlPath.endsWith("/") ? "".concat(originUrlPath, "*") : "".concat(originUrlPath, "/*");
123
+ customServerHookMiddleware = customServer.getHookMiddleware(entryName || "main", routes);
124
+ server.use(urlPath, initReporter(entryName));
125
+ server.use(urlPath, customServerHookMiddleware);
126
+ customServerMiddleware = customServer.getServerMiddleware();
127
+ server.use(urlPath, customServerMiddleware);
128
+ }
129
+ } catch (err) {
130
+ _didIteratorError = true;
131
+ _iteratorError = err;
132
+ } finally {
133
+ try {
134
+ if (!_iteratorNormalCompletion && _iterator.return != null) {
135
+ _iterator.return();
136
+ }
137
+ } finally {
138
+ if (_didIteratorError) {
139
+ throw _iteratorError;
140
+ }
141
+ }
142
+ }
143
+ return [
144
+ 4,
145
+ getRenderHandler(options)
146
+ ];
147
+ case 4:
148
+ render = _state.sent();
149
+ render && server.all("*", createRenderHandler(render));
150
+ _state.label = 5;
151
+ case 5:
152
+ return [
153
+ 2
154
+ ];
155
+ }
156
+ });
157
+ });
158
+ return _bindRenderHandler.apply(this, arguments);
159
+ }
160
+ export {
161
+ bindRenderHandler,
162
+ getRenderHandler
163
+ };
@@ -0,0 +1,213 @@
1
+ import { _ as _async_to_generator } from "@swc/helpers/_/_async_to_generator";
2
+ import { _ as _ts_generator } from "@swc/helpers/_/_ts_generator";
3
+ import { REPLACE_REG } from "../../../base/constants";
4
+ import { createErrorHtml, sortRoutes, cutNameByHyphen, parseQuery, transformResponse, getPathname } from "../../utils";
5
+ import { dataHandler } from "./dataHandler";
6
+ import { ssrRender } from "./ssrRender";
7
+ function createRender(_) {
8
+ return _createRender.apply(this, arguments);
9
+ }
10
+ function _createRender() {
11
+ _createRender = _async_to_generator(function(param) {
12
+ var routes, pwd, metaName, staticGenerate, forceCSR, nonce;
13
+ return _ts_generator(this, function(_state) {
14
+ routes = param.routes, pwd = param.pwd, metaName = param.metaName, staticGenerate = param.staticGenerate, forceCSR = param.forceCSR, nonce = param.nonce;
15
+ return [
16
+ 2,
17
+ function() {
18
+ var _ref = _async_to_generator(function(req, param2) {
19
+ var logger, nodeReq, reporter, templates, serverManifest, routeInfo, html, renderMode, renderOptions, response;
20
+ return _ts_generator(this, function(_state2) {
21
+ switch (_state2.label) {
22
+ case 0:
23
+ logger = param2.logger, nodeReq = param2.nodeReq, reporter = param2.reporter, templates = param2.templates, serverManifest = param2.serverManifest;
24
+ routeInfo = matchRoute(req, routes);
25
+ if (!routeInfo) {
26
+ return [
27
+ 2,
28
+ new Response(createErrorHtml(404), {
29
+ status: 404,
30
+ headers: {
31
+ "content-type": "text/html; charset=UTF-8"
32
+ }
33
+ })
34
+ ];
35
+ }
36
+ html = templates[routeInfo.entryName];
37
+ if (!html) {
38
+ throw new Error("Can't found entry ".concat(routeInfo.entryName, " html "));
39
+ }
40
+ renderMode = getRenderMode(req, metaName || "modern-js", routeInfo.isSSR, forceCSR);
41
+ renderOptions = {
42
+ pwd,
43
+ html,
44
+ routeInfo,
45
+ staticGenerate: staticGenerate || false,
46
+ metaName: metaName || "modern-js",
47
+ nonce,
48
+ logger,
49
+ nodeReq,
50
+ reporter,
51
+ serverRoutes: routes,
52
+ serverManifest
53
+ };
54
+ switch (renderMode) {
55
+ case "data":
56
+ return [
57
+ 3,
58
+ 1
59
+ ];
60
+ case "ssr":
61
+ return [
62
+ 3,
63
+ 5
64
+ ];
65
+ case "csr":
66
+ return [
67
+ 3,
68
+ 5
69
+ ];
70
+ }
71
+ return [
72
+ 3,
73
+ 6
74
+ ];
75
+ case 1:
76
+ return [
77
+ 4,
78
+ dataHandler(req, renderOptions)
79
+ ];
80
+ case 2:
81
+ response = _state2.sent();
82
+ if (!!response)
83
+ return [
84
+ 3,
85
+ 4
86
+ ];
87
+ return [
88
+ 4,
89
+ renderHandler(req, renderOptions, "ssr")
90
+ ];
91
+ case 3:
92
+ response = _state2.sent();
93
+ _state2.label = 4;
94
+ case 4:
95
+ return [
96
+ 2,
97
+ response
98
+ ];
99
+ case 5:
100
+ return [
101
+ 2,
102
+ renderHandler(req, renderOptions, renderMode)
103
+ ];
104
+ case 6:
105
+ throw new Error("Unknown render mode: ".concat(renderMode));
106
+ case 7:
107
+ return [
108
+ 2
109
+ ];
110
+ }
111
+ });
112
+ });
113
+ return function(req, _) {
114
+ return _ref.apply(this, arguments);
115
+ };
116
+ }()
117
+ ];
118
+ });
119
+ });
120
+ return _createRender.apply(this, arguments);
121
+ }
122
+ function renderHandler(request, options, mode) {
123
+ return _renderHandler.apply(this, arguments);
124
+ }
125
+ function _renderHandler() {
126
+ _renderHandler = _async_to_generator(function(request, options, mode) {
127
+ var serverData, response;
128
+ return _ts_generator(this, function(_state) {
129
+ switch (_state.label) {
130
+ case 0:
131
+ serverData = {
132
+ router: {
133
+ baseUrl: options.routeInfo.urlPath,
134
+ params: {}
135
+ }
136
+ };
137
+ return [
138
+ 4,
139
+ mode === "ssr" ? ssrRender(request, options) : csrRender(options.html)
140
+ ];
141
+ case 1:
142
+ response = _state.sent();
143
+ return [
144
+ 2,
145
+ transformResponse(response, injectServerData(serverData))
146
+ ];
147
+ }
148
+ });
149
+ });
150
+ return _renderHandler.apply(this, arguments);
151
+ }
152
+ function matchRoute(req, routes) {
153
+ var sorted = routes.sort(sortRoutes);
154
+ var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;
155
+ try {
156
+ for (var _iterator = sorted[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
157
+ var route = _step.value;
158
+ var pathname = getPathname(req);
159
+ if (pathname.startsWith(route.urlPath)) {
160
+ return route;
161
+ }
162
+ }
163
+ } catch (err) {
164
+ _didIteratorError = true;
165
+ _iteratorError = err;
166
+ } finally {
167
+ try {
168
+ if (!_iteratorNormalCompletion && _iterator.return != null) {
169
+ _iterator.return();
170
+ }
171
+ } finally {
172
+ if (_didIteratorError) {
173
+ throw _iteratorError;
174
+ }
175
+ }
176
+ }
177
+ return void 0;
178
+ }
179
+ function getRenderMode(req, framework, isSSR, forceCSR) {
180
+ var query = parseQuery(req);
181
+ if (isSSR) {
182
+ if (query.__loader) {
183
+ return "data";
184
+ }
185
+ if (forceCSR && (query.csr || req.headers.get("x-".concat(cutNameByHyphen(framework), "-ssr-fallback")))) {
186
+ return "csr";
187
+ }
188
+ return "ssr";
189
+ } else {
190
+ return "csr";
191
+ }
192
+ }
193
+ function csrRender(html) {
194
+ return new Response(html, {
195
+ status: 200,
196
+ headers: new Headers({
197
+ "content-type": "text/html; charset=UTF-8"
198
+ })
199
+ });
200
+ }
201
+ function injectServerData(serverData) {
202
+ var head = REPLACE_REG.before.head;
203
+ var searchValue = new RegExp(head);
204
+ var replcaeCb = function(beforeHead) {
205
+ return "".concat(beforeHead, '<script type="application/json" id="__MODERN_SERVER_DATA__">').concat(JSON.stringify(serverData), "</script>");
206
+ };
207
+ return function(template) {
208
+ return template.replace(searchValue, replcaeCb);
209
+ };
210
+ }
211
+ export {
212
+ createRender
213
+ };
@@ -0,0 +1,21 @@
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
+ };