@modern-js/main-doc 2.69.7 → 3.0.0-alpha.1

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 (618) hide show
  1. package/docs/en/{_meta.json → _nav.json} +5 -1
  2. package/docs/en/apis/app/commands.mdx +8 -33
  3. package/docs/en/apis/app/hooks/src/entry.mdx +1 -5
  4. package/docs/en/apis/app/hooks/src/entry.server.mdx +4 -5
  5. package/docs/en/apis/app/hooks/src/routes.mdx +2 -2
  6. package/docs/en/apis/app/runtime/_meta.json +0 -18
  7. package/docs/en/apis/app/runtime/bff/use-hono-context.mdx +2 -2
  8. package/docs/en/apis/app/runtime/router/router.mdx +1 -1
  9. package/docs/en/apis/app/runtime/utility/css-in-js.mdx +3 -2
  10. package/docs/en/community/blog/v2-release-note.mdx +0 -2
  11. package/docs/en/community/contributing-guide.mdx +10 -12
  12. package/docs/en/components/bff-upload.mdx +19 -17
  13. package/docs/en/components/build-output.mdx +45 -0
  14. package/docs/en/components/bundler.mdx +1 -1
  15. package/docs/en/components/debug-app.mdx +1 -1
  16. package/docs/en/components/enable-bff-caution.mdx +2 -2
  17. package/docs/en/components/enable-bff.mdx +42 -8
  18. package/docs/en/components/enable-ssg.mdx +49 -0
  19. package/docs/en/components/entry-scan-logic.mdx +7 -0
  20. package/docs/en/components/esbuild.mdx +2 -2
  21. package/docs/en/components/extend-bff-function.mdx +2 -4
  22. package/docs/en/components/hono.mdx +119 -0
  23. package/docs/en/components/init-app.mdx +40 -17
  24. package/docs/en/components/international/custom-instance-code.mdx +16 -0
  25. package/docs/en/components/international/init-options-desc.mdx +1 -0
  26. package/docs/en/components/international/install-command.mdx +23 -0
  27. package/docs/en/components/international/instance-code.mdx +26 -0
  28. package/docs/en/components/international/introduce.mdx +2 -0
  29. package/docs/en/components/module-federation.mdx +4 -4
  30. package/docs/en/components/nodeVersion.mdx +2 -6
  31. package/docs/en/components/prerequisites.mdx +1 -1
  32. package/docs/en/components/ua-polyfill.mdx +16 -12
  33. package/docs/en/components/upgrade-config-deploy.mdx +0 -0
  34. package/docs/en/configure/_meta.json +7 -8
  35. package/docs/en/configure/app/bff/cross-project.mdx +24 -0
  36. package/docs/en/configure/app/builder-plugins.mdx +1 -2
  37. package/docs/en/configure/app/dev/lazy-compilation.mdx +45 -0
  38. package/docs/en/configure/app/dev/server.mdx +211 -0
  39. package/docs/en/configure/app/dev/setup-middlewares.mdx +4 -22
  40. package/docs/en/configure/app/experiments/source-build.mdx +0 -1
  41. package/docs/en/configure/app/html/app-icon.mdx +1 -23
  42. package/docs/en/configure/app/output/assets-retry.mdx +1 -1
  43. package/docs/en/configure/app/output/disable-inline-runtime-chunk.mdx +2 -2
  44. package/docs/en/configure/app/output/filename.mdx +2 -4
  45. package/docs/en/configure/app/output/inline-scripts.mdx +1 -1
  46. package/docs/en/configure/app/output/override-browserslist.mdx +6 -4
  47. package/docs/en/configure/app/output/source-map.mdx +6 -3
  48. package/docs/en/configure/app/output/ssg.mdx +12 -43
  49. package/docs/en/configure/app/output/ssgByEntries.mdx +93 -0
  50. package/docs/en/configure/app/output/temp-dir.mdx +3 -3
  51. package/docs/en/configure/app/performance/build-cache.mdx +1 -5
  52. package/docs/en/configure/app/performance/profile.mdx +1 -1
  53. package/docs/en/configure/app/plugins.mdx +1 -3
  54. package/docs/en/configure/app/resolve/alias-strategy.mdx +14 -0
  55. package/docs/en/configure/app/resolve/alias.mdx +13 -0
  56. package/docs/en/configure/app/resolve/condition-names.mdx +18 -0
  57. package/docs/en/configure/app/resolve/dedupe.mdx +13 -0
  58. package/docs/en/configure/app/resolve/extensions.mdx +18 -0
  59. package/docs/en/configure/app/runtime/0-intro.mdx +2 -51
  60. package/docs/en/configure/app/runtime/router.mdx +0 -4
  61. package/docs/en/configure/app/security/check-syntax.mdx +1 -1
  62. package/docs/en/configure/app/security/sri.mdx +0 -1
  63. package/docs/en/configure/app/server/port.mdx +1 -21
  64. package/docs/en/configure/app/server/rsc.mdx +30 -0
  65. package/docs/en/configure/app/server/ssr.mdx +20 -9
  66. package/docs/en/configure/app/source/alias.mdx +1 -1
  67. package/docs/en/configure/app/source/decorators.mdx +4 -2
  68. package/docs/en/configure/app/source/enable-async-entry.mdx +1 -1
  69. package/docs/en/configure/app/source/entries.mdx +0 -2
  70. package/docs/en/configure/app/source/include.mdx +2 -14
  71. package/docs/en/configure/app/source/main-entry-name.mdx +4 -4
  72. package/docs/en/configure/app/source/transform-import.mdx +1 -59
  73. package/docs/en/configure/app/tools/bundler-chain.mdx +5 -5
  74. package/docs/en/configure/app/tools/css-extract.mdx +1 -1
  75. package/docs/en/configure/app/tools/dev-server.mdx +22 -256
  76. package/docs/en/configure/app/tools/html-plugin.mdx +3 -3
  77. package/docs/en/configure/app/tools/lightningcss-loader.mdx +0 -1
  78. package/docs/en/configure/app/tools/swc.mdx +1 -43
  79. package/docs/en/configure/app/usage.mdx +5 -27
  80. package/docs/en/guides/_meta.json +5 -1
  81. package/docs/en/guides/advanced-features/_meta.json +6 -0
  82. package/docs/en/guides/advanced-features/bff/_meta.json +9 -1
  83. package/docs/en/guides/advanced-features/bff/cross-project.mdx +2 -8
  84. package/docs/en/guides/advanced-features/bff/extend-server.mdx +18 -3
  85. package/docs/en/guides/advanced-features/bff/frameworks.mdx +2 -15
  86. package/docs/en/guides/advanced-features/bff/function.mdx +6 -10
  87. package/docs/en/guides/advanced-features/bff/operators.mdx +628 -0
  88. package/docs/en/guides/advanced-features/bff/sdk.mdx +20 -12
  89. package/docs/en/guides/advanced-features/bff/upload.mdx +3 -1
  90. package/docs/en/guides/advanced-features/build-performance.mdx +23 -26
  91. package/docs/en/guides/advanced-features/compatibility.mdx +53 -9
  92. package/docs/en/guides/advanced-features/international/_meta.json +11 -0
  93. package/docs/en/guides/advanced-features/international/advanced.mdx +193 -0
  94. package/docs/en/guides/advanced-features/international/api.mdx +400 -0
  95. package/docs/en/guides/advanced-features/international/basic.mdx +417 -0
  96. package/docs/en/guides/advanced-features/international/best-practices.mdx +135 -0
  97. package/docs/en/guides/advanced-features/international/configuration.mdx +428 -0
  98. package/docs/en/guides/advanced-features/international/locale-detection.mdx +276 -0
  99. package/docs/en/guides/advanced-features/international/quick-start.mdx +126 -0
  100. package/docs/en/guides/advanced-features/international/resource-loading.mdx +417 -0
  101. package/docs/en/guides/advanced-features/international/routing.mdx +212 -0
  102. package/docs/en/guides/advanced-features/international.mdx +37 -0
  103. package/docs/en/guides/advanced-features/low-level.mdx +21 -16
  104. package/docs/en/guides/advanced-features/page-performance/code-split.mdx +4 -4
  105. package/docs/en/guides/advanced-features/page-performance/inline-assets.mdx +4 -4
  106. package/docs/en/guides/advanced-features/page-performance/optimize-bundle.mdx +8 -22
  107. package/docs/en/guides/advanced-features/page-performance/react-compiler.mdx +19 -12
  108. package/docs/en/guides/advanced-features/rspack-start.mdx +3 -23
  109. package/docs/en/guides/advanced-features/server-monitor/logger.mdx +0 -4
  110. package/docs/en/guides/advanced-features/server-monitor/monitors.mdx +121 -36
  111. package/docs/en/guides/advanced-features/web-server.mdx +82 -299
  112. package/docs/en/guides/basic-features/_meta.json +6 -1
  113. package/docs/en/guides/basic-features/css/css-in-js.mdx +46 -11
  114. package/docs/en/guides/basic-features/css/css-modules.mdx +5 -17
  115. package/docs/en/guides/basic-features/css/css.mdx +3 -3
  116. package/docs/en/guides/basic-features/css/tailwindcss.mdx +5 -89
  117. package/docs/en/guides/basic-features/data/data-cache.mdx +65 -77
  118. package/docs/en/guides/basic-features/data/data-fetch.mdx +19 -18
  119. package/docs/en/guides/basic-features/data/data-write.mdx +2 -2
  120. package/docs/en/guides/basic-features/debug/mock.mdx +4 -1
  121. package/docs/en/guides/basic-features/debug/proxy.mdx +6 -17
  122. package/docs/en/guides/basic-features/debug/rsdoctor.mdx +5 -5
  123. package/docs/en/guides/basic-features/deploy.mdx +25 -18
  124. package/docs/en/guides/basic-features/env-vars.mdx +1 -1
  125. package/docs/en/guides/basic-features/html.mdx +1 -1
  126. package/docs/en/guides/basic-features/output-files.mdx +3 -3
  127. package/docs/en/guides/basic-features/render/_meta.json +1 -1
  128. package/docs/en/guides/basic-features/render/before-render.mdx +16 -23
  129. package/docs/en/guides/basic-features/render/overview.mdx +51 -0
  130. package/docs/en/guides/basic-features/render/rsc.mdx +399 -0
  131. package/docs/en/guides/basic-features/render/ssg.mdx +26 -67
  132. package/docs/en/guides/basic-features/render/ssr-cache.mdx +6 -10
  133. package/docs/en/guides/basic-features/render/ssr.mdx +31 -31
  134. package/docs/en/guides/basic-features/render/streaming-ssr.mdx +29 -9
  135. package/docs/en/guides/basic-features/routes/_meta.json +1 -0
  136. package/docs/en/guides/basic-features/routes/config-routes.mdx +427 -0
  137. package/docs/en/guides/basic-features/{routes.mdx → routes/routes.mdx} +7 -110
  138. package/docs/en/guides/basic-features/static-assets/json-files.mdx +21 -3
  139. package/docs/en/guides/basic-features/static-assets/svg-assets.mdx +0 -4
  140. package/docs/en/guides/basic-features/static-assets.mdx +2 -2
  141. package/docs/en/guides/concept/builder.mdx +27 -12
  142. package/docs/en/guides/concept/entries.mdx +139 -147
  143. package/docs/en/guides/get-started/glossary.mdx +0 -18
  144. package/docs/en/guides/get-started/introduction.mdx +1 -4
  145. package/docs/en/guides/get-started/quick-start.mdx +4 -71
  146. package/docs/en/guides/get-started/tech-stack.mdx +7 -27
  147. package/docs/en/guides/get-started/upgrade.mdx +30 -23
  148. package/docs/en/guides/topic-detail/_meta.json +0 -12
  149. package/docs/en/guides/topic-detail/module-federation/_meta.json +1 -1
  150. package/docs/en/guides/topic-detail/module-federation/application.mdx +16 -15
  151. package/docs/en/guides/topic-detail/module-federation/i18n.mdx +670 -0
  152. package/docs/en/guides/topic-detail/module-federation/introduce.mdx +5 -4
  153. package/docs/en/guides/topic-detail/module-federation/ssr.mdx +50 -2
  154. package/docs/en/guides/topic-detail/module-federation/usage.mdx +10 -30
  155. package/docs/en/guides/troubleshooting/builder.mdx +3 -82
  156. package/docs/en/guides/troubleshooting/cli.mdx +6 -30
  157. package/docs/en/guides/troubleshooting/dependencies.mdx +22 -22
  158. package/docs/en/guides/upgrade/_meta.json +1 -0
  159. package/docs/en/guides/upgrade/config.mdx +936 -0
  160. package/docs/en/guides/upgrade/entry.mdx +463 -0
  161. package/docs/en/guides/upgrade/other.mdx +83 -0
  162. package/docs/en/guides/upgrade/overview.mdx +33 -0
  163. package/docs/en/guides/upgrade/tailwindcss.mdx +130 -0
  164. package/docs/en/guides/upgrade/web-server.mdx +91 -0
  165. package/docs/en/plugin/_meta.json +5 -0
  166. package/docs/en/plugin/cli-plugins/_meta.json +1 -1
  167. package/docs/en/plugin/cli-plugins/api.mdx +17 -68
  168. package/docs/en/plugin/cli-plugins/life-cycle.mdx +0 -4
  169. package/docs/en/plugin/introduction.mdx +44 -44
  170. package/docs/en/plugin/official/_meta.json +0 -5
  171. package/docs/en/plugin/official/cli-plugins/_meta.json +1 -1
  172. package/docs/en/plugin/official/cli-plugins/plugin-styled-components.mdx +5 -0
  173. package/docs/en/plugin/official/cli-plugins.mdx +0 -2
  174. package/docs/en/plugin/plugin-system.mdx +69 -62
  175. package/docs/en/plugin/runtime-plugins/_meta.json +1 -1
  176. package/docs/en/plugin/runtime-plugins/api.mdx +62 -59
  177. package/docs/en/plugin/server-plugins/_meta.json +1 -0
  178. package/docs/en/plugin/server-plugins/api.mdx +210 -1
  179. package/docs/en/plugin/server-plugins/life-cycle.mdx +41 -1
  180. package/docs/en/tutorials/_meta.json +0 -10
  181. package/docs/en/tutorials/examples/csr-auth.mdx +1 -1
  182. package/docs/en/tutorials/foundations/introduction.mdx +9 -25
  183. package/docs/zh/{_meta.json → _nav.json} +10 -6
  184. package/docs/zh/apis/app/commands.mdx +8 -33
  185. package/docs/zh/apis/app/hooks/src/entry.mdx +1 -5
  186. package/docs/zh/apis/app/hooks/src/entry.server.mdx +4 -5
  187. package/docs/zh/apis/app/hooks/src/routes.mdx +2 -2
  188. package/docs/zh/apis/app/runtime/_meta.json +0 -18
  189. package/docs/zh/apis/app/runtime/bff/use-hono-context.mdx +2 -2
  190. package/docs/zh/apis/app/runtime/utility/css-in-js.mdx +3 -2
  191. package/docs/zh/community/blog/v2-release-note.mdx +0 -2
  192. package/docs/zh/community/contributing-guide.mdx +10 -12
  193. package/docs/zh/components/auto-upgrade.mdx +0 -0
  194. package/docs/zh/components/bff-operator-code.mdx +5 -0
  195. package/docs/zh/components/bff-upload.mdx +8 -7
  196. package/docs/zh/components/build-output.mdx +45 -0
  197. package/docs/zh/components/bundler.mdx +1 -1
  198. package/docs/zh/components/debug-app.mdx +1 -1
  199. package/docs/zh/components/enable-bff-caution.mdx +1 -1
  200. package/docs/zh/components/enable-bff.mdx +41 -8
  201. package/docs/zh/components/enable-ssg.mdx +49 -0
  202. package/docs/zh/components/entry-scan-logic.mdx +7 -0
  203. package/docs/zh/components/esbuild.mdx +2 -2
  204. package/docs/zh/components/extend-bff-function.mdx +2 -4
  205. package/docs/zh/components/hono.mdx +119 -0
  206. package/docs/zh/components/init-app.mdx +40 -18
  207. package/docs/zh/components/international/custom-instance-code.mdx +16 -0
  208. package/docs/zh/components/international/init-options-desc.mdx +1 -0
  209. package/docs/zh/components/international/install-command.mdx +23 -0
  210. package/docs/zh/components/international/instance-code.mdx +26 -0
  211. package/docs/zh/components/international/introduce.mdx +2 -0
  212. package/docs/zh/components/international/platform-support.mdx +0 -0
  213. package/docs/zh/components/module-federation.mdx +4 -4
  214. package/docs/zh/components/new-entry-tooltip.mdx +0 -0
  215. package/docs/zh/components/nodeVersion.mdx +3 -7
  216. package/docs/zh/components/prerequisites.mdx +1 -1
  217. package/docs/zh/components/self-route-example.mdx +3 -3
  218. package/docs/zh/components/ua-polyfill.mdx +11 -6
  219. package/docs/zh/components/upgrade-browserslist.mdx +0 -0
  220. package/docs/zh/components/upgrade-config-deploy.mdx +0 -0
  221. package/docs/zh/configure/_meta.json +7 -8
  222. package/docs/zh/configure/app/bff/cross-project.mdx +24 -0
  223. package/docs/zh/configure/app/builder-plugins.mdx +1 -2
  224. package/docs/zh/configure/app/dev/lazy-compilation.mdx +44 -0
  225. package/docs/zh/configure/app/dev/server.mdx +211 -0
  226. package/docs/zh/configure/app/dev/setup-middlewares.mdx +4 -23
  227. package/docs/zh/configure/app/experiments/source-build.mdx +0 -1
  228. package/docs/zh/configure/app/html/app-icon.mdx +1 -23
  229. package/docs/zh/configure/app/output/assets-retry.mdx +1 -1
  230. package/docs/zh/configure/app/output/disable-inline-runtime-chunk.mdx +2 -2
  231. package/docs/zh/configure/app/output/filename.mdx +2 -4
  232. package/docs/zh/configure/app/output/inline-scripts.mdx +1 -1
  233. package/docs/zh/configure/app/output/override-browserslist.mdx +3 -3
  234. package/docs/zh/configure/app/output/source-map.mdx +10 -3
  235. package/docs/zh/configure/app/output/ssg.mdx +13 -45
  236. package/docs/zh/configure/app/output/ssgByEntries.mdx +94 -0
  237. package/docs/zh/configure/app/output/temp-dir.mdx +3 -3
  238. package/docs/zh/configure/app/performance/build-cache.mdx +1 -5
  239. package/docs/zh/configure/app/performance/profile.mdx +1 -1
  240. package/docs/zh/configure/app/plugins.mdx +1 -2
  241. package/docs/zh/configure/app/resolve/alias-strategy.mdx +14 -0
  242. package/docs/zh/configure/app/resolve/alias.mdx +13 -0
  243. package/docs/zh/configure/app/resolve/condition-names.mdx +18 -0
  244. package/docs/zh/configure/app/resolve/dedupe.mdx +14 -0
  245. package/docs/zh/configure/app/resolve/extensions.mdx +18 -0
  246. package/docs/zh/configure/app/runtime/0-intro.mdx +2 -53
  247. package/docs/zh/configure/app/runtime/router.mdx +0 -4
  248. package/docs/zh/configure/app/security/check-syntax.mdx +1 -1
  249. package/docs/zh/configure/app/security/sri.mdx +0 -1
  250. package/docs/zh/configure/app/server/port.mdx +2 -21
  251. package/docs/zh/configure/app/server/rsc.mdx +30 -0
  252. package/docs/zh/configure/app/server/ssr.mdx +21 -11
  253. package/docs/zh/configure/app/source/alias.mdx +1 -1
  254. package/docs/zh/configure/app/source/decorators.mdx +4 -4
  255. package/docs/zh/configure/app/source/enable-async-entry.mdx +1 -1
  256. package/docs/zh/configure/app/source/entries.mdx +0 -2
  257. package/docs/zh/configure/app/source/include.mdx +2 -16
  258. package/docs/zh/configure/app/source/main-entry-name.mdx +4 -4
  259. package/docs/zh/configure/app/source/transform-import.mdx +1 -59
  260. package/docs/zh/configure/app/tools/bundler-chain.mdx +6 -6
  261. package/docs/zh/configure/app/tools/css-extract.mdx +1 -1
  262. package/docs/zh/configure/app/tools/dev-server.mdx +14 -248
  263. package/docs/zh/configure/app/tools/html-plugin.mdx +3 -2
  264. package/docs/zh/configure/app/tools/lightningcss-loader.mdx +0 -1
  265. package/docs/zh/configure/app/tools/swc.mdx +1 -43
  266. package/docs/zh/configure/app/usage.mdx +6 -28
  267. package/docs/zh/guides/_meta.json +5 -1
  268. package/docs/zh/guides/advanced-features/_meta.json +6 -1
  269. package/docs/zh/guides/advanced-features/bff/_meta.json +9 -1
  270. package/docs/zh/guides/advanced-features/bff/cross-project.mdx +8 -16
  271. package/docs/zh/guides/advanced-features/bff/extend-server.mdx +25 -8
  272. package/docs/zh/guides/advanced-features/bff/frameworks.mdx +2 -16
  273. package/docs/zh/guides/advanced-features/bff/function.mdx +7 -12
  274. package/docs/zh/guides/advanced-features/bff/operators.mdx +628 -0
  275. package/docs/zh/guides/advanced-features/bff/sdk.mdx +23 -16
  276. package/docs/zh/guides/advanced-features/bff/upload.mdx +3 -1
  277. package/docs/zh/guides/advanced-features/build-performance.mdx +23 -30
  278. package/docs/zh/guides/advanced-features/compatibility.mdx +44 -0
  279. package/docs/zh/guides/advanced-features/international/_meta.json +11 -0
  280. package/docs/zh/guides/advanced-features/international/advanced.mdx +193 -0
  281. package/docs/zh/guides/advanced-features/international/api.mdx +400 -0
  282. package/docs/zh/guides/advanced-features/international/basic.mdx +416 -0
  283. package/docs/zh/guides/advanced-features/international/best-practices.mdx +135 -0
  284. package/docs/zh/guides/advanced-features/international/configuration.mdx +432 -0
  285. package/docs/zh/guides/advanced-features/international/locale-detection.mdx +304 -0
  286. package/docs/zh/guides/advanced-features/international/quick-start.mdx +126 -0
  287. package/docs/zh/guides/advanced-features/international/resource-loading.mdx +417 -0
  288. package/docs/zh/guides/advanced-features/international/routing.mdx +212 -0
  289. package/docs/zh/guides/advanced-features/international.mdx +36 -0
  290. package/docs/zh/guides/advanced-features/low-level.mdx +21 -16
  291. package/docs/zh/guides/advanced-features/page-performance/code-split.mdx +3 -3
  292. package/docs/zh/guides/advanced-features/page-performance/inline-assets.mdx +4 -4
  293. package/docs/zh/guides/advanced-features/page-performance/optimize-bundle.mdx +8 -22
  294. package/docs/zh/guides/advanced-features/page-performance/react-compiler.mdx +19 -12
  295. package/docs/zh/guides/advanced-features/server-monitor/logger.mdx +0 -4
  296. package/docs/zh/guides/advanced-features/server-monitor/monitors.mdx +120 -37
  297. package/docs/zh/guides/advanced-features/web-server.mdx +79 -300
  298. package/docs/zh/guides/basic-features/_meta.json +6 -1
  299. package/docs/zh/guides/basic-features/css/css-in-js.mdx +40 -5
  300. package/docs/zh/guides/basic-features/css/css-modules.mdx +6 -17
  301. package/docs/zh/guides/basic-features/css/css.mdx +2 -2
  302. package/docs/zh/guides/basic-features/css/tailwindcss.mdx +6 -90
  303. package/docs/zh/guides/basic-features/data/data-cache.mdx +55 -59
  304. package/docs/zh/guides/basic-features/data/data-fetch.mdx +14 -16
  305. package/docs/zh/guides/basic-features/data/data-write.mdx +4 -4
  306. package/docs/zh/guides/basic-features/debug/mock.mdx +4 -1
  307. package/docs/zh/guides/basic-features/debug/proxy.mdx +4 -15
  308. package/docs/zh/guides/basic-features/debug/rsdoctor.mdx +6 -6
  309. package/docs/zh/guides/basic-features/deploy.mdx +24 -20
  310. package/docs/zh/guides/basic-features/env-vars.mdx +1 -1
  311. package/docs/zh/guides/basic-features/html.mdx +2 -2
  312. package/docs/zh/guides/basic-features/output-files.mdx +3 -3
  313. package/docs/zh/guides/basic-features/render/_meta.json +1 -1
  314. package/docs/zh/guides/basic-features/render/before-render.mdx +17 -24
  315. package/docs/zh/guides/basic-features/render/overview.mdx +52 -0
  316. package/docs/zh/guides/basic-features/render/rsc.mdx +399 -0
  317. package/docs/zh/guides/basic-features/render/ssg.mdx +27 -69
  318. package/docs/zh/guides/basic-features/render/ssr-cache.mdx +5 -9
  319. package/docs/zh/guides/basic-features/render/ssr.mdx +34 -31
  320. package/docs/zh/guides/basic-features/render/streaming-ssr.mdx +34 -14
  321. package/docs/zh/guides/basic-features/routes/_meta.json +1 -0
  322. package/docs/zh/guides/basic-features/routes/config-routes.mdx +426 -0
  323. package/docs/zh/guides/basic-features/{routes.mdx → routes/routes.mdx} +8 -114
  324. package/docs/zh/guides/basic-features/static-assets/json-files.mdx +21 -3
  325. package/docs/zh/guides/basic-features/static-assets/svg-assets.mdx +0 -4
  326. package/docs/zh/guides/basic-features/static-assets.mdx +2 -2
  327. package/docs/zh/guides/basic-features/testing/cypress.mdx +5 -5
  328. package/docs/zh/guides/basic-features/testing/jest.mdx +12 -12
  329. package/docs/zh/guides/concept/builder.mdx +26 -11
  330. package/docs/zh/guides/concept/entries.mdx +95 -92
  331. package/docs/zh/guides/get-started/glossary.mdx +0 -18
  332. package/docs/zh/guides/get-started/introduction.mdx +1 -5
  333. package/docs/zh/guides/get-started/quick-start.mdx +5 -72
  334. package/docs/zh/guides/get-started/tech-stack.mdx +8 -28
  335. package/docs/zh/guides/get-started/upgrade.mdx +30 -23
  336. package/docs/zh/guides/topic-detail/_meta.json +0 -12
  337. package/docs/zh/guides/topic-detail/module-federation/_meta.json +1 -1
  338. package/docs/zh/guides/topic-detail/module-federation/application.mdx +18 -16
  339. package/docs/zh/guides/topic-detail/module-federation/i18n.mdx +623 -0
  340. package/docs/zh/guides/topic-detail/module-federation/introduce.mdx +4 -4
  341. package/docs/zh/guides/topic-detail/module-federation/ssr.mdx +51 -5
  342. package/docs/zh/guides/topic-detail/module-federation/usage.mdx +11 -31
  343. package/docs/zh/guides/troubleshooting/builder.mdx +4 -85
  344. package/docs/zh/guides/troubleshooting/cli.mdx +6 -30
  345. package/docs/zh/guides/troubleshooting/dependencies.mdx +23 -23
  346. package/docs/zh/guides/upgrade/_meta.json +1 -0
  347. package/docs/zh/guides/upgrade/config.mdx +940 -0
  348. package/docs/zh/guides/upgrade/entry.mdx +463 -0
  349. package/docs/zh/guides/upgrade/other.md +90 -0
  350. package/docs/zh/guides/upgrade/overview.mdx +36 -0
  351. package/docs/zh/guides/upgrade/tailwindcss.mdx +130 -0
  352. package/docs/zh/guides/upgrade/web-server.md +93 -0
  353. package/docs/zh/plugin/_meta.json +5 -0
  354. package/docs/zh/plugin/cli-plugins/_meta.json +1 -1
  355. package/docs/zh/plugin/cli-plugins/api.mdx +19 -70
  356. package/docs/zh/plugin/cli-plugins/life-cycle.mdx +0 -4
  357. package/docs/zh/plugin/introduction.mdx +40 -40
  358. package/docs/zh/plugin/official/_meta.json +0 -5
  359. package/docs/zh/plugin/official/cli-plugins/_meta.json +1 -1
  360. package/docs/zh/plugin/official/cli-plugins/plugin-styled-components.mdx +5 -0
  361. package/docs/zh/plugin/official/cli-plugins.mdx +0 -2
  362. package/docs/zh/plugin/plugin-system.mdx +43 -51
  363. package/docs/zh/plugin/runtime-plugins/_meta.json +1 -1
  364. package/docs/zh/plugin/runtime-plugins/api.mdx +58 -56
  365. package/docs/zh/plugin/server-plugins/_meta.json +1 -0
  366. package/docs/zh/plugin/server-plugins/api.mdx +210 -1
  367. package/docs/zh/plugin/server-plugins/life-cycle.mdx +41 -1
  368. package/docs/zh/tutorials/_meta.json +0 -10
  369. package/docs/zh/tutorials/examples/csr-auth.mdx +1 -1
  370. package/docs/zh/tutorials/foundations/introduction.mdx +8 -25
  371. package/i18n.json +0 -16
  372. package/package.json +12 -12
  373. package/rspress.config.ts +5 -8
  374. package/src/components/ContentCard/index.module.scss +11 -7
  375. package/src/components/ContentCard/index.tsx +1 -1
  376. package/src/components/FeatureLayout/index.module.css +1 -1
  377. package/src/components/Footer/index.tsx +2 -14
  378. package/src/components/Footer/styles.module.scss +5 -5
  379. package/src/components/FrameworkCode/index.tsx +605 -0
  380. package/src/components/ListCard/index.tsx +1 -1
  381. package/src/components/RandomMemberList/index.tsx +1 -1
  382. package/src/components/RsbuildLink/index.tsx +1 -1
  383. package/src/components/Sandpack/index.tsx +1 -1
  384. package/src/custom.scss +15 -0
  385. package/src/i18n/enUS.ts +2 -4
  386. package/src/i18n/index.ts +1 -1
  387. package/src/i18n/zhCN.ts +2 -4
  388. package/src/index.ts +2 -1
  389. package/src/pages/index.module.scss +59 -41
  390. package/src/pages/index.tsx +9 -24
  391. package/docs/en/apis/app/hooks/server/index_.mdx +0 -10
  392. package/docs/en/apis/app/hooks/src/index_.mdx +0 -38
  393. package/docs/en/apis/app/hooks/src/stories.mdx +0 -16
  394. package/docs/en/apis/app/runtime/app/define-config.mdx +0 -67
  395. package/docs/en/apis/app/runtime/core/bootstrap.mdx +0 -74
  396. package/docs/en/apis/app/runtime/core/create-app.mdx +0 -49
  397. package/docs/en/apis/app/runtime/core/use-loader.mdx +0 -89
  398. package/docs/en/apis/app/runtime/core/use-module-apps.mdx +0 -140
  399. package/docs/en/apis/app/runtime/core/use-runtime-context.mdx +0 -116
  400. package/docs/en/apis/app/runtime/model/Provider.mdx +0 -36
  401. package/docs/en/apis/app/runtime/model/auto-actions.mdx +0 -122
  402. package/docs/en/apis/app/runtime/model/connect.mdx +0 -146
  403. package/docs/en/apis/app/runtime/model/create-app.mdx +0 -75
  404. package/docs/en/apis/app/runtime/model/create-store.mdx +0 -61
  405. package/docs/en/apis/app/runtime/model/handle-effect.mdx +0 -107
  406. package/docs/en/apis/app/runtime/model/model_.mdx +0 -198
  407. package/docs/en/apis/app/runtime/model/use-local-model.mdx +0 -29
  408. package/docs/en/apis/app/runtime/model/use-model.mdx +0 -89
  409. package/docs/en/apis/app/runtime/model/use-static-model.mdx +0 -51
  410. package/docs/en/apis/app/runtime/model/use-store.mdx +0 -26
  411. package/docs/en/apis/app/runtime/ssr/pre-render.mdx +0 -96
  412. package/docs/en/apis/app/runtime/web-server/hook.mdx +0 -134
  413. package/docs/en/apis/app/runtime/web-server/middleware.mdx +0 -113
  414. package/docs/en/apis/app/runtime/web-server/unstable_middleware.mdx +0 -167
  415. package/docs/en/components/bff-proxy-path-rewrite.mdx +0 -16
  416. package/docs/en/components/bff-proxy-principle.mdx +0 -1
  417. package/docs/en/components/builder.mdx +0 -3
  418. package/docs/en/components/create-bff-api-app.mdx +0 -25
  419. package/docs/en/components/custom-router-micro-frontend.mdx +0 -40
  420. package/docs/en/components/enable-micro-frontend.mdx +0 -30
  421. package/docs/en/components/enableSwc.mdx +0 -17
  422. package/docs/en/components/global-proxy-config.mdx +0 -85
  423. package/docs/en/components/global-proxy.mdx +0 -29
  424. package/docs/en/components/package-manager.mdx +0 -11
  425. package/docs/en/components/reduck-notify.mdx +0 -27
  426. package/docs/en/components/reduck-tip.mdx +0 -8
  427. package/docs/en/configure/app/auto-load-plugin.mdx +0 -66
  428. package/docs/en/configure/app/deploy/microFrontend.mdx +0 -53
  429. package/docs/en/configure/app/dev/port.mdx +0 -25
  430. package/docs/en/configure/app/dev/proxy.mdx +0 -9
  431. package/docs/en/configure/app/experiments/lazy-compilation.mdx +0 -106
  432. package/docs/en/configure/app/html/disable-html-folder.mdx +0 -46
  433. package/docs/en/configure/app/html/favicon-by-entries.mdx +0 -36
  434. package/docs/en/configure/app/html/inject-by-entries.mdx +0 -36
  435. package/docs/en/configure/app/html/meta-by-entries.mdx +0 -48
  436. package/docs/en/configure/app/html/tags-by-entries.mdx +0 -44
  437. package/docs/en/configure/app/html/template-by-entries.mdx +0 -33
  438. package/docs/en/configure/app/html/template-parameters-by-entries.mdx +0 -35
  439. package/docs/en/configure/app/html/title-by-entries.mdx +0 -37
  440. package/docs/en/configure/app/output/css-module-local-ident-name.mdx +0 -21
  441. package/docs/en/configure/app/output/disable-css-extract.mdx +0 -16
  442. package/docs/en/configure/app/output/disable-filename-hash.mdx +0 -16
  443. package/docs/en/configure/app/output/disable-minimize.mdx +0 -14
  444. package/docs/en/configure/app/output/disable-node-polyfill.mdx +0 -22
  445. package/docs/en/configure/app/output/disable-source-map.mdx +0 -31
  446. package/docs/en/configure/app/output/enable-asset-fallback.mdx +0 -36
  447. package/docs/en/configure/app/output/enable-inline-scripts.mdx +0 -22
  448. package/docs/en/configure/app/output/enable-inline-styles.mdx +0 -22
  449. package/docs/en/configure/app/output/enable-latest-decorators.mdx +0 -14
  450. package/docs/en/configure/app/performance/bundle-analyze.mdx +0 -24
  451. package/docs/en/configure/app/performance/transform-lodash.mdx +0 -52
  452. package/docs/en/configure/app/runtime/master-app.mdx +0 -36
  453. package/docs/en/configure/app/runtime/state.mdx +0 -52
  454. package/docs/en/configure/app/source/disable-entry-dirs.mdx +0 -38
  455. package/docs/en/configure/app/source/enable-custom-entry.mdx +0 -68
  456. package/docs/en/configure/app/source/module-scopes.mdx +0 -72
  457. package/docs/en/configure/app/source/resolve-extension-prefix.mdx +0 -55
  458. package/docs/en/configure/app/source/resolve-main-fields.mdx +0 -46
  459. package/docs/en/configure/app/tools/babel.mdx +0 -225
  460. package/docs/en/configure/app/tools/esbuild.mdx +0 -44
  461. package/docs/en/configure/app/tools/pug.mdx +0 -54
  462. package/docs/en/configure/app/tools/styled-components.mdx +0 -55
  463. package/docs/en/configure/app/tools/tailwindcss.mdx +0 -98
  464. package/docs/en/configure/app/tools/terser.mdx +0 -58
  465. package/docs/en/configure/app/tools/ts-loader.mdx +0 -76
  466. package/docs/en/configure/app/tools/webpack-chain.mdx +0 -253
  467. package/docs/en/configure/app/tools/webpack.mdx +0 -309
  468. package/docs/en/guides/deprecated.md +0 -17
  469. package/docs/en/guides/topic-detail/micro-frontend/c01-introduction.mdx +0 -27
  470. package/docs/en/guides/topic-detail/micro-frontend/c02-development.mdx +0 -290
  471. package/docs/en/guides/topic-detail/micro-frontend/c03-main-app.mdx +0 -298
  472. package/docs/en/guides/topic-detail/micro-frontend/c04-communicate.mdx +0 -58
  473. package/docs/en/guides/topic-detail/micro-frontend/c05-mixed-stack.mdx +0 -26
  474. package/docs/en/guides/topic-detail/model/_meta.json +0 -14
  475. package/docs/en/guides/topic-detail/model/auto-actions.mdx +0 -85
  476. package/docs/en/guides/topic-detail/model/computed-state.mdx +0 -148
  477. package/docs/en/guides/topic-detail/model/define-model.mdx +0 -62
  478. package/docs/en/guides/topic-detail/model/faq.mdx +0 -35
  479. package/docs/en/guides/topic-detail/model/manage-effects.mdx +0 -247
  480. package/docs/en/guides/topic-detail/model/model-communicate.mdx +0 -217
  481. package/docs/en/guides/topic-detail/model/performance.mdx +0 -167
  482. package/docs/en/guides/topic-detail/model/quick-start.mdx +0 -117
  483. package/docs/en/guides/topic-detail/model/redux-integration.mdx +0 -20
  484. package/docs/en/guides/topic-detail/model/typescript-best-practice.mdx +0 -68
  485. package/docs/en/guides/topic-detail/model/use-model.mdx +0 -243
  486. package/docs/en/guides/topic-detail/model/use-out-of-modernjs.mdx +0 -46
  487. package/docs/en/plugin/cli-plugins/migration.mdx +0 -98
  488. package/docs/en/plugin/official/cli-plugins/plugin-swc.mdx +0 -363
  489. package/docs/en/plugin/official/cli-plugins/plugin-tailwind.mdx +0 -5
  490. package/docs/en/plugin/official/rsbuild-plugins/_meta.json +0 -1
  491. package/docs/en/plugin/official/rsbuild-plugins/plugin-esbuild.mdx +0 -205
  492. package/docs/en/plugin/official/rsbuild-plugins.mdx +0 -3
  493. package/docs/en/plugin/runtime-plugins/migration.mdx +0 -101
  494. package/docs/en/tutorials/first-app/c01-start.mdx +0 -99
  495. package/docs/en/tutorials/first-app/c02-component.mdx +0 -60
  496. package/docs/en/tutorials/first-app/c03-css.mdx +0 -324
  497. package/docs/en/tutorials/first-app/c04-routes.mdx +0 -172
  498. package/docs/en/tutorials/first-app/c05-loader.mdx +0 -87
  499. package/docs/en/tutorials/first-app/c06-model.mdx +0 -278
  500. package/docs/en/tutorials/first-app/c07-container.mdx +0 -281
  501. package/docs/en/tutorials/first-app/c08-entries.mdx +0 -135
  502. package/docs/zh/apis/app/hooks/server/index_.mdx +0 -10
  503. package/docs/zh/apis/app/hooks/src/index_.mdx +0 -39
  504. package/docs/zh/apis/app/hooks/src/stories.mdx +0 -16
  505. package/docs/zh/apis/app/runtime/app/define-config.mdx +0 -67
  506. package/docs/zh/apis/app/runtime/core/bootstrap.mdx +0 -74
  507. package/docs/zh/apis/app/runtime/core/create-app.mdx +0 -35
  508. package/docs/zh/apis/app/runtime/core/use-loader.mdx +0 -89
  509. package/docs/zh/apis/app/runtime/core/use-module-apps.mdx +0 -179
  510. package/docs/zh/apis/app/runtime/core/use-runtime-context.mdx +0 -116
  511. package/docs/zh/apis/app/runtime/model/Provider.mdx +0 -36
  512. package/docs/zh/apis/app/runtime/model/auto-actions.mdx +0 -122
  513. package/docs/zh/apis/app/runtime/model/connect.mdx +0 -143
  514. package/docs/zh/apis/app/runtime/model/create-app.mdx +0 -75
  515. package/docs/zh/apis/app/runtime/model/create-store.mdx +0 -61
  516. package/docs/zh/apis/app/runtime/model/handle-effect.mdx +0 -108
  517. package/docs/zh/apis/app/runtime/model/model_.mdx +0 -201
  518. package/docs/zh/apis/app/runtime/model/use-local-model.mdx +0 -29
  519. package/docs/zh/apis/app/runtime/model/use-model.mdx +0 -89
  520. package/docs/zh/apis/app/runtime/model/use-static-model.mdx +0 -49
  521. package/docs/zh/apis/app/runtime/model/use-store.mdx +0 -26
  522. package/docs/zh/apis/app/runtime/ssr/pre-render.mdx +0 -96
  523. package/docs/zh/apis/app/runtime/web-server/hook.mdx +0 -136
  524. package/docs/zh/apis/app/runtime/web-server/middleware.mdx +0 -114
  525. package/docs/zh/apis/app/runtime/web-server/unstable_middleware.mdx +0 -165
  526. package/docs/zh/components/bff-proxy-path-rewrite.mdx +0 -16
  527. package/docs/zh/components/bff-proxy-principle.mdx +0 -1
  528. package/docs/zh/components/builder.mdx +0 -3
  529. package/docs/zh/components/create-bff-api-app.mdx +0 -25
  530. package/docs/zh/components/custom-router-micro-frontend.mdx +0 -40
  531. package/docs/zh/components/default-mwa-generate.mdx +0 -4
  532. package/docs/zh/components/enable-micro-frontend.mdx +0 -30
  533. package/docs/zh/components/enableSwc.mdx +0 -17
  534. package/docs/zh/components/global-proxy-config.mdx +0 -85
  535. package/docs/zh/components/global-proxy.mdx +0 -29
  536. package/docs/zh/components/package-manager.mdx +0 -11
  537. package/docs/zh/components/reduck-notify.mdx +0 -27
  538. package/docs/zh/components/reduck-tip.mdx +0 -8
  539. package/docs/zh/configure/app/auto-load-plugin.mdx +0 -66
  540. package/docs/zh/configure/app/deploy/microFrontend.mdx +0 -55
  541. package/docs/zh/configure/app/dev/port.mdx +0 -25
  542. package/docs/zh/configure/app/dev/proxy.mdx +0 -9
  543. package/docs/zh/configure/app/experiments/lazy-compilation.mdx +0 -105
  544. package/docs/zh/configure/app/html/disable-html-folder.mdx +0 -45
  545. package/docs/zh/configure/app/html/favicon-by-entries.mdx +0 -37
  546. package/docs/zh/configure/app/html/inject-by-entries.mdx +0 -37
  547. package/docs/zh/configure/app/html/meta-by-entries.mdx +0 -48
  548. package/docs/zh/configure/app/html/tags-by-entries.mdx +0 -44
  549. package/docs/zh/configure/app/html/template-by-entries.mdx +0 -33
  550. package/docs/zh/configure/app/html/template-parameters-by-entries.mdx +0 -36
  551. package/docs/zh/configure/app/html/title-by-entries.mdx +0 -37
  552. package/docs/zh/configure/app/output/css-module-local-ident-name.mdx +0 -21
  553. package/docs/zh/configure/app/output/disable-css-extract.mdx +0 -16
  554. package/docs/zh/configure/app/output/disable-filename-hash.mdx +0 -16
  555. package/docs/zh/configure/app/output/disable-minimize.mdx +0 -14
  556. package/docs/zh/configure/app/output/disable-node-polyfill.mdx +0 -22
  557. package/docs/zh/configure/app/output/disable-source-map.mdx +0 -31
  558. package/docs/zh/configure/app/output/enable-asset-fallback.mdx +0 -36
  559. package/docs/zh/configure/app/output/enable-inline-scripts.mdx +0 -22
  560. package/docs/zh/configure/app/output/enable-inline-styles.mdx +0 -22
  561. package/docs/zh/configure/app/output/enable-latest-decorators.mdx +0 -14
  562. package/docs/zh/configure/app/performance/bundle-analyze.mdx +0 -24
  563. package/docs/zh/configure/app/performance/transform-lodash.mdx +0 -52
  564. package/docs/zh/configure/app/runtime/master-app.mdx +0 -38
  565. package/docs/zh/configure/app/runtime/state.mdx +0 -52
  566. package/docs/zh/configure/app/source/disable-entry-dirs.mdx +0 -38
  567. package/docs/zh/configure/app/source/enable-custom-entry.mdx +0 -67
  568. package/docs/zh/configure/app/source/module-scopes.mdx +0 -72
  569. package/docs/zh/configure/app/source/resolve-extension-prefix.mdx +0 -57
  570. package/docs/zh/configure/app/source/resolve-main-fields.mdx +0 -46
  571. package/docs/zh/configure/app/tools/babel.mdx +0 -224
  572. package/docs/zh/configure/app/tools/esbuild.mdx +0 -44
  573. package/docs/zh/configure/app/tools/pug.mdx +0 -54
  574. package/docs/zh/configure/app/tools/styled-components.mdx +0 -54
  575. package/docs/zh/configure/app/tools/tailwindcss.mdx +0 -98
  576. package/docs/zh/configure/app/tools/terser.mdx +0 -58
  577. package/docs/zh/configure/app/tools/ts-loader.mdx +0 -76
  578. package/docs/zh/configure/app/tools/webpack-chain.mdx +0 -257
  579. package/docs/zh/configure/app/tools/webpack.mdx +0 -309
  580. package/docs/zh/guides/advanced-features/rspack-start.mdx +0 -154
  581. package/docs/zh/guides/deprecated.md +0 -19
  582. package/docs/zh/guides/topic-detail/micro-frontend/c01-introduction.mdx +0 -26
  583. package/docs/zh/guides/topic-detail/micro-frontend/c02-development.mdx +0 -332
  584. package/docs/zh/guides/topic-detail/micro-frontend/c03-main-app.mdx +0 -296
  585. package/docs/zh/guides/topic-detail/micro-frontend/c04-communicate.mdx +0 -58
  586. package/docs/zh/guides/topic-detail/micro-frontend/c05-mixed-stack.mdx +0 -27
  587. package/docs/zh/guides/topic-detail/model/_meta.json +0 -14
  588. package/docs/zh/guides/topic-detail/model/auto-actions.mdx +0 -88
  589. package/docs/zh/guides/topic-detail/model/computed-state.mdx +0 -147
  590. package/docs/zh/guides/topic-detail/model/define-model.mdx +0 -63
  591. package/docs/zh/guides/topic-detail/model/faq.mdx +0 -36
  592. package/docs/zh/guides/topic-detail/model/manage-effects.mdx +0 -256
  593. package/docs/zh/guides/topic-detail/model/model-communicate.mdx +0 -217
  594. package/docs/zh/guides/topic-detail/model/performance.mdx +0 -167
  595. package/docs/zh/guides/topic-detail/model/quick-start.mdx +0 -117
  596. package/docs/zh/guides/topic-detail/model/redux-integration.mdx +0 -20
  597. package/docs/zh/guides/topic-detail/model/typescript-best-practice.mdx +0 -67
  598. package/docs/zh/guides/topic-detail/model/use-model.mdx +0 -248
  599. package/docs/zh/guides/topic-detail/model/use-out-of-modernjs.mdx +0 -46
  600. package/docs/zh/plugin/cli-plugins/migration.mdx +0 -98
  601. package/docs/zh/plugin/official/cli-plugins/plugin-swc.mdx +0 -351
  602. package/docs/zh/plugin/official/cli-plugins/plugin-tailwind.mdx +0 -5
  603. package/docs/zh/plugin/official/rsbuild-plugins/_meta.json +0 -1
  604. package/docs/zh/plugin/official/rsbuild-plugins/plugin-esbuild.mdx +0 -201
  605. package/docs/zh/plugin/official/rsbuild-plugins.mdx +0 -3
  606. package/docs/zh/plugin/runtime-plugins/migration.mdx +0 -101
  607. package/docs/zh/tutorials/first-app/c01-start.mdx +0 -99
  608. package/docs/zh/tutorials/first-app/c02-component.mdx +0 -60
  609. package/docs/zh/tutorials/first-app/c03-css.mdx +0 -323
  610. package/docs/zh/tutorials/first-app/c04-routes.mdx +0 -172
  611. package/docs/zh/tutorials/first-app/c05-loader.mdx +0 -89
  612. package/docs/zh/tutorials/first-app/c06-model.mdx +0 -274
  613. package/docs/zh/tutorials/first-app/c07-container.mdx +0 -281
  614. package/docs/zh/tutorials/first-app/c08-entries.mdx +0 -135
  615. /package/docs/en/components/{reduck-migration.mdx → auto-upgrade.mdx} +0 -0
  616. /package/docs/en/components/{router-legacy-tip.mdx → international/platform-support.mdx} +0 -0
  617. /package/docs/{zh/components/reduck-migration.mdx → en/components/new-entry-tooltip.mdx} +0 -0
  618. /package/docs/{zh/components/router-legacy-tip.mdx → en/components/upgrade-browserslist.mdx} +0 -0
@@ -56,11 +56,11 @@ export interface Monitors {
56
56
  warn(message: string, ...args: any[]): void;
57
57
  debug(message: string, ...args: any[]): void;
58
58
  info(message: string, ...args: any[]): void;
59
- trace(message: string,...args: any[]): void;
59
+ trace(message: string, ...args: any[]): void;
60
60
 
61
61
  // Metrics Event
62
62
  timing(name: string, dur: number, ...args: any[]): void;
63
- counter(name: string, ...args: any[]): void
63
+ counter(name: string, ...args: any[]): void;
64
64
  }
65
65
  ```
66
66
 
@@ -71,31 +71,104 @@ Modern.js comes with a built-in default Monitor, where different events trigger
71
71
  - [Log Event](/guides/advanced-features/server-monitor/logger)
72
72
  - [Metrics Event](/guides/advanced-features/server-monitor/metrics)
73
73
 
74
-
75
74
  ## Register Monitors
76
75
 
77
- Developers can register their own Monitors using the `push` API, but this can only be done in [server middleware](/apis/app/runtime/web-server/unstable_middleware) or server plugins. Registration is not available in Data Loaders, components, or init functions.
76
+ Developers can register their own Monitors using the `push` API, but this can only be done in [server middleware](/guides/advanced-features/web-server#unstable-middleware) or [server plugins](/plugin/server-plugins/api). Registration is not available in Data Loaders, components, or init functions.
78
77
 
79
- :::note
80
- Server plugins are currently not available, and documentation will be added in the future.
81
- :::
78
+ ```ts title="server/modern.server.ts"
79
+ import {
80
+ defineServerConfig,
81
+ type MiddlewareHandler,
82
+ } from '@modern-js/server-runtime';
83
+ import type { MonitorEvent } from '@modern-js/types';
82
84
 
83
- ```ts title="server/index.ts"
84
- import type { CoreMonitors } from '@modern-js/types';
85
- const injectMonitorMiddleware = (c) => {
86
- const monitors = c.get('monitors');
87
- const myMonitor = (event: MonitorEvent) => {
85
+ const injectMonitorMiddleware: MiddlewareHandler = async (c, next) => {
86
+ const monitors = c.get('monitors');
87
+ const myMonitor = (event: MonitorEvent) => {
88
+ if (event.type === 'log') {
89
+ // Handle log events
90
+ console.log(`[${event.payload.level}] ${event.payload.message}`);
91
+ } else if (event.type === 'timing') {
92
+ // Handle timing events
93
+ console.log(`Timing: ${event.payload.name} = ${event.payload.dur}ms`);
94
+ } else if (event.type === 'counter') {
95
+ // Handle counter events
96
+ console.log(`Counter: ${event.payload.name}`);
97
+ }
98
+ };
99
+ monitors.push(myMonitor);
100
+ await next();
101
+ };
102
+
103
+ export default defineServerConfig({
104
+ middlewares: [
105
+ {
106
+ name: 'inject-monitor',
107
+ handler: injectMonitorMiddleware,
108
+ },
109
+ ],
110
+ });
111
+ ```
112
+
113
+ Register Monitor in server plugins:
114
+
115
+ ```ts title="server/plugins/my-monitor-plugin.ts"
116
+ import type { ServerPlugin } from '@modern-js/server-runtime';
117
+ import type { MonitorEvent } from '@modern-js/types';
118
+
119
+ const myMonitorPlugin = (): ServerPlugin => ({
120
+ name: '@my-org/my-monitor-plugin',
121
+ setup(api) {
122
+ api.onPrepare(() => {
123
+ const { middlewares } = api.getServerContext();
124
+
125
+ // Define monitor, ensuring it's only created once
126
+ const myMonitor = (event: MonitorEvent) => {
88
127
  if (event.type === 'log') {
89
- // some code
90
- } else {
91
- // some other code
128
+ // Handle log events
129
+ console.log(`[${event.payload.level}] ${event.payload.message}`);
130
+ } else if (event.type === 'timing') {
131
+ // Handle timing events
132
+ console.log(
133
+ `Timing: ${event.payload.name} = ${event.payload.dur}ms`,
134
+ );
135
+ } else if (event.type === 'counter') {
136
+ // Handle counter events
137
+ console.log(`Counter: ${event.payload.name}`);
92
138
  }
93
- }
94
- monitors.push(myMonitor);
95
- return next();
96
- }
139
+ };
140
+
141
+ // Use a flag to ensure monitor is only registered once
142
+ let monitorRegistered = false;
143
+
144
+ middlewares.push({
145
+ name: 'inject-monitor',
146
+ handler: async (c, next) => {
147
+ const monitors = c.get('monitors');
148
+ // Only register monitor on the first request
149
+ if (!monitorRegistered) {
150
+ monitors.push(myMonitor);
151
+ monitorRegistered = true;
152
+ }
153
+ await next();
154
+ },
155
+ });
156
+ });
157
+ },
158
+ });
159
+
160
+ export default myMonitorPlugin;
161
+ ```
162
+
163
+ Then configure the plugin in `server/modern.server.ts`:
164
+
165
+ ```ts title="server/modern.server.ts"
166
+ import { defineServerConfig } from '@modern-js/server-runtime';
167
+ import myMonitorPlugin from './plugins/my-monitor-plugin';
97
168
 
98
- export const middlewares = [injectMonitorMiddleware]
169
+ export default defineServerConfig({
170
+ plugins: [myMonitorPlugin()],
171
+ });
99
172
  ```
100
173
 
101
174
  ## Use Monitors
@@ -126,32 +199,44 @@ const loader = async ({ context }: LoaderFunctionArgs) => {
126
199
  When invoking Monitors in components, you need to determine whether the current runtime environment is Node.js:
127
200
 
128
201
  ```tsx title="routes/page.tsx"
129
- import { getMonitors } from '@modern-js/runtime';
202
+ import { use } from 'react';
203
+ import { RuntimeContext, getMonitors } from '@modern-js/runtime';
130
204
  const Page = () => {
131
- const { context } = useRuntimeContext();
132
- if (process.env.MODERN_TARGET === 'node') {
133
- const monitors = getMonitors();
134
- monitors.info();
135
- }
136
- return <div>Hello World</div>
137
- }
205
+ const context = use(RuntimeContext);
206
+ if (process.env.MODERN_TARGET === 'node') {
207
+ const monitors = getMonitors();
208
+ monitors.info('Page rendered');
209
+ }
210
+ return <div>Hello World</div>;
211
+ };
138
212
  export default Page;
139
213
  ```
140
214
 
141
215
  In middleware, we can also invoke Monitors, but the approach differs from runtime code as it requires accessing them through `context`:
142
216
 
143
- ```ts title="server/index.ts"
144
- import { UnstableMiddleware } from '@modern-js/runtime/server';
217
+ ```ts title="server/modern.server.ts"
218
+ import {
219
+ defineServerConfig,
220
+ type MiddlewareHandler,
221
+ } from '@modern-js/server-runtime';
145
222
 
146
- const time: UnstableMiddleware = async (c, next) => {
223
+ export const handler: MiddlewareHandler = async (c, next) => {
224
+ const monitors = c.get('monitors');
147
225
  const start = Date.now();
226
+
148
227
  await next();
228
+
149
229
  const end = Date.now();
150
- const monitors = c.get('monitors');
151
- monitors.info(`${end - start}`);
230
+ // Report timing
231
+ monitors.timing('request_timing', end - start);
152
232
  };
153
233
 
154
- export const unstableMiddleware: UnstableMiddleware[] = [time];
234
+ export default defineServerConfig({
235
+ middlewares: [
236
+ {
237
+ name: 'request-timing',
238
+ handler,
239
+ },
240
+ ],
241
+ });
155
242
  ```
156
-
157
-
@@ -6,27 +6,54 @@ sidebar_position: 16
6
6
 
7
7
  Modern.js encapsulates most server-side capabilities required by projects, typically eliminating the need for server-side development. However, in certain scenarios such as user authentication, request preprocessing, or adding page skeletons, custom server-side logic may still be necessary.
8
8
 
9
- ## Starting a Custom Web Server
9
+ To use the Custom Web Server in a Modern.js project, follow these steps:
10
10
 
11
- :::tip
12
- You must ensure that the Modern.js version is x.67.5 or above.
13
- :::
11
+ 1. Install `@modern-js/server-runtime` dependency
14
12
 
15
- Developers can execute the `pnpm run new` command in the project root directory to start the "Custom Web Server" feature:
13
+ If the `@modern-js/server-runtime` dependency is not yet installed in your project, install it first:
16
14
 
17
15
  ```bash
18
- ? Select operation: Create project element
19
- ? Select element type: Create "Custom Web Server" source directory
16
+ pnpm add @modern-js/server-runtime
17
+ ```
18
+
19
+ :::tip Version Consistency
20
+ Make sure the version of `@modern-js/server-runtime` matches the version of `@modern-js/app-tools` in your project. All Modern.js official packages are released with a uniform version number, and version mismatches may cause compatibility issues.
21
+
22
+ Check the version of `@modern-js/app-tools` first, then install the same version of `@modern-js/server-runtime`:
23
+
24
+ ```bash
25
+ # Check the current version of @modern-js/app-tools
26
+ pnpm list @modern-js/app-tools
27
+
28
+ # Install the same version of @modern-js/server-runtime
29
+ pnpm add @modern-js/server-runtime@<version>
20
30
  ```
21
31
 
22
- After executing the command, a `server/modern.server.ts` file will be automatically created in the project directory, where you can write custom logic.
32
+ :::
33
+
34
+ 2. Create the `server` directory and configuration file
35
+
36
+ Create a `server/modern.server.ts` file in the project root directory:
37
+
38
+ ```ts title="server/modern.server.ts"
39
+ import { defineServerConfig } from '@modern-js/server-runtime';
40
+
41
+ export default defineServerConfig({
42
+ middlewares: [], // Middleware
43
+ renderMiddlewares: [], // Render Middleware
44
+ plugins: [], // Plugins
45
+ onError: () => {}, // Error handling
46
+ });
47
+ ```
23
48
 
49
+ After creating the file, you can write custom logic in this file.
24
50
 
25
51
  ## Capabilities of the Custom Web Server
26
52
 
27
53
  Modern.js's Web Server is based on Hono, and in the latest version of the Custom Web Server, we expose Hono's middleware capabilities, you can refer to [Hono API](https://hono.dev/docs/api/context) for more usage.
28
54
 
29
55
  In the `server/modern.server.ts` file, you can add the following configurations to extend the Server:
56
+
30
57
  - **Middleware**
31
58
  - **Render Middleware**
32
59
  - **Server-side Plugin**
@@ -51,7 +78,6 @@ export default defineServerConfig({
51
78
  });
52
79
  ```
53
80
 
54
-
55
81
  ### Type Definition
56
82
 
57
83
  `defineServerConfig` type definition is as follows:
@@ -61,22 +87,21 @@ import type { MiddlewareHandler } from 'hono';
61
87
 
62
88
  type MiddlewareOrder = 'pre' | 'post' | 'default';
63
89
  type MiddlewareObj = {
64
- name: string;
65
- path?: string;
66
- method?: 'options' | 'get' | 'post' | 'put' | 'delete' | 'patch' | 'all';
67
- handler: MiddlewareHandler | MiddlewareHandler[];
68
- before?: Array<MiddlewareObj['name']>;
69
- order?: MiddlewareOrder;
90
+ name: string;
91
+ path?: string;
92
+ method?: 'options' | 'get' | 'post' | 'put' | 'delete' | 'patch' | 'all';
93
+ handler: MiddlewareHandler | MiddlewareHandler[];
94
+ before?: Array<MiddlewareObj['name']>;
95
+ order?: MiddlewareOrder;
70
96
  };
71
97
  type ServerConfig = {
72
- middlewares?: MiddlewareObj[];
73
- renderMiddlewares?: MiddlewareObj[];
74
- plugins?: (ServerPlugin | ServerPluginLegacy)[];
75
- onError?: (err: Error, c: Context) => Promise<any> | any;
76
- }
98
+ middlewares?: MiddlewareObj[];
99
+ renderMiddlewares?: MiddlewareObj[];
100
+ plugins?: ServerPlugin[];
101
+ onError?: (err: Error, c: Context) => Promise<any> | any;
102
+ };
77
103
  ```
78
104
 
79
-
80
105
  ### Middleware
81
106
 
82
107
  Middleware supports executing custom logic before and after the **request handling** and **page routing** processes in Modern.js services.
@@ -89,7 +114,10 @@ If you only need to handle BFF API routes, you can determine whether a request i
89
114
  Usage is as follows:
90
115
 
91
116
  ```ts title="server/modern.server.ts"
92
- import { defineServerConfig, type MiddlewareHandler } from '@modern-js/server-runtime';
117
+ import {
118
+ defineServerConfig,
119
+ type MiddlewareHandler,
120
+ } from '@modern-js/server-runtime';
93
121
 
94
122
  export const handler: MiddlewareHandler = async (c, next) => {
95
123
  const monitors = c.get('monitors');
@@ -116,13 +144,15 @@ export default defineServerConfig({
116
144
  You must execute the `next` function to proceed with the subsequent Middleware.
117
145
  :::
118
146
 
119
-
120
147
  ### RenderMiddleware
121
148
 
122
149
  If you only need to handle the logic before and after page rendering, modern.js also provides rendering middleware, which can be used as follows:
123
150
 
124
151
  ```ts title="server/modern.server.ts"
125
- import { defineServerConfig, type MiddlewareHandler } from '@modern-js/server-runtime';
152
+ import {
153
+ defineServerConfig,
154
+ type MiddlewareHandler,
155
+ } from '@modern-js/server-runtime';
126
156
 
127
157
  // Inject render performance metrics
128
158
  const renderTiming: MiddlewareHandler = async (c, next) => {
@@ -162,52 +192,46 @@ export default defineServerConfig({
162
192
  });
163
193
  ```
164
194
 
165
-
166
195
  ### Plugin
167
196
 
168
197
  Modern.js supports adding the aforementioned middleware and rendering middleware for the Server in custom plugins, which can be used as follows:
169
198
 
170
-
171
199
  ```ts title="server/plugins/server.ts"
172
- import type { ServerPluginLegacy } from '@modern-js/server-runtime';
200
+ import type { ServerPlugin } from '@modern-js/server-runtime';
173
201
 
174
- export default (): ServerPluginLegacy => ({
202
+ export default (): ServerPlugin => ({
175
203
  name: 'serverPlugin',
176
204
  setup(api) {
177
- return {
178
- prepare(serverConfig) {
179
- const { middlewares, renderMiddlewares } = api.useAppContext();
180
-
181
- // Inject server-side data for page dataLoader consumption
182
- middlewares?.push({
183
- name: 'server-plugin-middleware',
184
- handler: async (c, next) => {
185
- c.set('message', 'hi modern.js');
186
- await next();
187
- // ...
188
- },
189
- });
190
-
191
- // redirect
192
- renderMiddlewares?.push({
193
- name: 'server-plugin-render-middleware',
194
- handler: async (c, next) => {
195
- const user = getUser(c.req);
196
- if (!user) {
197
- return c.redirect('/login');
198
- }
199
-
200
- await next();
201
- },
202
- });
203
- return serverConfig;
204
- },
205
- };
205
+ api.onPrepare(() => {
206
+ const { middlewares, renderMiddlewares } = api.getServerContext();
207
+
208
+ // Inject server-side data for page dataLoader consumption
209
+ middlewares?.push({
210
+ name: 'server-plugin-middleware',
211
+ handler: async (c, next) => {
212
+ c.set('message', 'hi modern.js');
213
+ await next();
214
+ // ...
215
+ },
216
+ });
217
+
218
+ // redirect
219
+ renderMiddlewares?.push({
220
+ name: 'server-plugin-render-middleware',
221
+ handler: async (c, next) => {
222
+ const user = getUser(c.req);
223
+ if (!user) {
224
+ return c.redirect('/login');
225
+ }
226
+
227
+ await next();
228
+ },
229
+ });
230
+ });
206
231
  },
207
232
  });
208
233
  ```
209
234
 
210
-
211
235
  ```ts title="server/modern.server.ts"
212
236
  import { defineServerConfig } from '@modern-js/server-runtime';
213
237
  import serverPlugin from './plugins/serverPlugin';
@@ -217,7 +241,6 @@ export default defineServerConfig({
217
241
  });
218
242
  ```
219
243
 
220
-
221
244
  ```ts title="src/routes/page.data.ts"
222
245
  import { useHonoContext } from '@modern-js/server-runtime';
223
246
  import { defer } from '@modern-js/runtime/router';
@@ -229,10 +252,8 @@ export default () => {
229
252
 
230
253
  // ...
231
254
  };
232
-
233
255
  ```
234
256
 
235
-
236
257
  ### onError
237
258
 
238
259
  `onError` is a global error handling function used to capture and handle all uncaught errors in the Modern.js server. By customizing the `onError` function, developers can uniformly handle different types of errors, return custom error responses, and implement features such as error logging and error classification.
@@ -261,241 +282,3 @@ export default defineServerConfig({
261
282
  },
262
283
  });
263
284
  ```
264
-
265
- ## Legacy API (Deprecated)
266
-
267
- :::warning
268
- The legacy API is compatible but no longer recommended. For extending server capabilities, please refer to [Custom Web Server](/guides/advanced-features/web-server.html#custom-web-server). For migration guidelines, see [Migrating to the New Version of Custom Web Server](/guides/advanced-features/web-server.html#migrate-to-the-new-version-of-custom-web-server).
269
- :::
270
-
271
- ### Enable
272
- To enable the custom Web Server feature, follow these steps:
273
- 1. Add `@modern-js/plugin-server`、`tsconfig-paths` and `ts-node` to `devDependencies` and install them.
274
- 2. Add `server` to the `include` section of `tsconfig`.
275
- 3. Register the `@modern-js/plugin-server` plugin in `modern.config.ts`.
276
- 4. Create a `server/index.ts` file in the project directory, where you can write custom logic.
277
-
278
- ### Unstable Middleware
279
-
280
- Modern.js supports adding rendering middleware to the Web Server, allowing custom logic execution before and after processing page routes.
281
-
282
- ```ts title="server/index.ts"
283
- import {
284
- UnstableMiddleware,
285
- UnstableMiddlewareContext,
286
- } from '@Modern.js/runtime/server';
287
-
288
- const time: UnstableMiddleware = async (c: UnstableMiddlewareContext, next) => {
289
- const start = Date.now();
290
-
291
- await next();
292
-
293
- const end = Date.now();
294
-
295
- console.log(`dur=${end - start}`);
296
- };
297
-
298
- export const unstableMiddleware: UnstableMiddleware[] = [time];
299
- ```
300
-
301
-
302
- ### Hooks
303
-
304
- :::warning
305
- We recommend using UnstableMiddleware instead of Hooks.
306
- :::
307
-
308
- Modern.js provides Hooks to control specific logic in the Web Server. All page requests will pass through Hooks.
309
-
310
- Currently, two types of Hooks are available: `AfterMatch` and `AfterRender`. Developers can implement them in `server/index.ts` as follows:
311
-
312
- ```ts
313
- import type {
314
- AfterMatchHook,
315
- AfterRenderHook,
316
- } from '@modern-js/runtime/server';
317
-
318
- export const afterMatch: AfterMatchHook = (ctx, next) => {
319
- next();
320
- };
321
-
322
- export const afterRender: AfterRenderHook = (ctx, next) => {
323
- next();
324
- };
325
- ```
326
-
327
- Best practices when using Hooks:
328
-
329
- 1. Perform authorization checks in afterMatch.
330
- 2. Handle Rewrite and Redirect in afterMatch.
331
- 3. Inject HTML content in afterRender.
332
-
333
-
334
-
335
- ## Migrate to the New Version of Custom Web Server
336
-
337
- ### Migration Background
338
-
339
- Modern.js Server is continuously evolving to provide more powerful features. We have optimized the definition and usage of middleware and Server plugins.
340
- While the old custom Web Server approach is still compatible, we strongly recommend migrating according to this guide to fully leverage the advantages of the new version.
341
-
342
- ### Migration Steps
343
-
344
- 1. Upgrade Modern.js version to x.67.5 or above.
345
- 2. Configure middleware or plugins in `server/modern.server.ts` according to the new definition method.
346
- 3. Migrate the custom logic in `server/index.ts` to middleware or plugins, and update your code with reference to the differences between `Context` and `Next`.
347
-
348
- ### Context Differences
349
-
350
- In the new version, the middleware handler type is Hono's `MiddlewareHandler`, meaning the `Context` type is `Hono Context`. The differences from the old custom Web Server's `Context` are as follows:
351
-
352
-
353
- #### UnstableMiddleware
354
-
355
-
356
- ```ts
357
- type Body = ReadableStream | ArrayBuffer | string | null;
358
-
359
- type UnstableMiddlewareContext<
360
- V extends Record<string, unknown> = Record<string, unknown>,
361
- > = {
362
- request: Request;
363
- response: Response;
364
- get: Get<V>;
365
- set: Set<V>;
366
- // Current Matched Routing Information
367
- route: string;
368
- header: (name: string, value: string, options?: { append?: boolean }) => void;
369
- status: (code: number) => void;
370
- redirect: (location: string, status?: number) => Response;
371
- body: (data: Body, init?: ResponseInit) => Response;
372
- html: (
373
- data: string | Promise<string>,
374
- init?: ResponseInit,
375
- ) => Response | Promise<Response>;
376
- };
377
- ```
378
-
379
- Differences between UnstableMiddleware Context and Hono Context:
380
-
381
- | UnstableMiddleware | Hono | Description |
382
- | :----------------------- | :---------------------------- | :------------------------------------------------------------------------ |
383
- | `c.request` | `c.req.raw` | Refer to [HonoRequest raw](https://hono.dev/docs/api/request#raw) documentation |
384
- | `c.response` | `c.res` | Refer to [Hono Context res](https://hono.dev/docs/api/context#res) documentation |
385
- | `c.route` | `c.get('route')` | Get application context information. |
386
- | `loaderContext.get` | `honoContext.get` | After injecting data using `c.set`, consume in dataLoader: the old version uses `loaderContext.get`, refer to the new version in [Plugin](/guides/advanced-features/web-server.html#plugin) example |
387
-
388
-
389
- #### Middleware
390
-
391
- ```ts
392
- type MiddlewareContext = {
393
- response: {
394
- set: (key: string, value: string) => void;
395
- status: (code: number) => void;
396
- getStatus: () => number;
397
- cookies: {
398
- set: (key: string, value: string, options?: any) => void;
399
- clear: () => void;
400
- };
401
- raw: (
402
- body: string,
403
- { status, headers }: { status: number; headers: Record<string, any> },
404
- ) => void;
405
- locals: Record<string, any>;
406
- };
407
- request: {
408
- url: string;
409
- host: string;
410
- pathname: string;
411
- query: Record<string, any>;
412
- cookie: string;
413
- cookies: {
414
- get: (key: string) => string;
415
- };
416
- headers: IncomingHttpHeaders;
417
- };
418
- source: {
419
- req: IncomingMessage;
420
- res: ServerResponse;
421
- };
422
- };
423
-
424
- ```
425
-
426
- Differences between Middleware `Context` and Hono `Context`:
427
- | UnstableMiddleware | Hono | Description |
428
- | :----------------------- | :---------------------------- | :--------------------------------------------------------------------------- |
429
- | `c.request.cookie` | `c.req.cookie()` | Refer to [Hono Cookie Helper](https://hono.dev/docs/helpers/cookie) documentation |
430
- | `c.request.pathname` | `c.req.path` | Refer to [HonoRequest path](https://hono.dev/docs/api/request#path) documentation |
431
- | `c.request.url` | - | Hono `c.req.url` provides the full request URL, calculate manually from URL |
432
- | `c.request.host` | `c.req.header('Host')` | Obtain host through header |
433
- | `c.request.query` | `c.req.query()` | Refer to [HonoRequest query](https://hono.dev/docs/api/request#query) documentation |
434
- | `c.request.headers` | `c.req.header()` | Refer to [HonoRequest header](https://hono.dev/docs/api/request#header) documentation |
435
- | `c.response.set` | `c.res.headers.set` | Example: `c.res.headers.set('custom-header', '1')` |
436
- | `c.response.status` | `c.status` | Example: `c.status(201)` |
437
- | `c.response.cookies` | `c.header` | Example: `c.header('Set-Cookie', 'user_id=123')` |
438
- | `c.response.raw` | `c.res` | Refer to [Hono Context res](https://hono.dev/docs/api/context#res) documentation |
439
-
440
- #### Hook
441
-
442
- ```ts
443
- type HookContext = {
444
- response: {
445
- set: (key: string, value: string) => void;
446
- status: (code: number) => void;
447
- getStatus: () => number;
448
- cookies: {
449
- set: (key: string, value: string, options?: any) => void;
450
- clear: () => void;
451
- };
452
- raw: (
453
- body: string,
454
- { status, headers }: { status: number; headers: Record<string, any> },
455
- ) => void;
456
- };
457
- request: {
458
- url: string;
459
- host: string;
460
- pathname: string;
461
- query: Record<string, any>;
462
- cookie: string;
463
- cookies: {
464
- get: (key: string) => string;
465
- };
466
- headers: IncomingHttpHeaders;
467
- };
468
- };
469
-
470
- type AfterMatchContext = HookContext & {
471
- router: {
472
- redirect: (url: string, status: number) => void;
473
- rewrite: (entry: string) => void;
474
- };
475
- };
476
-
477
- type AfterRenderContext = {
478
- template: {
479
- get: () => string;
480
- set: (html: string) => void;
481
- prependHead: (fragment: string) => void;
482
- appendHead: (fragment: string) => void;
483
- prependBody: (fragment: string) => void;
484
- appendBody: (fragment: string) => void;
485
- };
486
- };
487
- ```
488
-
489
- Hook Context is mostly consistent with Middleware Context, so we need to pay extra attention to the additional parts of different Hooks.
490
-
491
- | UnstableMiddleware | Hono | Description |
492
- | :----------------------- | :---------------------------- | :------------------------------------ |
493
- | `router.redirect` | `c.redirect` | Refer to [Hono Context redirect](https://hono.dev/docs/api/context#redirect) documentation |
494
- | `router.rewrite` | - | No corresponding capability provided at the moment |
495
- | template API | `c.res` | Refer to [Hono Context res](https://hono.dev/docs/api/context#res) documentation |
496
-
497
-
498
- ### Differences in Next API
499
-
500
- In Middleware and Hooks, the render function executes even without invoking `next`.
501
- In the new design, subsequent Middleware will only execute if the `next` function is invoked.
@@ -1,5 +1,10 @@
1
1
  [
2
- "routes",
2
+ {
3
+ "type": "dir",
4
+ "name": "routes",
5
+ "label": "Routes",
6
+ "collapsed": true
7
+ },
3
8
  {
4
9
  "type": "dir",
5
10
  "name": "data",