@modern-js/server-core 2.69.5 → 3.0.0-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 (358) hide show
  1. package/dist/cjs/adapters/node/helper/index.js +52 -39
  2. package/dist/cjs/adapters/node/helper/loadCache.js +52 -47
  3. package/dist/cjs/adapters/node/helper/loadConfig.js +69 -85
  4. package/dist/cjs/adapters/node/helper/loadEnv.js +60 -50
  5. package/dist/cjs/adapters/node/helper/loadPlugin.js +40 -32
  6. package/dist/cjs/adapters/node/helper/utils.js +33 -28
  7. package/dist/cjs/adapters/node/hono.js +87 -99
  8. package/dist/cjs/adapters/node/index.js +84 -60
  9. package/dist/cjs/adapters/node/node.js +164 -190
  10. package/dist/cjs/adapters/node/plugins/index.js +69 -23
  11. package/dist/cjs/adapters/node/plugins/nodeServer.js +39 -34
  12. package/dist/cjs/adapters/node/plugins/resource.js +186 -181
  13. package/dist/cjs/adapters/node/plugins/static.js +152 -164
  14. package/dist/cjs/constants.js +70 -57
  15. package/dist/cjs/context.js +37 -28
  16. package/dist/cjs/helper.js +40 -33
  17. package/dist/cjs/hono.js +46 -0
  18. package/dist/cjs/index.js +236 -57
  19. package/dist/cjs/plugins/compat/hooks.js +71 -83
  20. package/dist/cjs/plugins/compat/index.js +59 -60
  21. package/dist/cjs/plugins/default.js +52 -47
  22. package/dist/cjs/plugins/favicon.js +43 -39
  23. package/dist/cjs/plugins/index.js +73 -54
  24. package/dist/cjs/plugins/log.js +82 -87
  25. package/dist/cjs/plugins/middlewares.js +43 -37
  26. package/dist/cjs/plugins/monitors.js +178 -187
  27. package/dist/cjs/plugins/processedBy.js +45 -39
  28. package/dist/cjs/plugins/render/csrRscRender.js +70 -71
  29. package/dist/cjs/plugins/render/dataHandler.js +49 -45
  30. package/dist/cjs/plugins/render/index.js +152 -126
  31. package/dist/cjs/plugins/render/inject.js +84 -86
  32. package/dist/cjs/plugins/render/render.js +244 -271
  33. package/dist/cjs/plugins/render/renderRscHandler.js +68 -69
  34. package/dist/cjs/plugins/render/serverActionHandler.js +45 -44
  35. package/dist/cjs/plugins/render/ssrCache.js +173 -191
  36. package/dist/cjs/plugins/render/ssrRender.js +89 -94
  37. package/dist/cjs/plugins/render/utils.js +44 -36
  38. package/dist/cjs/plugins/route.js +60 -57
  39. package/dist/cjs/serverBase.js +164 -162
  40. package/dist/cjs/types/config/bff.js +17 -15
  41. package/dist/cjs/types/config/dev.js +17 -15
  42. package/dist/cjs/types/config/html.js +17 -15
  43. package/dist/cjs/types/config/index.js +90 -29
  44. package/dist/cjs/types/config/output.js +17 -15
  45. package/dist/cjs/types/config/security.js +17 -15
  46. package/dist/cjs/types/config/server.js +17 -15
  47. package/dist/cjs/types/config/share.js +17 -15
  48. package/dist/cjs/types/config/source.js +17 -15
  49. package/dist/cjs/types/config/tools.js +17 -15
  50. package/dist/cjs/types/index.js +76 -25
  51. package/dist/cjs/types/plugins/base.js +17 -15
  52. package/dist/cjs/types/plugins/index.js +55 -21
  53. package/dist/cjs/types/plugins/plugin.js +18 -0
  54. package/dist/cjs/types/render.js +17 -15
  55. package/dist/cjs/types/requestHandler.js +17 -15
  56. package/dist/cjs/types/server.js +17 -15
  57. package/dist/cjs/utils/entry.js +37 -32
  58. package/dist/cjs/utils/env.js +46 -40
  59. package/dist/cjs/utils/error.js +56 -50
  60. package/dist/cjs/utils/index.js +111 -33
  61. package/dist/cjs/utils/middlewareCollector.js +58 -49
  62. package/dist/cjs/utils/publicDir.js +92 -0
  63. package/dist/cjs/utils/request.js +73 -65
  64. package/dist/cjs/utils/serverConfig.js +39 -31
  65. package/dist/cjs/utils/storage.js +58 -68
  66. package/dist/cjs/utils/transformStream.js +57 -53
  67. package/dist/cjs/utils/warmup.js +34 -27
  68. package/dist/esm/adapters/node/helper/index.mjs +6 -0
  69. package/dist/esm/adapters/node/helper/loadCache.mjs +14 -0
  70. package/dist/esm/adapters/node/helper/loadConfig.mjs +31 -0
  71. package/dist/esm/adapters/node/helper/loadEnv.mjs +22 -0
  72. package/dist/esm/adapters/node/helper/loadPlugin.mjs +13 -0
  73. package/dist/esm/adapters/node/helper/utils.mjs +2 -0
  74. package/dist/esm/adapters/node/hono.mjs +53 -0
  75. package/dist/esm/adapters/node/index.mjs +5 -0
  76. package/dist/esm/adapters/node/node.mjs +129 -0
  77. package/dist/esm/adapters/node/plugins/nodeServer.mjs +9 -0
  78. package/dist/esm/adapters/node/plugins/resource.mjs +138 -0
  79. package/dist/esm/adapters/node/plugins/static.mjs +118 -0
  80. package/dist/esm/constants.mjs +28 -0
  81. package/dist/{esm-node/context.js → esm/context.mjs} +1 -4
  82. package/dist/esm/helper.mjs +11 -0
  83. package/dist/esm/hono.mjs +3 -0
  84. package/dist/esm/index.mjs +13 -0
  85. package/dist/esm/plugins/compat/hooks.mjs +40 -0
  86. package/dist/esm/plugins/compat/index.mjs +27 -0
  87. package/dist/esm/plugins/default.mjs +25 -0
  88. package/dist/esm/plugins/favicon.mjs +14 -0
  89. package/dist/{esm-node/plugins/index.js → esm/plugins/index.mjs} +2 -15
  90. package/dist/esm/plugins/log.mjs +58 -0
  91. package/dist/esm/plugins/middlewares.mjs +15 -0
  92. package/dist/esm/plugins/monitors.mjs +149 -0
  93. package/dist/esm/plugins/processedBy.mjs +16 -0
  94. package/dist/esm/plugins/render/csrRscRender.mjs +43 -0
  95. package/dist/esm/plugins/render/dataHandler.mjs +19 -0
  96. package/dist/esm/plugins/render/index.mjs +84 -0
  97. package/dist/esm/plugins/render/inject.mjs +55 -0
  98. package/dist/esm/plugins/render/render.mjs +226 -0
  99. package/dist/esm/plugins/render/renderRscHandler.mjs +41 -0
  100. package/dist/esm/plugins/render/serverActionHandler.mjs +18 -0
  101. package/dist/esm/plugins/render/ssrCache.mjs +158 -0
  102. package/dist/esm/plugins/render/ssrRender.mjs +62 -0
  103. package/dist/esm/plugins/render/utils.mjs +15 -0
  104. package/dist/esm/plugins/route.mjs +34 -0
  105. package/dist/esm/serverBase.mjs +136 -0
  106. package/dist/esm/types/plugins/index.mjs +1 -0
  107. package/dist/esm/utils/entry.mjs +3 -0
  108. package/dist/esm/utils/env.mjs +14 -0
  109. package/dist/esm/utils/error.mjs +53 -0
  110. package/dist/{esm-node/utils/index.js → esm/utils/index.mjs} +1 -0
  111. package/dist/esm/utils/middlewareCollector.mjs +26 -0
  112. package/dist/esm/utils/publicDir.mjs +33 -0
  113. package/dist/esm/utils/request.mjs +40 -0
  114. package/dist/esm/utils/serverConfig.mjs +9 -0
  115. package/dist/esm/utils/storage.mjs +30 -0
  116. package/dist/esm/utils/transformStream.mjs +28 -0
  117. package/dist/esm/utils/warmup.mjs +6 -0
  118. package/dist/esm-node/adapters/node/helper/index.mjs +6 -0
  119. package/dist/esm-node/adapters/node/helper/loadCache.mjs +14 -0
  120. package/dist/esm-node/adapters/node/helper/loadConfig.mjs +31 -0
  121. package/dist/esm-node/adapters/node/helper/loadEnv.mjs +22 -0
  122. package/dist/esm-node/adapters/node/helper/loadPlugin.mjs +13 -0
  123. package/dist/esm-node/adapters/node/helper/utils.mjs +2 -0
  124. package/dist/esm-node/adapters/node/hono.mjs +53 -0
  125. package/dist/esm-node/adapters/node/index.mjs +5 -0
  126. package/dist/esm-node/adapters/node/node.mjs +129 -0
  127. package/dist/esm-node/adapters/node/plugins/index.mjs +3 -0
  128. package/dist/esm-node/adapters/node/plugins/nodeServer.mjs +9 -0
  129. package/dist/esm-node/adapters/node/plugins/resource.mjs +138 -0
  130. package/dist/esm-node/adapters/node/plugins/static.mjs +118 -0
  131. package/dist/esm-node/constants.mjs +28 -0
  132. package/dist/esm-node/context.mjs +3 -0
  133. package/dist/esm-node/helper.mjs +11 -0
  134. package/dist/esm-node/hono.mjs +3 -0
  135. package/dist/esm-node/index.mjs +13 -0
  136. package/dist/esm-node/plugins/compat/hooks.mjs +40 -0
  137. package/dist/esm-node/plugins/compat/index.mjs +27 -0
  138. package/dist/esm-node/plugins/default.mjs +25 -0
  139. package/dist/esm-node/plugins/favicon.mjs +14 -0
  140. package/dist/esm-node/plugins/index.mjs +9 -0
  141. package/dist/esm-node/plugins/log.mjs +58 -0
  142. package/dist/esm-node/plugins/middlewares.mjs +15 -0
  143. package/dist/esm-node/plugins/monitors.mjs +149 -0
  144. package/dist/esm-node/plugins/processedBy.mjs +16 -0
  145. package/dist/esm-node/plugins/render/csrRscRender.mjs +43 -0
  146. package/dist/esm-node/plugins/render/dataHandler.mjs +19 -0
  147. package/dist/esm-node/plugins/render/index.mjs +84 -0
  148. package/dist/esm-node/plugins/render/inject.mjs +55 -0
  149. package/dist/esm-node/plugins/render/render.mjs +226 -0
  150. package/dist/esm-node/plugins/render/renderRscHandler.mjs +41 -0
  151. package/dist/esm-node/plugins/render/serverActionHandler.mjs +18 -0
  152. package/dist/esm-node/plugins/render/ssrCache.mjs +158 -0
  153. package/dist/esm-node/plugins/render/ssrRender.mjs +62 -0
  154. package/dist/esm-node/plugins/render/utils.mjs +15 -0
  155. package/dist/esm-node/plugins/route.mjs +34 -0
  156. package/dist/esm-node/serverBase.mjs +136 -0
  157. package/dist/esm-node/types/config/index.mjs +6 -0
  158. package/dist/esm-node/types/index.mjs +4 -0
  159. package/dist/esm-node/types/plugins/index.mjs +1 -0
  160. package/dist/esm-node/utils/entry.mjs +3 -0
  161. package/dist/esm-node/utils/env.mjs +14 -0
  162. package/dist/esm-node/utils/error.mjs +53 -0
  163. package/dist/esm-node/utils/index.mjs +9 -0
  164. package/dist/esm-node/utils/middlewareCollector.mjs +26 -0
  165. package/dist/esm-node/utils/publicDir.mjs +33 -0
  166. package/dist/esm-node/utils/request.mjs +40 -0
  167. package/dist/esm-node/utils/serverConfig.mjs +9 -0
  168. package/dist/esm-node/utils/storage.mjs +30 -0
  169. package/dist/esm-node/utils/transformStream.mjs +28 -0
  170. package/dist/esm-node/utils/warmup.mjs +6 -0
  171. package/dist/types/adapters/node/helper/loadConfig.d.ts +1 -1
  172. package/dist/types/adapters/node/plugins/nodeServer.d.ts +2 -2
  173. package/dist/types/adapters/node/plugins/resource.d.ts +3 -3
  174. package/dist/types/adapters/node/plugins/static.d.ts +3 -2
  175. package/dist/types/hono.d.ts +3 -0
  176. package/dist/types/index.d.ts +1 -1
  177. package/dist/types/plugins/compat/hooks.d.ts +1 -1
  178. package/dist/types/plugins/default.d.ts +2 -2
  179. package/dist/types/plugins/favicon.d.ts +2 -2
  180. package/dist/types/plugins/log.d.ts +2 -2
  181. package/dist/types/plugins/middlewares.d.ts +2 -2
  182. package/dist/types/plugins/monitors.d.ts +4 -4
  183. package/dist/types/plugins/processedBy.d.ts +2 -2
  184. package/dist/types/plugins/render/dataHandler.d.ts +1 -1
  185. package/dist/types/plugins/render/index.d.ts +2 -2
  186. package/dist/types/plugins/render/inject.d.ts +2 -2
  187. package/dist/types/plugins/render/ssrRender.d.ts +3 -5
  188. package/dist/types/plugins/route.d.ts +2 -2
  189. package/dist/types/serverBase.d.ts +14 -20
  190. package/dist/types/types/config/bff.d.ts +0 -2
  191. package/dist/types/types/config/html.d.ts +0 -1
  192. package/dist/types/types/config/index.d.ts +0 -6
  193. package/dist/types/types/config/output.d.ts +2 -8
  194. package/dist/types/types/config/server.d.ts +1 -1
  195. package/dist/types/types/plugins/base.d.ts +5 -26
  196. package/dist/types/types/plugins/index.d.ts +1 -2
  197. package/dist/types/types/plugins/{new.d.ts → plugin.d.ts} +6 -4
  198. package/dist/types/types/render.d.ts +2 -5
  199. package/dist/types/types/requestHandler.d.ts +3 -7
  200. package/dist/types/types/server.d.ts +2 -1
  201. package/dist/types/utils/index.d.ts +1 -0
  202. package/dist/types/utils/publicDir.d.ts +40 -0
  203. package/dist/types/utils/transformStream.d.ts +1 -1
  204. package/package.json +25 -29
  205. package/rslib.config.mts +4 -0
  206. package/rstest.config.ts +7 -0
  207. package/dist/cjs/plugins/customServer/base.js +0 -186
  208. package/dist/cjs/plugins/customServer/context.js +0 -70
  209. package/dist/cjs/plugins/customServer/index.js +0 -210
  210. package/dist/cjs/plugins/customServer/routerApi.js +0 -44
  211. package/dist/cjs/plugins/customServer/template.js +0 -58
  212. package/dist/cjs/types/plugins/new.js +0 -16
  213. package/dist/cjs/types/plugins/old.js +0 -16
  214. package/dist/esm/adapters/node/helper/index.js +0 -13
  215. package/dist/esm/adapters/node/helper/loadCache.js +0 -44
  216. package/dist/esm/adapters/node/helper/loadConfig.js +0 -157
  217. package/dist/esm/adapters/node/helper/loadEnv.js +0 -73
  218. package/dist/esm/adapters/node/helper/loadPlugin.js +0 -59
  219. package/dist/esm/adapters/node/helper/utils.js +0 -7
  220. package/dist/esm/adapters/node/hono.js +0 -148
  221. package/dist/esm/adapters/node/index.js +0 -23
  222. package/dist/esm/adapters/node/node.js +0 -357
  223. package/dist/esm/adapters/node/plugins/index.js +0 -3
  224. package/dist/esm/adapters/node/plugins/nodeServer.js +0 -18
  225. package/dist/esm/adapters/node/plugins/resource.js +0 -543
  226. package/dist/esm/adapters/node/plugins/static.js +0 -245
  227. package/dist/esm/constants.js +0 -35
  228. package/dist/esm/context.js +0 -6
  229. package/dist/esm/helper.js +0 -14
  230. package/dist/esm/index.js +0 -22
  231. package/dist/esm/plugins/compat/hooks.js +0 -70
  232. package/dist/esm/plugins/compat/index.js +0 -45
  233. package/dist/esm/plugins/customServer/base.js +0 -218
  234. package/dist/esm/plugins/customServer/context.js +0 -66
  235. package/dist/esm/plugins/customServer/index.js +0 -369
  236. package/dist/esm/plugins/customServer/routerApi.js +0 -26
  237. package/dist/esm/plugins/customServer/template.js +0 -47
  238. package/dist/esm/plugins/default.js +0 -31
  239. package/dist/esm/plugins/favicon.js +0 -34
  240. package/dist/esm/plugins/index.js +0 -22
  241. package/dist/esm/plugins/log.js +0 -106
  242. package/dist/esm/plugins/middlewares.js +0 -22
  243. package/dist/esm/plugins/monitors.js +0 -287
  244. package/dist/esm/plugins/processedBy.js +0 -42
  245. package/dist/esm/plugins/render/csrRscRender.js +0 -88
  246. package/dist/esm/plugins/render/dataHandler.js +0 -48
  247. package/dist/esm/plugins/render/index.js +0 -215
  248. package/dist/esm/plugins/render/inject.js +0 -126
  249. package/dist/esm/plugins/render/render.js +0 -572
  250. package/dist/esm/plugins/render/renderRscHandler.js +0 -81
  251. package/dist/esm/plugins/render/serverActionHandler.js +0 -49
  252. package/dist/esm/plugins/render/ssrCache.js +0 -305
  253. package/dist/esm/plugins/render/ssrRender.js +0 -124
  254. package/dist/esm/plugins/render/utils.js +0 -17
  255. package/dist/esm/plugins/route.js +0 -92
  256. package/dist/esm/serverBase.js +0 -248
  257. package/dist/esm/types/config/index.js +0 -6
  258. package/dist/esm/types/index.js +0 -4
  259. package/dist/esm/types/plugins/index.js +0 -2
  260. package/dist/esm/types/requestHandler.js +0 -0
  261. package/dist/esm/types/server.js +0 -0
  262. package/dist/esm/utils/entry.js +0 -10
  263. package/dist/esm/utils/env.js +0 -20
  264. package/dist/esm/utils/error.js +0 -33
  265. package/dist/esm/utils/index.js +0 -8
  266. package/dist/esm/utils/middlewareCollector.js +0 -31
  267. package/dist/esm/utils/request.js +0 -51
  268. package/dist/esm/utils/serverConfig.js +0 -13
  269. package/dist/esm/utils/storage.js +0 -38
  270. package/dist/esm/utils/transformStream.js +0 -104
  271. package/dist/esm/utils/warmup.js +0 -9
  272. package/dist/esm-node/adapters/node/helper/index.js +0 -13
  273. package/dist/esm-node/adapters/node/helper/loadCache.js +0 -19
  274. package/dist/esm-node/adapters/node/helper/loadConfig.js +0 -59
  275. package/dist/esm-node/adapters/node/helper/loadEnv.js +0 -22
  276. package/dist/esm-node/adapters/node/helper/loadPlugin.js +0 -15
  277. package/dist/esm-node/adapters/node/helper/utils.js +0 -7
  278. package/dist/esm-node/adapters/node/hono.js +0 -79
  279. package/dist/esm-node/adapters/node/index.js +0 -23
  280. package/dist/esm-node/adapters/node/node.js +0 -169
  281. package/dist/esm-node/adapters/node/plugins/nodeServer.js +0 -14
  282. package/dist/esm-node/adapters/node/plugins/resource.js +0 -159
  283. package/dist/esm-node/adapters/node/plugins/static.js +0 -144
  284. package/dist/esm-node/constants.js +0 -35
  285. package/dist/esm-node/helper.js +0 -14
  286. package/dist/esm-node/index.js +0 -22
  287. package/dist/esm-node/plugins/compat/hooks.js +0 -66
  288. package/dist/esm-node/plugins/compat/index.js +0 -40
  289. package/dist/esm-node/plugins/customServer/base.js +0 -162
  290. package/dist/esm-node/plugins/customServer/context.js +0 -43
  291. package/dist/esm-node/plugins/customServer/index.js +0 -185
  292. package/dist/esm-node/plugins/customServer/routerApi.js +0 -20
  293. package/dist/esm-node/plugins/customServer/template.js +0 -34
  294. package/dist/esm-node/plugins/default.js +0 -30
  295. package/dist/esm-node/plugins/favicon.js +0 -20
  296. package/dist/esm-node/plugins/log.js +0 -73
  297. package/dist/esm-node/plugins/middlewares.js +0 -19
  298. package/dist/esm-node/plugins/monitors.js +0 -174
  299. package/dist/esm-node/plugins/processedBy.js +0 -20
  300. package/dist/esm-node/plugins/render/csrRscRender.js +0 -54
  301. package/dist/esm-node/plugins/render/dataHandler.js +0 -25
  302. package/dist/esm-node/plugins/render/index.js +0 -106
  303. package/dist/esm-node/plugins/render/inject.js +0 -69
  304. package/dist/esm-node/plugins/render/render.js +0 -253
  305. package/dist/esm-node/plugins/render/renderRscHandler.js +0 -52
  306. package/dist/esm-node/plugins/render/serverActionHandler.js +0 -27
  307. package/dist/esm-node/plugins/render/ssrCache.js +0 -190
  308. package/dist/esm-node/plugins/render/ssrRender.js +0 -77
  309. package/dist/esm-node/plugins/render/utils.js +0 -17
  310. package/dist/esm-node/plugins/route.js +0 -41
  311. package/dist/esm-node/serverBase.js +0 -146
  312. package/dist/esm-node/types/plugins/index.js +0 -2
  313. package/dist/esm-node/utils/entry.js +0 -10
  314. package/dist/esm-node/utils/env.js +0 -20
  315. package/dist/esm-node/utils/error.js +0 -61
  316. package/dist/esm-node/utils/middlewareCollector.js +0 -29
  317. package/dist/esm-node/utils/request.js +0 -50
  318. package/dist/esm-node/utils/serverConfig.js +0 -11
  319. package/dist/esm-node/utils/storage.js +0 -40
  320. package/dist/esm-node/utils/transformStream.js +0 -36
  321. package/dist/esm-node/utils/warmup.js +0 -9
  322. package/dist/types/plugins/customServer/base.d.ts +0 -7
  323. package/dist/types/plugins/customServer/context.d.ts +0 -8
  324. package/dist/types/plugins/customServer/index.d.ts +0 -11
  325. package/dist/types/plugins/customServer/routerApi.d.ts +0 -9
  326. package/dist/types/plugins/customServer/template.d.ts +0 -11
  327. package/dist/types/types/plugins/old.d.ts +0 -56
  328. /package/dist/{esm-node/adapters/node/plugins/index.js → esm/adapters/node/plugins/index.mjs} +0 -0
  329. /package/dist/{esm-node/types/server.js → esm/types/config/bff.mjs} +0 -0
  330. /package/dist/esm/types/config/{bff.js → dev.mjs} +0 -0
  331. /package/dist/esm/types/config/{dev.js → html.mjs} +0 -0
  332. /package/dist/{esm-node/types/config/index.js → esm/types/config/index.mjs} +0 -0
  333. /package/dist/esm/types/config/{html.js → output.mjs} +0 -0
  334. /package/dist/esm/types/config/{output.js → security.mjs} +0 -0
  335. /package/dist/esm/types/config/{security.js → server.mjs} +0 -0
  336. /package/dist/esm/types/config/{server.js → share.mjs} +0 -0
  337. /package/dist/esm/types/config/{share.js → source.mjs} +0 -0
  338. /package/dist/esm/types/config/{source.js → tools.mjs} +0 -0
  339. /package/dist/{esm-node/types/index.js → esm/types/index.mjs} +0 -0
  340. /package/dist/esm/types/{config/tools.js → plugins/base.mjs} +0 -0
  341. /package/dist/esm/types/plugins/{base.js → plugin.mjs} +0 -0
  342. /package/dist/esm/types/{plugins/new.js → render.mjs} +0 -0
  343. /package/dist/esm/types/{plugins/old.js → requestHandler.mjs} +0 -0
  344. /package/dist/esm/types/{render.js → server.mjs} +0 -0
  345. /package/dist/esm-node/types/config/{bff.js → bff.mjs} +0 -0
  346. /package/dist/esm-node/types/config/{dev.js → dev.mjs} +0 -0
  347. /package/dist/esm-node/types/config/{html.js → html.mjs} +0 -0
  348. /package/dist/esm-node/types/config/{output.js → output.mjs} +0 -0
  349. /package/dist/esm-node/types/config/{security.js → security.mjs} +0 -0
  350. /package/dist/esm-node/types/config/{server.js → server.mjs} +0 -0
  351. /package/dist/esm-node/types/config/{share.js → share.mjs} +0 -0
  352. /package/dist/esm-node/types/config/{source.js → source.mjs} +0 -0
  353. /package/dist/esm-node/types/config/{tools.js → tools.mjs} +0 -0
  354. /package/dist/esm-node/types/plugins/{base.js → base.mjs} +0 -0
  355. /package/dist/esm-node/types/plugins/{new.js → plugin.mjs} +0 -0
  356. /package/dist/esm-node/types/{plugins/old.js → render.mjs} +0 -0
  357. /package/dist/esm-node/types/{render.js → requestHandler.mjs} +0 -0
  358. /package/dist/esm-node/types/{requestHandler.js → server.mjs} +0 -0
@@ -1,35 +0,0 @@
1
- const AGGRED_DIR = {
2
- mock: "config/mock",
3
- server: "server",
4
- api: "api",
5
- shared: "shared",
6
- lambda: "lambda"
7
- };
8
- const REPLACE_REG = {
9
- before: {
10
- head: "<head\\b[^>]*>",
11
- body: "<body\\b[^>]*>"
12
- },
13
- after: {
14
- head: "</head>",
15
- body: "</body>"
16
- }
17
- };
18
- var ServerTimings;
19
- (function(ServerTimings2) {
20
- ServerTimings2["SERVER_HANDLE_REQUEST"] = "server-handle-request";
21
- ServerTimings2["SERVER_MIDDLEWARE"] = "server-middleware";
22
- ServerTimings2["SERVER_HOOK_AFTER_RENDER"] = "server-hook-after-render";
23
- ServerTimings2["SERVER_HOOK_AFTER_MATCH"] = "server-hook-after-match";
24
- })(ServerTimings || (ServerTimings = {}));
25
- const SERVER_TIMING = "Server-Timing";
26
- const X_RENDER_CACHE = "x-render-cache";
27
- const X_MODERNJS_RENDER = "x-modernjs-render";
28
- export {
29
- AGGRED_DIR,
30
- REPLACE_REG,
31
- SERVER_TIMING,
32
- ServerTimings,
33
- X_MODERNJS_RENDER,
34
- X_RENDER_CACHE
35
- };
@@ -1,14 +0,0 @@
1
- const LOADER_CONTEXT = "loaderContext";
2
- function getLoaderCtx(c) {
3
- const loaderContext = c.get(LOADER_CONTEXT);
4
- if (loaderContext) {
5
- return loaderContext;
6
- } else {
7
- const loaderContext2 = /* @__PURE__ */ new Map();
8
- c.set(LOADER_CONTEXT, loaderContext2);
9
- return loaderContext2;
10
- }
11
- }
12
- export {
13
- getLoaderCtx
14
- };
@@ -1,22 +0,0 @@
1
- import { createErrorHtml, onError, ErrorDigest } from "./utils";
2
- import { AGGRED_DIR } from "./constants";
3
- import { createServerBase } from "./serverBase";
4
- import { useHonoContext } from "./context";
5
- import { Hono } from "hono";
6
- import { getLoaderCtx } from "./helper";
7
- export * from "./plugins";
8
- export * from "./types/plugins";
9
- export * from "./types/render";
10
- export * from "@modern-js/plugin";
11
- export * from "./types/config";
12
- export * from "./types/requestHandler";
13
- export {
14
- AGGRED_DIR,
15
- ErrorDigest,
16
- Hono,
17
- createErrorHtml,
18
- createServerBase,
19
- getLoaderCtx,
20
- onError,
21
- useHonoContext
22
- };
@@ -1,66 +0,0 @@
1
- function getHookRunners(context) {
2
- const { hooks } = context;
3
- return {
4
- config: (params) => {
5
- return hooks.modifyConfig.call(params);
6
- },
7
- prepare: () => {
8
- return hooks.onPrepare.call();
9
- },
10
- reset: (params) => {
11
- return hooks.onReset.call(params);
12
- },
13
- fallback: (input) => {
14
- return hooks.fallback.call(input);
15
- },
16
- prepareWebServer: (input) => {
17
- return hooks.prepareWebServer.call(input);
18
- },
19
- prepareApiServer: (input) => {
20
- return hooks.prepareApiServer.call(input);
21
- },
22
- afterMatch: (ctx) => {
23
- return hooks.afterMatch.call(ctx);
24
- },
25
- afterRender: (ctx) => {
26
- return hooks.afterRender.call(ctx);
27
- },
28
- afterStreamingRender: (ctx) => {
29
- return hooks.afterStreamingRender.call(ctx);
30
- }
31
- };
32
- }
33
- function transformHookRunner(hookRunnerName) {
34
- switch (hookRunnerName) {
35
- case "config":
36
- return "modifyConfig";
37
- case "prepare":
38
- return "onPrepare";
39
- case "reset":
40
- return "onReset";
41
- default:
42
- return hookRunnerName;
43
- }
44
- }
45
- function handleSetupResult(setupResult, api) {
46
- if (!setupResult) {
47
- return;
48
- }
49
- Object.keys(setupResult).forEach((key) => {
50
- const fn = setupResult[key];
51
- if (typeof fn === "function") {
52
- const newAPI = transformHookRunner(key);
53
- if (api[newAPI]) {
54
- api[newAPI]((...params) => {
55
- const res = fn(...params);
56
- return res;
57
- });
58
- }
59
- }
60
- });
61
- }
62
- export {
63
- getHookRunners,
64
- handleSetupResult,
65
- transformHookRunner
66
- };
@@ -1,40 +0,0 @@
1
- import { createAsyncHook, createAsyncPipelineHook } from "@modern-js/plugin-v2";
2
- import { getHookRunners } from "./hooks";
3
- import { handleSetupResult } from "./hooks";
4
- const compatPlugin = () => ({
5
- name: "@modern-js/server-compat",
6
- registryHooks: {
7
- fallback: createAsyncHook(),
8
- prepareWebServer: createAsyncPipelineHook(),
9
- prepareApiServer: createAsyncPipelineHook(),
10
- afterMatch: createAsyncPipelineHook(),
11
- afterRender: createAsyncPipelineHook(),
12
- afterStreamingRender: createAsyncPipelineHook()
13
- },
14
- _registryApi: (getServerContext, updateServerContext) => {
15
- const getInternalContext = () => {
16
- return getServerContext()._internalContext;
17
- };
18
- return {
19
- useConfigContext: () => {
20
- return getInternalContext().config;
21
- },
22
- useAppContext: () => {
23
- const { _internalContext, ...serverContext } = getServerContext();
24
- return serverContext;
25
- },
26
- setAppContext: (context) => {
27
- return updateServerContext(context);
28
- },
29
- useHookRunners: () => {
30
- return getHookRunners(getInternalContext());
31
- }
32
- };
33
- },
34
- setup: () => {
35
- }
36
- });
37
- export {
38
- compatPlugin,
39
- handleSetupResult
40
- };
@@ -1,162 +0,0 @@
1
- import { _ as _class_private_field_get } from "@swc/helpers/_/_class_private_field_get";
2
- import { _ as _class_private_field_init } from "@swc/helpers/_/_class_private_field_init";
3
- import { _ as _class_private_field_set } from "@swc/helpers/_/_class_private_field_set";
4
- import { getCookie } from "hono/cookie";
5
- import { getHost } from "../../utils";
6
- function createBaseHookContext(c, resParams) {
7
- const logger = c.get("logger");
8
- const metrics = c.get("metrics");
9
- return {
10
- request: new BaseHookRequest(c),
11
- response: new BaseHookResponse(c, resParams),
12
- logger,
13
- metrics
14
- };
15
- }
16
- var _req = /* @__PURE__ */ new WeakMap(), _c = /* @__PURE__ */ new WeakMap(), _headersData = /* @__PURE__ */ new WeakMap(), _headers = /* @__PURE__ */ new WeakMap();
17
- class BaseHookRequest {
18
- get url() {
19
- const query = _class_private_field_get(this, _c).req.query();
20
- const q = Object.entries(query).map(([key, value]) => `${key}=${value}`).join("&");
21
- return q ? `${_class_private_field_get(this, _c).req.path}?${q}` : _class_private_field_get(this, _c).req.path;
22
- }
23
- // TODO: remove next major version
24
- set url(_u) {
25
- }
26
- get host() {
27
- return getHost(_class_private_field_get(this, _req).raw);
28
- }
29
- // TODO: remove next major version
30
- set host(_h) {
31
- }
32
- get pathname() {
33
- return _class_private_field_get(this, _req).path;
34
- }
35
- // TODO: remove next major version
36
- set pathname(_p) {
37
- }
38
- get query() {
39
- return _class_private_field_get(this, _req).query();
40
- }
41
- // TODO: remove next major version
42
- set query(_q) {
43
- }
44
- get headers() {
45
- return _class_private_field_get(this, _headers);
46
- }
47
- // TODO: remove next major version
48
- set headers(_h) {
49
- }
50
- get cookies() {
51
- return {
52
- // FIXME: ModernRequest Type Error
53
- get: (key) => {
54
- return getCookie(_class_private_field_get(this, _c), key);
55
- }
56
- };
57
- }
58
- get cookie() {
59
- return _class_private_field_get(this, _req).header("cookie");
60
- }
61
- // TODO: remove next major version
62
- set cookie(_c2) {
63
- }
64
- constructor(c) {
65
- _class_private_field_init(this, _req, {
66
- writable: true,
67
- value: void 0
68
- });
69
- _class_private_field_init(this, _c, {
70
- writable: true,
71
- value: void 0
72
- });
73
- _class_private_field_init(this, _headersData, {
74
- writable: true,
75
- value: void 0
76
- });
77
- _class_private_field_init(this, _headers, {
78
- writable: true,
79
- value: void 0
80
- });
81
- _class_private_field_set(this, _headersData, {});
82
- _class_private_field_set(this, _c, c);
83
- _class_private_field_set(this, _req, c.req);
84
- const rawHeaders = _class_private_field_get(this, _req).raw.headers;
85
- rawHeaders.forEach((value, key) => {
86
- _class_private_field_get(this, _headersData)[key] = value;
87
- });
88
- _class_private_field_set(this, _headers, new Proxy(_class_private_field_get(this, _headersData), {
89
- get(target, p) {
90
- return target[p];
91
- },
92
- set(target, p, newValue) {
93
- target[p] = newValue;
94
- rawHeaders.set(p, newValue);
95
- return true;
96
- }
97
- }));
98
- }
99
- }
100
- var _c1 = /* @__PURE__ */ new WeakMap(), _resArgs = /* @__PURE__ */ new WeakMap();
101
- class BaseHookResponse {
102
- get(key) {
103
- return _class_private_field_get(this, _c1).res.headers.get(key);
104
- }
105
- set(key, value) {
106
- if ([
107
- "set-cookie",
108
- "Set-Cookie"
109
- ].includes(key)) {
110
- var _class_private_field_get1;
111
- _class_private_field_get(this, _c1).header(key, value.toString(), {
112
- append: true
113
- });
114
- (_class_private_field_get1 = _class_private_field_get(this, _resArgs)) === null || _class_private_field_get1 === void 0 ? void 0 : _class_private_field_get1.headers.append(key, value.toString());
115
- } else {
116
- var _class_private_field_get2;
117
- _class_private_field_get(this, _c1).header(key, value.toString());
118
- (_class_private_field_get2 = _class_private_field_get(this, _resArgs)) === null || _class_private_field_get2 === void 0 ? void 0 : _class_private_field_get2.headers.set(key, value.toString());
119
- }
120
- }
121
- status(code) {
122
- _class_private_field_get(this, _c1).status(code);
123
- _class_private_field_get(this, _resArgs) && (_class_private_field_get(this, _resArgs).status = code);
124
- }
125
- getStatus() {
126
- return _class_private_field_get(this, _c1).res.status;
127
- }
128
- get cookies() {
129
- const setCookie = (key, value) => {
130
- _class_private_field_get(this, _c1).header("set-cookie", `${key}=${value}`, {
131
- append: true
132
- });
133
- };
134
- const clearCookie = () => {
135
- _class_private_field_get(this, _c1).header("set-cookie", void 0);
136
- };
137
- return {
138
- set: setCookie,
139
- clear: clearCookie
140
- };
141
- }
142
- raw(body, options) {
143
- _class_private_field_get(this, _c1).res = _class_private_field_get(this, _c1).newResponse(body, options);
144
- this.private_overrided = true;
145
- }
146
- constructor(c, resArgs) {
147
- _class_private_field_init(this, _c1, {
148
- writable: true,
149
- value: void 0
150
- });
151
- _class_private_field_init(this, _resArgs, {
152
- writable: true,
153
- value: void 0
154
- });
155
- this.private_overrided = false;
156
- _class_private_field_set(this, _c1, c);
157
- _class_private_field_set(this, _resArgs, resArgs);
158
- }
159
- }
160
- export {
161
- createBaseHookContext
162
- };
@@ -1,43 +0,0 @@
1
- import { createBaseHookContext } from "./base";
2
- import { RouterAPI } from "./routerApi";
3
- import { TemplateApi } from "./template";
4
- function getAfterMatchCtx(entryName, baseHookCtx) {
5
- const afterMatchCtx = baseHookCtx;
6
- afterMatchCtx.router = new RouterAPI(entryName);
7
- return afterMatchCtx;
8
- }
9
- async function getAfterRenderCtx(c, baseHookCtx, route) {
10
- const afterRenderCtx = baseHookCtx;
11
- const resBody = await c.res.text();
12
- afterRenderCtx.template = new TemplateApi(resBody);
13
- afterRenderCtx.route = route;
14
- return afterRenderCtx;
15
- }
16
- function createCustomMiddlewaresCtx(c, locals, resArgs) {
17
- var _c_env_node, _c_env_node1;
18
- const baseContext = createBaseHookContext(c, resArgs);
19
- const response = baseContext.response;
20
- response.locals = locals;
21
- return {
22
- ...baseContext,
23
- response,
24
- source: {
25
- req: (_c_env_node = c.env.node) === null || _c_env_node === void 0 ? void 0 : _c_env_node.req,
26
- res: (_c_env_node1 = c.env.node) === null || _c_env_node1 === void 0 ? void 0 : _c_env_node1.res
27
- }
28
- };
29
- }
30
- function createAfterStreamingRenderContext(baseHookCtx, route) {
31
- const streamingRenderCtx = baseHookCtx;
32
- streamingRenderCtx.route = route;
33
- return (chunk) => {
34
- streamingRenderCtx.chunk = chunk;
35
- return streamingRenderCtx;
36
- };
37
- }
38
- export {
39
- createAfterStreamingRenderContext,
40
- createCustomMiddlewaresCtx,
41
- getAfterMatchCtx,
42
- getAfterRenderCtx
43
- };
@@ -1,185 +0,0 @@
1
- import { time } from "@modern-js/runtime-utils/time";
2
- import { isArray, isFunction } from "@modern-js/utils";
3
- import { ServerTimings } from "../../constants";
4
- import { getLoaderCtx } from "../../helper";
5
- import { transformResponse } from "../../utils";
6
- import { createBaseHookContext } from "./base";
7
- import { createAfterStreamingRenderContext, createCustomMiddlewaresCtx, getAfterMatchCtx, getAfterRenderCtx } from "./context";
8
- const noop = () => {
9
- };
10
- const isHtmlResponse = (response) => {
11
- const contentType = response.headers.get("content-type");
12
- return contentType === null || contentType === void 0 ? void 0 : contentType.includes("text/html");
13
- };
14
- class CustomServer {
15
- getHookMiddleware(entryName, routes) {
16
- return async (c, next) => {
17
- const routeInfo = routes.find((route) => route.entryName === entryName);
18
- const monitors = c.get("monitors");
19
- const baseHookCtx = createBaseHookContext(c);
20
- const afterMatchCtx = getAfterMatchCtx(entryName, baseHookCtx);
21
- const getCost = time();
22
- await this.hooks.afterMatch.call(afterMatchCtx);
23
- const cost = getCost();
24
- cost && (monitors === null || monitors === void 0 ? void 0 : monitors.timing(ServerTimings.SERVER_HOOK_AFTER_MATCH, cost));
25
- const { url, status } = afterMatchCtx.router;
26
- if (url) {
27
- return c.redirect(url, status);
28
- }
29
- const { current } = afterMatchCtx.router;
30
- if (current !== entryName) {
31
- const rewriteRoute = routes.find((route) => route.entryName === current);
32
- if (rewriteRoute) {
33
- c.set("matchPathname", rewriteRoute.urlPath);
34
- c.set("matchEntryName", current);
35
- }
36
- }
37
- if (c.finalized) {
38
- return void 0;
39
- }
40
- await next();
41
- if (c.finalized && (!c.res.body || !isHtmlResponse(c.res) || [
42
- 404,
43
- 500
44
- ].includes(c.res.status))) {
45
- return void 0;
46
- }
47
- if (c.res) {
48
- c.status(c.res.status);
49
- }
50
- if (routeInfo.isStream) {
51
- const afterStreamingRenderContext = createAfterStreamingRenderContext(baseHookCtx, routeInfo);
52
- c.res = transformResponse(c.res, async (chunk) => {
53
- const context = afterStreamingRenderContext(chunk);
54
- const result = await this.hooks.afterStreamingRender.call(context);
55
- if (typeof result === "string") {
56
- return result;
57
- }
58
- return result.chunk;
59
- });
60
- } else {
61
- const afterRenderCtx = await getAfterRenderCtx(c, baseHookCtx, routeInfo);
62
- const getCost2 = time();
63
- await this.hooks.afterRender.call(afterRenderCtx);
64
- const cost2 = getCost2();
65
- cost2 && (monitors === null || monitors === void 0 ? void 0 : monitors.timing(ServerTimings.SERVER_HOOK_AFTER_RENDER, cost2));
66
- if (afterRenderCtx.response.private_overrided) {
67
- return void 0;
68
- }
69
- const newBody = afterRenderCtx.template.get();
70
- c.res = c.body(newBody);
71
- }
72
- };
73
- }
74
- async getServerMiddleware() {
75
- const serverMiddleware = await this.serverMiddlewarePromise;
76
- if (!serverMiddleware || !isFunction(serverMiddleware) && !isArray(serverMiddleware)) {
77
- return;
78
- }
79
- if (Array.isArray(serverMiddleware)) {
80
- const unstableMiddlewares = getServerMidFromUnstableMid(serverMiddleware);
81
- return unstableMiddlewares;
82
- }
83
- return async (c, next) => {
84
- var _c_env_node_res, _c_env_node, _c_env;
85
- const monitors = c.get("monitors");
86
- const locals = {};
87
- const resArgs = {
88
- headers: new Headers()
89
- };
90
- const customMiddlewareCtx = createCustomMiddlewaresCtx(c, locals, resArgs);
91
- const getCost = time();
92
- await serverMiddleware(customMiddlewareCtx);
93
- const cost = getCost();
94
- cost && (monitors === null || monitors === void 0 ? void 0 : monitors.timing(ServerTimings.SERVER_MIDDLEWARE, cost));
95
- c.set("locals", locals);
96
- if (isRedirect(resArgs.headers, resArgs.status)) {
97
- return c.redirect(resArgs.headers.get("Location") || "", resArgs.status || 302);
98
- }
99
- if ((_c_env = c.env) === null || _c_env === void 0 ? void 0 : (_c_env_node = _c_env.node) === null || _c_env_node === void 0 ? void 0 : (_c_env_node_res = _c_env_node.res) === null || _c_env_node_res === void 0 ? void 0 : _c_env_node_res.headersSent) {
100
- return void 0;
101
- }
102
- if (!c.finalized) {
103
- return next();
104
- }
105
- };
106
- }
107
- constructor(hooks, pwd) {
108
- this.hooks = hooks;
109
- const webExtension = [];
110
- this.serverMiddlewarePromise = hooks.prepareWebServer.call({
111
- pwd,
112
- config: {
113
- middleware: webExtension
114
- }
115
- });
116
- }
117
- }
118
- function getServerMidFromUnstableMid(serverMiddleware) {
119
- return serverMiddleware.map((middleware) => {
120
- return async (c, next) => {
121
- const context = await createMiddlewareContextFromHono(c);
122
- return middleware(context, next);
123
- };
124
- });
125
- }
126
- function isRedirect(headers, code) {
127
- return [
128
- 301,
129
- 302,
130
- 307,
131
- 308
132
- ].includes(code || 0) || headers.get("Location");
133
- }
134
- async function createMiddlewareContextFromHono(c) {
135
- const loaderContext = getLoaderCtx(c);
136
- const rawRequest = c.req.raw;
137
- const method = rawRequest.method.toUpperCase();
138
- if (![
139
- "GET",
140
- "HEAD"
141
- ].includes(method) && !rawRequest.body && c.env.node.req) {
142
- const streamModulePath = "../../adapters/node/polyfills/stream.js";
143
- const { createReadableStreamFromReadable } = await import(streamModulePath);
144
- const init = {
145
- body: createReadableStreamFromReadable(c.env.node.req),
146
- headers: rawRequest.headers,
147
- signal: rawRequest.signal,
148
- method: rawRequest.method
149
- };
150
- init.duplex = "half";
151
- c.req.raw = new Request(rawRequest.url, init);
152
- }
153
- return {
154
- get request() {
155
- return c.req.raw;
156
- },
157
- set request(request) {
158
- c.req.raw = request;
159
- },
160
- get response() {
161
- return c.res;
162
- },
163
- set response(newRes) {
164
- c.res = newRes;
165
- },
166
- get route() {
167
- return c.get("route");
168
- },
169
- get(key) {
170
- return loaderContext.get(key);
171
- },
172
- set(key, value) {
173
- return loaderContext.set(key, value);
174
- },
175
- status: c.status.bind(c),
176
- header: c.header.bind(c),
177
- body: c.body.bind(c),
178
- html: c.html.bind(c),
179
- redirect: c.redirect.bind(c)
180
- };
181
- }
182
- export {
183
- CustomServer,
184
- getServerMidFromUnstableMid
185
- };
@@ -1,20 +0,0 @@
1
- class RouterAPI {
2
- redirect(url, status = 302) {
3
- this.url = url;
4
- this.status = status;
5
- }
6
- rewrite(entryName) {
7
- this.current = entryName;
8
- }
9
- use(entryName) {
10
- this.rewrite(entryName);
11
- }
12
- constructor(entryName) {
13
- this.current = entryName;
14
- this.status = 200;
15
- this.url = "";
16
- }
17
- }
18
- export {
19
- RouterAPI
20
- };
@@ -1,34 +0,0 @@
1
- import { REPLACE_REG } from "../../constants";
2
- class TemplateApi {
3
- set(content) {
4
- this.body = content;
5
- }
6
- get() {
7
- return this.body;
8
- }
9
- prependHead(fragment) {
10
- const { head } = REPLACE_REG.before;
11
- this.replaceBody(new RegExp(head), (beforeHead) => `${beforeHead}${fragment}`);
12
- }
13
- appendHead(fragment) {
14
- const { head } = REPLACE_REG.after;
15
- this.replaceBody(head, () => `${fragment}${head}`);
16
- }
17
- prependBody(fragment) {
18
- const { body } = REPLACE_REG.before;
19
- this.replaceBody(new RegExp(body), (beforeBody) => `${beforeBody}${fragment}`);
20
- }
21
- appendBody(fragment) {
22
- const { body } = REPLACE_REG.after;
23
- this.replaceBody(body, () => `${fragment}${body}`);
24
- }
25
- replaceBody(searchValue, replaceCb) {
26
- this.body = this.body.replace(searchValue, replaceCb);
27
- }
28
- constructor(body) {
29
- this.body = body;
30
- }
31
- }
32
- export {
33
- TemplateApi
34
- };
@@ -1,30 +0,0 @@
1
- import { compatPlugin } from "./compat";
2
- import { logPlugin } from "./log";
3
- import { initMonitorsPlugin, injectServerTiming, injectloggerPlugin } from "./monitors";
4
- import { processedByPlugin } from "./processedBy";
5
- import { injectRenderHandlerPlugin } from "./render";
6
- import { injectRoutePlugin } from "./route";
7
- function createSilenceLogger() {
8
- return new Proxy({}, {
9
- get: () => {
10
- return () => {
11
- };
12
- }
13
- });
14
- }
15
- function createDefaultPlugins(options = {}) {
16
- const plugins = [
17
- compatPlugin(),
18
- logPlugin(),
19
- initMonitorsPlugin(),
20
- injectRenderHandlerPlugin(options),
21
- injectloggerPlugin(options.logger ? options.logger : createSilenceLogger()),
22
- injectServerTiming(),
23
- processedByPlugin(),
24
- injectRoutePlugin()
25
- ];
26
- return plugins;
27
- }
28
- export {
29
- createDefaultPlugins
30
- };
@@ -1,20 +0,0 @@
1
- const faviconPlugin = () => ({
2
- name: "@modern-js/plugin-favicon",
3
- setup(api) {
4
- return {
5
- prepare() {
6
- const { middlewares } = api.useAppContext();
7
- middlewares.push({
8
- name: "favicon-fallback",
9
- path: "/favicon.ico",
10
- handler: async (c, _next) => {
11
- return c.body(null, 204);
12
- }
13
- });
14
- }
15
- };
16
- }
17
- });
18
- export {
19
- faviconPlugin
20
- };