@modern-js/server-core 2.48.6 → 2.49.1-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (209) hide show
  1. package/dist/cjs/base/adapters/node/bff.js +70 -0
  2. package/dist/cjs/base/adapters/node/hono.js +63 -0
  3. package/dist/cjs/base/adapters/node/index.js +56 -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 +90 -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 +127 -0
  12. package/dist/cjs/base/adapters/node/polyfills/index.js +24 -0
  13. package/dist/cjs/base/adapters/node/polyfills/install.js +72 -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 +49 -0
  17. package/dist/cjs/base/middlewares/customServer/base.js +171 -0
  18. package/dist/cjs/base/middlewares/customServer/context.js +73 -0
  19. package/dist/cjs/base/middlewares/customServer/index.js +136 -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/frameworkHeader.js +31 -0
  24. package/dist/cjs/base/middlewares/index.js +30 -0
  25. package/dist/cjs/base/middlewares/logger.js +77 -0
  26. package/dist/cjs/base/middlewares/monitor.js +90 -0
  27. package/dist/cjs/base/middlewares/renderHandler/dataHandler.js +46 -0
  28. package/dist/cjs/base/middlewares/renderHandler/index.js +108 -0
  29. package/dist/cjs/base/middlewares/renderHandler/render.js +132 -0
  30. package/dist/cjs/base/middlewares/renderHandler/serverTiming.js +40 -0
  31. package/dist/cjs/base/middlewares/renderHandler/ssrCache.js +197 -0
  32. package/dist/cjs/base/middlewares/renderHandler/ssrRender.js +212 -0
  33. package/dist/cjs/base/serverBase.js +203 -0
  34. package/dist/cjs/base/utils/debug.js +29 -0
  35. package/dist/cjs/base/utils/entry.js +30 -0
  36. package/dist/cjs/base/utils/env.js +45 -0
  37. package/dist/cjs/base/utils/error.js +65 -0
  38. package/dist/cjs/base/utils/index.js +34 -0
  39. package/dist/cjs/base/utils/middlewareCollector.js +54 -0
  40. package/dist/cjs/base/utils/request.js +65 -0
  41. package/dist/cjs/base/utils/serverConfig.js +70 -0
  42. package/dist/cjs/base/utils/transformStream.js +61 -0
  43. package/dist/cjs/base/utils/warmup.js +43 -0
  44. package/dist/cjs/core/index.js +22 -0
  45. package/dist/cjs/{loadPlugins.js → core/loadPlugins.js} +4 -7
  46. package/dist/cjs/{plugin.js → core/plugin.js} +1 -42
  47. package/dist/cjs/core/render.js +16 -0
  48. package/dist/cjs/core/server.js +16 -0
  49. package/dist/cjs/index.js +6 -4
  50. package/dist/esm/base/adapters/node/bff.js +128 -0
  51. package/dist/esm/base/adapters/node/hono.js +83 -0
  52. package/dist/esm/base/adapters/node/index.js +20 -0
  53. package/dist/esm/base/adapters/node/loadServer.js +73 -0
  54. package/dist/esm/base/adapters/node/middlewares/index.js +4 -0
  55. package/dist/esm/base/adapters/node/middlewares/mock.js +198 -0
  56. package/dist/esm/base/adapters/node/middlewares/serverManifest.js +139 -0
  57. package/dist/esm/base/adapters/node/middlewares/serverPublic.js +85 -0
  58. package/dist/esm/base/adapters/node/middlewares/serverStatic.js +119 -0
  59. package/dist/esm/base/adapters/node/middlewares/templates.js +114 -0
  60. package/dist/esm/base/adapters/node/node.js +197 -0
  61. package/dist/esm/base/adapters/node/polyfills/index.js +2 -0
  62. package/dist/esm/base/adapters/node/polyfills/install.js +48 -0
  63. package/dist/esm/base/adapters/node/polyfills/stream.js +316 -0
  64. package/dist/esm/base/constants.js +31 -0
  65. package/dist/esm/base/index.js +16 -0
  66. package/dist/esm/base/middlewares/customServer/base.js +199 -0
  67. package/dist/esm/base/middlewares/customServer/context.js +68 -0
  68. package/dist/esm/base/middlewares/customServer/index.js +220 -0
  69. package/dist/esm/base/middlewares/customServer/routerApi.js +26 -0
  70. package/dist/esm/base/middlewares/customServer/template.js +47 -0
  71. package/dist/esm/base/middlewares/faviconFallback.js +28 -0
  72. package/dist/esm/base/middlewares/frameworkHeader.js +27 -0
  73. package/dist/esm/base/middlewares/index.js +5 -0
  74. package/dist/esm/base/middlewares/logger.js +75 -0
  75. package/dist/esm/base/middlewares/monitor.js +157 -0
  76. package/dist/esm/base/middlewares/renderHandler/dataHandler.js +45 -0
  77. package/dist/esm/base/middlewares/renderHandler/index.js +167 -0
  78. package/dist/esm/base/middlewares/renderHandler/render.js +225 -0
  79. package/dist/esm/base/middlewares/renderHandler/serverTiming.js +21 -0
  80. package/dist/esm/base/middlewares/renderHandler/ssrCache.js +306 -0
  81. package/dist/esm/base/middlewares/renderHandler/ssrRender.js +269 -0
  82. package/dist/esm/base/serverBase.js +383 -0
  83. package/dist/esm/base/utils/debug.js +5 -0
  84. package/dist/esm/base/utils/entry.js +6 -0
  85. package/dist/esm/base/utils/env.js +20 -0
  86. package/dist/esm/base/utils/error.js +12 -0
  87. package/dist/esm/base/utils/index.js +7 -0
  88. package/dist/esm/base/utils/middlewareCollector.js +31 -0
  89. package/dist/esm/base/utils/request.js +39 -0
  90. package/dist/esm/base/utils/serverConfig.js +58 -0
  91. package/dist/esm/base/utils/transformStream.js +90 -0
  92. package/dist/esm/base/utils/warmup.js +9 -0
  93. package/dist/esm/core/index.js +1 -0
  94. package/dist/esm/core/loadPlugins.js +26 -0
  95. package/dist/esm/core/plugin.js +59 -0
  96. package/dist/esm/core/render.js +0 -0
  97. package/dist/esm/core/server.js +0 -0
  98. package/dist/esm/index.js +3 -2
  99. package/dist/esm-node/base/adapters/node/bff.js +46 -0
  100. package/dist/esm-node/base/adapters/node/hono.js +38 -0
  101. package/dist/esm-node/base/adapters/node/index.js +20 -0
  102. package/dist/esm-node/base/adapters/node/loadServer.js +22 -0
  103. package/dist/esm-node/base/adapters/node/middlewares/index.js +4 -0
  104. package/dist/esm-node/base/adapters/node/middlewares/mock.js +79 -0
  105. package/dist/esm-node/base/adapters/node/middlewares/serverManifest.js +55 -0
  106. package/dist/esm-node/base/adapters/node/middlewares/serverPublic.js +33 -0
  107. package/dist/esm-node/base/adapters/node/middlewares/serverStatic.js +75 -0
  108. package/dist/esm-node/base/adapters/node/middlewares/templates.js +32 -0
  109. package/dist/esm-node/base/adapters/node/node.js +101 -0
  110. package/dist/esm-node/base/adapters/node/polyfills/index.js +2 -0
  111. package/dist/esm-node/base/adapters/node/polyfills/install.js +48 -0
  112. package/dist/esm-node/base/adapters/node/polyfills/stream.js +126 -0
  113. package/dist/esm-node/base/constants.js +31 -0
  114. package/dist/esm-node/base/index.js +16 -0
  115. package/dist/esm-node/base/middlewares/customServer/base.js +147 -0
  116. package/dist/esm-node/base/middlewares/customServer/context.js +46 -0
  117. package/dist/esm-node/base/middlewares/customServer/index.js +112 -0
  118. package/dist/esm-node/base/middlewares/customServer/routerApi.js +20 -0
  119. package/dist/esm-node/base/middlewares/customServer/template.js +34 -0
  120. package/dist/esm-node/base/middlewares/faviconFallback.js +10 -0
  121. package/dist/esm-node/base/middlewares/frameworkHeader.js +7 -0
  122. package/dist/esm-node/base/middlewares/index.js +5 -0
  123. package/dist/esm-node/base/middlewares/logger.js +53 -0
  124. package/dist/esm-node/base/middlewares/monitor.js +63 -0
  125. package/dist/esm-node/base/middlewares/renderHandler/dataHandler.js +22 -0
  126. package/dist/esm-node/base/middlewares/renderHandler/index.js +73 -0
  127. package/dist/esm-node/base/middlewares/renderHandler/render.js +108 -0
  128. package/dist/esm-node/base/middlewares/renderHandler/serverTiming.js +16 -0
  129. package/dist/esm-node/base/middlewares/renderHandler/ssrCache.js +162 -0
  130. package/dist/esm-node/base/middlewares/renderHandler/ssrRender.js +177 -0
  131. package/dist/esm-node/base/serverBase.js +168 -0
  132. package/dist/esm-node/base/utils/debug.js +5 -0
  133. package/dist/esm-node/base/utils/entry.js +6 -0
  134. package/dist/esm-node/base/utils/env.js +20 -0
  135. package/dist/esm-node/base/utils/error.js +41 -0
  136. package/dist/esm-node/base/utils/index.js +7 -0
  137. package/dist/esm-node/base/utils/middlewareCollector.js +29 -0
  138. package/dist/esm-node/base/utils/request.js +38 -0
  139. package/dist/esm-node/base/utils/serverConfig.js +34 -0
  140. package/dist/esm-node/base/utils/transformStream.js +36 -0
  141. package/dist/esm-node/base/utils/warmup.js +9 -0
  142. package/dist/esm-node/core/index.js +1 -0
  143. package/dist/{esm → esm-node/core}/loadPlugins.js +4 -7
  144. package/dist/{esm → esm-node/core}/plugin.js +1 -42
  145. package/dist/esm-node/core/render.js +0 -0
  146. package/dist/esm-node/core/server.js +0 -0
  147. package/dist/esm-node/index.js +5 -0
  148. package/dist/esm-node/types/config/bff.js +0 -0
  149. package/dist/esm-node/types/config/dev.js +0 -0
  150. package/dist/esm-node/types/config/html.js +0 -0
  151. package/dist/esm-node/types/config/index.js +6 -0
  152. package/dist/esm-node/types/config/output.js +0 -0
  153. package/dist/esm-node/types/config/security.js +0 -0
  154. package/dist/esm-node/types/config/server.js +0 -0
  155. package/dist/esm-node/types/config/share.js +0 -0
  156. package/dist/esm-node/types/config/source.js +0 -0
  157. package/dist/esm-node/types/config/tools.js +0 -0
  158. package/dist/types/base/adapters/node/bff.d.ts +3 -0
  159. package/dist/types/base/adapters/node/hono.d.ts +22 -0
  160. package/dist/types/base/adapters/node/index.d.ts +6 -0
  161. package/dist/types/base/adapters/node/loadServer.d.ts +3 -0
  162. package/dist/types/base/adapters/node/middlewares/index.d.ts +4 -0
  163. package/dist/types/base/adapters/node/middlewares/mock.d.ts +5 -0
  164. package/dist/types/base/adapters/node/middlewares/serverManifest.d.ts +4 -0
  165. package/dist/types/base/adapters/node/middlewares/serverPublic.d.ts +7 -0
  166. package/dist/types/base/adapters/node/middlewares/serverStatic.d.ts +11 -0
  167. package/dist/types/base/adapters/node/middlewares/templates.d.ts +4 -0
  168. package/dist/types/base/adapters/node/node.d.ts +13 -0
  169. package/dist/types/base/adapters/node/polyfills/index.d.ts +2 -0
  170. package/dist/types/base/adapters/node/polyfills/install.d.ts +1 -0
  171. package/dist/types/base/adapters/node/polyfills/stream.d.ts +18 -0
  172. package/dist/types/base/constants.d.ts +24 -0
  173. package/dist/types/base/index.d.ts +7 -0
  174. package/dist/types/base/middlewares/customServer/base.d.ts +3 -0
  175. package/dist/types/base/middlewares/customServer/context.d.ts +7 -0
  176. package/dist/types/base/middlewares/customServer/index.d.ts +13 -0
  177. package/dist/types/base/middlewares/customServer/routerApi.d.ts +9 -0
  178. package/dist/types/base/middlewares/customServer/template.d.ts +11 -0
  179. package/dist/types/base/middlewares/faviconFallback.d.ts +2 -0
  180. package/dist/types/base/middlewares/frameworkHeader.d.ts +2 -0
  181. package/dist/types/base/middlewares/index.d.ts +5 -0
  182. package/dist/types/base/middlewares/logger.d.ts +2 -0
  183. package/dist/types/base/middlewares/monitor.d.ts +6 -0
  184. package/dist/types/base/middlewares/renderHandler/dataHandler.d.ts +5 -0
  185. package/dist/types/base/middlewares/renderHandler/index.d.ts +9 -0
  186. package/dist/types/base/middlewares/renderHandler/render.d.ts +12 -0
  187. package/dist/types/base/middlewares/renderHandler/serverTiming.d.ts +7 -0
  188. package/dist/types/base/middlewares/renderHandler/ssrCache.d.ts +28 -0
  189. package/dist/types/base/middlewares/renderHandler/ssrRender.d.ts +21 -0
  190. package/dist/types/base/serverBase.d.ts +70 -0
  191. package/dist/types/base/utils/debug.d.ts +1 -0
  192. package/dist/types/base/utils/entry.d.ts +2 -0
  193. package/dist/types/base/utils/env.d.ts +2 -0
  194. package/dist/types/base/utils/error.d.ts +1 -0
  195. package/dist/types/base/utils/index.d.ts +7 -0
  196. package/dist/types/base/utils/middlewareCollector.d.ts +12 -0
  197. package/dist/types/base/utils/request.d.ts +12 -0
  198. package/dist/types/base/utils/serverConfig.d.ts +14 -0
  199. package/dist/types/base/utils/transformStream.d.ts +5 -0
  200. package/dist/types/base/utils/warmup.d.ts +1 -0
  201. package/dist/types/core/index.d.ts +1 -0
  202. package/dist/types/core/loadPlugins.d.ts +3 -0
  203. package/dist/types/core/plugin.d.ts +202 -0
  204. package/dist/types/core/render.d.ts +17 -0
  205. package/dist/types/core/server.d.ts +44 -0
  206. package/dist/types/index.d.ts +3 -2
  207. package/package.json +44 -6
  208. package/dist/types/loadPlugins.d.ts +0 -5
  209. package/dist/types/plugin.d.ts +0 -493
@@ -0,0 +1,73 @@
1
+ import { _ as _async_to_generator } from "@swc/helpers/_/_async_to_generator";
2
+ import { _ as _ts_generator } from "@swc/helpers/_/_ts_generator";
3
+ import path from "path";
4
+ import { fs, dotenv, dotenvExpand } from "@modern-js/utils";
5
+ function loadServerEnv(options) {
6
+ return _loadServerEnv.apply(this, arguments);
7
+ }
8
+ function _loadServerEnv() {
9
+ _loadServerEnv = _async_to_generator(function(options) {
10
+ var pwd, serverEnv, defaultEnvPath, serverEnvPath, _i, _iter, envPath, _tmp, envConfig;
11
+ return _ts_generator(this, function(_state) {
12
+ switch (_state.label) {
13
+ case 0:
14
+ pwd = options.pwd;
15
+ serverEnv = process.env.MODERN_ENV;
16
+ defaultEnvPath = path.resolve(pwd, ".env");
17
+ serverEnvPath = path.resolve(pwd, ".env.".concat(serverEnv));
18
+ _i = 0, _iter = [
19
+ serverEnvPath,
20
+ defaultEnvPath
21
+ ];
22
+ _state.label = 1;
23
+ case 1:
24
+ if (!(_i < _iter.length))
25
+ return [
26
+ 3,
27
+ 6
28
+ ];
29
+ envPath = _iter[_i];
30
+ return [
31
+ 4,
32
+ fs.pathExists(envPath)
33
+ ];
34
+ case 2:
35
+ _tmp = _state.sent();
36
+ if (!_tmp)
37
+ return [
38
+ 3,
39
+ 4
40
+ ];
41
+ return [
42
+ 4,
43
+ fs.stat(envPath)
44
+ ];
45
+ case 3:
46
+ _tmp = !_state.sent().isDirectory();
47
+ _state.label = 4;
48
+ case 4:
49
+ if (_tmp) {
50
+ envConfig = dotenv.config({
51
+ path: envPath
52
+ });
53
+ dotenvExpand(envConfig);
54
+ }
55
+ _state.label = 5;
56
+ case 5:
57
+ _i++;
58
+ return [
59
+ 3,
60
+ 1
61
+ ];
62
+ case 6:
63
+ return [
64
+ 2
65
+ ];
66
+ }
67
+ });
68
+ });
69
+ return _loadServerEnv.apply(this, arguments);
70
+ }
71
+ export {
72
+ loadServerEnv
73
+ };
@@ -0,0 +1,4 @@
1
+ export * from "./mock";
2
+ export * from "./serverStatic";
3
+ export * from "./templates";
4
+ export * from "./serverManifest";
@@ -0,0 +1,198 @@
1
+ import { _ as _async_to_generator } from "@swc/helpers/_/_async_to_generator";
2
+ import { _ as _sliced_to_array } from "@swc/helpers/_/_sliced_to_array";
3
+ import { _ as _ts_generator } from "@swc/helpers/_/_ts_generator";
4
+ import path from "node:path";
5
+ import { fs } from "@modern-js/utils";
6
+ import { AGGRED_DIR } from "../../../constants";
7
+ import { connectMid2HonoMid } from "../hono";
8
+ var parseKey = function(key) {
9
+ var _blank = " ";
10
+ var splitted = key.split(_blank).filter(Boolean);
11
+ if (splitted.length > 1) {
12
+ var _splitted = _sliced_to_array(splitted, 2), method = _splitted[0], pathname = _splitted[1];
13
+ return {
14
+ method: method.toLowerCase(),
15
+ path: pathname
16
+ };
17
+ }
18
+ return {
19
+ method: "get",
20
+ path: key
21
+ };
22
+ };
23
+ var mockHandlerRegistry = /* @__PURE__ */ new Map();
24
+ var registerMockHandlers = function() {
25
+ var _ref = _async_to_generator(function(param) {
26
+ var pwd, server, exts, mockFilePath, _iteratorNormalCompletion, _didIteratorError, _iteratorError, _iterator, _step, ext, maybeMatch, err, _ref2, mockModule, config, enable;
27
+ return _ts_generator(this, function(_state) {
28
+ switch (_state.label) {
29
+ case 0:
30
+ pwd = param.pwd, server = param.server;
31
+ exts = [
32
+ ".ts",
33
+ ".js"
34
+ ];
35
+ mockFilePath = "";
36
+ _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;
37
+ _state.label = 1;
38
+ case 1:
39
+ _state.trys.push([
40
+ 1,
41
+ 6,
42
+ 7,
43
+ 8
44
+ ]);
45
+ _iterator = exts[Symbol.iterator]();
46
+ _state.label = 2;
47
+ case 2:
48
+ if (!!(_iteratorNormalCompletion = (_step = _iterator.next()).done))
49
+ return [
50
+ 3,
51
+ 5
52
+ ];
53
+ ext = _step.value;
54
+ maybeMatch = path.join(pwd, "".concat(AGGRED_DIR.mock, "/index").concat(ext));
55
+ return [
56
+ 4,
57
+ fs.pathExists(maybeMatch)
58
+ ];
59
+ case 3:
60
+ if (_state.sent()) {
61
+ mockFilePath = maybeMatch;
62
+ return [
63
+ 3,
64
+ 5
65
+ ];
66
+ }
67
+ _state.label = 4;
68
+ case 4:
69
+ _iteratorNormalCompletion = true;
70
+ return [
71
+ 3,
72
+ 2
73
+ ];
74
+ case 5:
75
+ return [
76
+ 3,
77
+ 8
78
+ ];
79
+ case 6:
80
+ err = _state.sent();
81
+ _didIteratorError = true;
82
+ _iteratorError = err;
83
+ return [
84
+ 3,
85
+ 8
86
+ ];
87
+ case 7:
88
+ try {
89
+ if (!_iteratorNormalCompletion && _iterator.return != null) {
90
+ _iterator.return();
91
+ }
92
+ } finally {
93
+ if (_didIteratorError) {
94
+ throw _iteratorError;
95
+ }
96
+ }
97
+ return [
98
+ 7
99
+ ];
100
+ case 8:
101
+ if (!mockFilePath) {
102
+ return [
103
+ 2,
104
+ null
105
+ ];
106
+ }
107
+ return [
108
+ 4,
109
+ import(mockFilePath)
110
+ ];
111
+ case 9:
112
+ _ref2 = _state.sent(), mockModule = _ref2.default, config = _ref2.config;
113
+ enable = config === null || config === void 0 ? void 0 : config.enable;
114
+ if (enable === false) {
115
+ return [
116
+ 2
117
+ ];
118
+ }
119
+ if (!mockModule) {
120
+ throw new Error("Mock file ".concat(mockFilePath, " parsed failed!"));
121
+ }
122
+ Object.entries(mockModule).forEach(function(param2) {
123
+ var _param = _sliced_to_array(param2, 2), key = _param[0], handler = _param[1];
124
+ var _parseKey = parseKey(key), method = _parseKey.method, _$path = _parseKey.path;
125
+ var methodName = method.toLowerCase();
126
+ var handlerId = "".concat(methodName, "-").concat(_$path);
127
+ mockHandlerRegistry.set(handlerId, {
128
+ handler,
129
+ isRegistered: false
130
+ });
131
+ if (typeof server[methodName] === "function") {
132
+ var mockHandler = function() {
133
+ var _ref3 = _async_to_generator(function(c, next) {
134
+ var _mockHandlerRegistry_get, isEnabled, handler2;
135
+ return _ts_generator(this, function(_state2) {
136
+ switch (_state2.label) {
137
+ case 0:
138
+ if (typeof enable === "function") {
139
+ isEnabled = enable(c.env.node.req, c.env.node.res);
140
+ if (!isEnabled) {
141
+ return [
142
+ 2,
143
+ next()
144
+ ];
145
+ }
146
+ }
147
+ handler2 = (_mockHandlerRegistry_get = mockHandlerRegistry.get(handlerId)) === null || _mockHandlerRegistry_get === void 0 ? void 0 : _mockHandlerRegistry_get.handler;
148
+ if (!(typeof handler2 === "function"))
149
+ return [
150
+ 3,
151
+ 2
152
+ ];
153
+ return [
154
+ 4,
155
+ connectMid2HonoMid(handler2)(c, next)
156
+ ];
157
+ case 1:
158
+ _state2.sent();
159
+ return [
160
+ 3,
161
+ 3
162
+ ];
163
+ case 2:
164
+ return [
165
+ 2,
166
+ c.json(handler2)
167
+ ];
168
+ case 3:
169
+ return [
170
+ 2
171
+ ];
172
+ }
173
+ });
174
+ });
175
+ return function mockHandler2(c, next) {
176
+ return _ref3.apply(this, arguments);
177
+ };
178
+ }();
179
+ var handlerInfo = mockHandlerRegistry.get(handlerId);
180
+ if (handlerInfo && !(handlerInfo === null || handlerInfo === void 0 ? void 0 : handlerInfo.isRegistered)) {
181
+ server[methodName](_$path, mockHandler);
182
+ handlerInfo.isRegistered = true;
183
+ }
184
+ }
185
+ });
186
+ return [
187
+ 2
188
+ ];
189
+ }
190
+ });
191
+ });
192
+ return function registerMockHandlers2(_) {
193
+ return _ref.apply(this, arguments);
194
+ };
195
+ }();
196
+ export {
197
+ registerMockHandlers
198
+ };
@@ -0,0 +1,139 @@
1
+ import { _ as _async_to_generator } from "@swc/helpers/_/_async_to_generator";
2
+ import { _ as _ts_generator } from "@swc/helpers/_/_ts_generator";
3
+ import path from "path";
4
+ import { LOADABLE_STATS_FILE, MAIN_ENTRY_NAME, ROUTE_MANIFEST_FILE, SERVER_BUNDLE_DIRECTORY } from "@modern-js/utils";
5
+ function getServerManifest(pwd, routes) {
6
+ return _getServerManifest.apply(this, arguments);
7
+ }
8
+ function _getServerManifest() {
9
+ _getServerManifest = _async_to_generator(function(pwd, routes) {
10
+ var loaderBundles, renderBundles, loadableUri, loadableStats, routesManifestUri, routeManifest;
11
+ return _ts_generator(this, function(_state) {
12
+ switch (_state.label) {
13
+ case 0:
14
+ loaderBundles = {};
15
+ renderBundles = {};
16
+ return [
17
+ 4,
18
+ Promise.all(routes.map(function() {
19
+ var _ref = _async_to_generator(function(route) {
20
+ var entryName, loaderBundlePath, renderBundlePath, dynamicImport;
21
+ return _ts_generator(this, function(_state2) {
22
+ switch (_state2.label) {
23
+ case 0:
24
+ entryName = route.entryName || MAIN_ENTRY_NAME;
25
+ loaderBundlePath = path.join(pwd, SERVER_BUNDLE_DIRECTORY, "".concat(entryName, "-server-loaders.js"));
26
+ renderBundlePath = path.join(pwd, route.bundle || "");
27
+ dynamicImport = function(filePath) {
28
+ try {
29
+ var module = require(filePath);
30
+ return Promise.resolve(module);
31
+ } catch (e) {
32
+ return Promise.reject(e);
33
+ }
34
+ };
35
+ return [
36
+ 4,
37
+ Promise.allSettled([
38
+ dynamicImport(loaderBundlePath),
39
+ dynamicImport(renderBundlePath)
40
+ ]).then(function(results) {
41
+ var _results_ = results[0], loaderStatus = _results_.status;
42
+ if (loaderStatus === "fulfilled") {
43
+ loaderBundles[entryName] = results[0].value;
44
+ }
45
+ var _results_1 = results[1], renderStatus = _results_1.status;
46
+ if (renderStatus === "fulfilled") {
47
+ renderBundles[entryName] = results[1].value;
48
+ }
49
+ })
50
+ ];
51
+ case 1:
52
+ _state2.sent();
53
+ return [
54
+ 2
55
+ ];
56
+ }
57
+ });
58
+ });
59
+ return function(route) {
60
+ return _ref.apply(this, arguments);
61
+ };
62
+ }()))
63
+ ];
64
+ case 1:
65
+ _state.sent();
66
+ loadableUri = path.join(pwd, LOADABLE_STATS_FILE);
67
+ return [
68
+ 4,
69
+ import(loadableUri).catch(function(_) {
70
+ return {};
71
+ })
72
+ ];
73
+ case 2:
74
+ loadableStats = _state.sent();
75
+ routesManifestUri = path.join(pwd, ROUTE_MANIFEST_FILE);
76
+ return [
77
+ 4,
78
+ import(routesManifestUri).catch(function(_) {
79
+ return {};
80
+ })
81
+ ];
82
+ case 3:
83
+ routeManifest = _state.sent();
84
+ return [
85
+ 2,
86
+ {
87
+ loaderBundles,
88
+ renderBundles,
89
+ loadableStats,
90
+ routeManifest
91
+ }
92
+ ];
93
+ }
94
+ });
95
+ });
96
+ return _getServerManifest.apply(this, arguments);
97
+ }
98
+ function injectServerManifest(pwd, routes) {
99
+ return function() {
100
+ var _ref = _async_to_generator(function(c, next) {
101
+ var serverManifest;
102
+ return _ts_generator(this, function(_state) {
103
+ switch (_state.label) {
104
+ case 0:
105
+ if (!(routes && !c.get("serverManifest")))
106
+ return [
107
+ 3,
108
+ 2
109
+ ];
110
+ return [
111
+ 4,
112
+ getServerManifest(pwd, routes)
113
+ ];
114
+ case 1:
115
+ serverManifest = _state.sent();
116
+ c.set("serverManifest", serverManifest);
117
+ _state.label = 2;
118
+ case 2:
119
+ return [
120
+ 4,
121
+ next()
122
+ ];
123
+ case 3:
124
+ _state.sent();
125
+ return [
126
+ 2
127
+ ];
128
+ }
129
+ });
130
+ });
131
+ return function(c, next) {
132
+ return _ref.apply(this, arguments);
133
+ };
134
+ }();
135
+ }
136
+ export {
137
+ getServerManifest,
138
+ injectServerManifest
139
+ };
@@ -0,0 +1,85 @@
1
+ import { _ as _async_to_generator } from "@swc/helpers/_/_async_to_generator";
2
+ import { _ as _ts_generator } from "@swc/helpers/_/_ts_generator";
3
+ import path from "path";
4
+ import { fileReader } from "@modern-js/runtime-utils/fileReader";
5
+ import { getMimeType } from "hono/utils/mime";
6
+ import { sortRoutes } from "../../../utils";
7
+ function createPublicMiddleware(param) {
8
+ var pwd = param.pwd, routes = param.routes;
9
+ return function() {
10
+ var _ref = _async_to_generator(function(c, next) {
11
+ var route, entryPath, filename, data, mimeType;
12
+ return _ts_generator(this, function(_state) {
13
+ switch (_state.label) {
14
+ case 0:
15
+ route = matchRoute(c.req, routes);
16
+ if (!route)
17
+ return [
18
+ 3,
19
+ 2
20
+ ];
21
+ entryPath = route.entryPath;
22
+ filename = path.join(pwd, entryPath);
23
+ return [
24
+ 4,
25
+ fileReader.readFile(filename, "buffer")
26
+ ];
27
+ case 1:
28
+ data = _state.sent();
29
+ mimeType = getMimeType(filename);
30
+ if (data !== null) {
31
+ if (mimeType) {
32
+ c.header("Content-Type", mimeType);
33
+ }
34
+ return [
35
+ 2,
36
+ c.body(data, 200)
37
+ ];
38
+ }
39
+ _state.label = 2;
40
+ case 2:
41
+ return [
42
+ 4,
43
+ next()
44
+ ];
45
+ case 3:
46
+ return [
47
+ 2,
48
+ _state.sent()
49
+ ];
50
+ }
51
+ });
52
+ });
53
+ return function(c, next) {
54
+ return _ref.apply(this, arguments);
55
+ };
56
+ }();
57
+ }
58
+ function matchRoute(req, routes) {
59
+ var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;
60
+ try {
61
+ for (var _iterator = routes.sort(sortRoutes)[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
62
+ var route = _step.value;
63
+ if (!route.isSSR && !route.isApi && route.entryPath.startsWith("public") && req.path.startsWith(route.urlPath)) {
64
+ return route;
65
+ }
66
+ }
67
+ } catch (err) {
68
+ _didIteratorError = true;
69
+ _iteratorError = err;
70
+ } finally {
71
+ try {
72
+ if (!_iteratorNormalCompletion && _iterator.return != null) {
73
+ _iterator.return();
74
+ }
75
+ } finally {
76
+ if (_didIteratorError) {
77
+ throw _iteratorError;
78
+ }
79
+ }
80
+ }
81
+ return void 0;
82
+ }
83
+ export {
84
+ createPublicMiddleware
85
+ };
@@ -0,0 +1,119 @@
1
+ import { _ as _async_to_generator } from "@swc/helpers/_/_async_to_generator";
2
+ import { _ as _to_consumable_array } from "@swc/helpers/_/_to_consumable_array";
3
+ import { _ as _ts_generator } from "@swc/helpers/_/_ts_generator";
4
+ import path from "path";
5
+ import { fs } from "@modern-js/utils";
6
+ import { getMimeType } from "hono/utils/mime";
7
+ import { fileReader } from "@modern-js/runtime-utils/fileReader";
8
+ import { createErrorHtml } from "../../../utils";
9
+ import { createPublicMiddleware } from "./serverPublic";
10
+ function createStaticMiddleware(options) {
11
+ var pwd = options.pwd, routes = options.routes;
12
+ var prefix = options.output.assetPrefix || "/";
13
+ var _options_output = options.output, tmp = _options_output.distPath, _ref = tmp === void 0 ? {} : tmp, cssPath = _ref.css, jsPath = _ref.js, mediaPath = _ref.media;
14
+ var _options_html = options.html, favicon = _options_html.favicon, faviconByEntries = _options_html.faviconByEntries;
15
+ var favicons = prepareFavicons(favicon, faviconByEntries);
16
+ var staticFiles = [
17
+ cssPath,
18
+ jsPath,
19
+ mediaPath
20
+ ].filter(function(v) {
21
+ return Boolean(v);
22
+ });
23
+ var staticReg = [
24
+ "static/",
25
+ "upload/"
26
+ ].concat(_to_consumable_array(staticFiles));
27
+ var iconReg = [
28
+ "favicon.ico",
29
+ "icon.png"
30
+ ].concat(_to_consumable_array(favicons));
31
+ var regPrefix = prefix.endsWith("/") ? prefix : "".concat(prefix, "/");
32
+ var staticPathRegExp = new RegExp("^".concat(regPrefix, "(").concat(_to_consumable_array(staticReg).concat(_to_consumable_array(iconReg)).join("|"), ")"));
33
+ return function() {
34
+ var _ref2 = _async_to_generator(function(c, next) {
35
+ var pathname, hit, filepath, mimeType, stat, size, chunk;
36
+ return _ts_generator(this, function(_state) {
37
+ switch (_state.label) {
38
+ case 0:
39
+ pathname = c.req.path;
40
+ hit = staticPathRegExp.test(pathname);
41
+ if (!hit)
42
+ return [
43
+ 3,
44
+ 4
45
+ ];
46
+ filepath = path.join(pwd, pathname.replace(prefix, function() {
47
+ return "";
48
+ }));
49
+ return [
50
+ 4,
51
+ fs.pathExists(filepath)
52
+ ];
53
+ case 1:
54
+ if (!_state.sent()) {
55
+ return [
56
+ 2,
57
+ c.html(createErrorHtml(404), 404)
58
+ ];
59
+ }
60
+ mimeType = getMimeType(filepath);
61
+ if (mimeType) {
62
+ c.header("Content-Type", mimeType);
63
+ }
64
+ return [
65
+ 4,
66
+ fs.lstat(filepath)
67
+ ];
68
+ case 2:
69
+ stat = _state.sent();
70
+ size = stat.size;
71
+ return [
72
+ 4,
73
+ fileReader.readFile(filepath, "buffer")
74
+ ];
75
+ case 3:
76
+ chunk = _state.sent();
77
+ c.header("Content-Length", String(size));
78
+ return [
79
+ 2,
80
+ c.body(chunk, 200)
81
+ ];
82
+ case 4:
83
+ return [
84
+ 2,
85
+ createPublicMiddleware({
86
+ pwd,
87
+ routes: routes || []
88
+ })(c, next)
89
+ ];
90
+ case 5:
91
+ return [
92
+ 2
93
+ ];
94
+ }
95
+ });
96
+ });
97
+ return function(c, next) {
98
+ return _ref2.apply(this, arguments);
99
+ };
100
+ }();
101
+ }
102
+ var prepareFavicons = function(favicon, faviconByEntries) {
103
+ var faviconNames = [];
104
+ if (favicon && typeof favicon === "string") {
105
+ faviconNames.push(favicon.substring(favicon.lastIndexOf("/") + 1));
106
+ }
107
+ if (faviconByEntries) {
108
+ Object.keys(faviconByEntries).forEach(function(f) {
109
+ var curFavicon = faviconByEntries[f];
110
+ if (curFavicon) {
111
+ faviconNames.push(curFavicon.substring(curFavicon.lastIndexOf("/") + 1));
112
+ }
113
+ });
114
+ }
115
+ return faviconNames;
116
+ };
117
+ export {
118
+ createStaticMiddleware
119
+ };