@modern-js/runtime 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 (679) hide show
  1. package/dist/cjs/cache/index.js +55 -19
  2. package/dist/cjs/cli/alias.js +63 -57
  3. package/dist/cjs/cli/code.js +155 -163
  4. package/dist/cjs/cli/constants.js +65 -49
  5. package/dist/cjs/cli/entry.js +50 -41
  6. package/dist/cjs/cli/index.js +143 -178
  7. package/dist/cjs/cli/ssr/index.js +164 -142
  8. package/dist/cjs/cli/ssr/loadable-bundler-plugin.js +94 -102
  9. package/dist/cjs/cli/ssr/mode.js +48 -0
  10. package/dist/cjs/cli/template.js +110 -123
  11. package/dist/cjs/cli/template.server.js +55 -47
  12. package/dist/cjs/common.js +41 -31
  13. package/dist/cjs/core/browser/hydrate.js +82 -84
  14. package/dist/cjs/core/browser/index.js +133 -147
  15. package/dist/cjs/core/browser/withCallback.js +43 -37
  16. package/dist/cjs/core/compat/hooks.js +65 -70
  17. package/dist/cjs/core/compat/index.js +42 -38
  18. package/dist/cjs/core/compat/requestContext.js +53 -43
  19. package/dist/cjs/core/config.js +33 -38
  20. package/dist/cjs/core/constants.js +45 -36
  21. package/dist/cjs/core/context/index.js +100 -82
  22. package/dist/cjs/core/context/monitors/default.js +39 -33
  23. package/dist/cjs/core/context/monitors/index.js +34 -28
  24. package/dist/cjs/core/context/monitors/index.server.js +37 -29
  25. package/dist/cjs/core/context/request/index.js +33 -27
  26. package/dist/cjs/core/context/request/index.server.js +36 -28
  27. package/dist/cjs/core/context/response/index.js +46 -39
  28. package/dist/cjs/core/context/response/index.server.js +64 -55
  29. package/dist/cjs/core/context/runtime.js +58 -38
  30. package/dist/cjs/core/context/serverPayload/index.js +37 -31
  31. package/dist/cjs/core/context/serverPayload/index.server.js +42 -35
  32. package/dist/cjs/core/index.js +40 -41
  33. package/dist/cjs/core/plugin/index.js +55 -46
  34. package/dist/cjs/core/plugin/types.js +17 -15
  35. package/dist/cjs/core/react/index.js +45 -37
  36. package/dist/cjs/core/react/wrapper.js +49 -39
  37. package/dist/cjs/core/server/constants.js +45 -34
  38. package/dist/cjs/core/server/helmet.js +64 -63
  39. package/dist/cjs/core/server/index.js +47 -37
  40. package/dist/cjs/core/server/react/index.js +37 -31
  41. package/dist/cjs/core/server/react/no-ssr-cache/index.js +40 -33
  42. package/dist/cjs/core/server/react/nossr/index.js +50 -43
  43. package/dist/cjs/core/server/requestHandler.js +193 -211
  44. package/dist/cjs/core/server/server.js +41 -31
  45. package/dist/cjs/core/server/shared.js +33 -25
  46. package/dist/cjs/core/server/stream/afterTemplate.js +92 -92
  47. package/dist/cjs/core/server/stream/beforeTemplate.js +98 -110
  48. package/dist/cjs/core/server/stream/createReadableStream.js +164 -149
  49. package/dist/cjs/core/server/stream/createReadableStream.worker.js +145 -160
  50. package/dist/cjs/core/server/stream/deferredScript.js +92 -84
  51. package/dist/cjs/core/server/stream/index.js +35 -37
  52. package/dist/cjs/core/server/stream/shared.js +103 -98
  53. package/dist/cjs/core/server/stream/template.js +43 -35
  54. package/dist/cjs/core/server/string/index.js +131 -132
  55. package/dist/cjs/core/server/string/loadable.js +131 -173
  56. package/dist/cjs/core/server/string/ssrData.js +129 -89
  57. package/dist/cjs/core/server/string/types.js +17 -15
  58. package/dist/cjs/core/server/tracer.js +49 -42
  59. package/dist/cjs/core/server/utils.js +70 -68
  60. package/dist/cjs/core/types.js +17 -15
  61. package/dist/cjs/document/Body.js +49 -41
  62. package/dist/cjs/document/Comment.js +44 -35
  63. package/dist/cjs/document/DocumentContext.js +47 -39
  64. package/dist/cjs/document/DocumentStructureContext.js +50 -42
  65. package/dist/cjs/document/Head.js +59 -50
  66. package/dist/cjs/document/Html.js +96 -95
  67. package/dist/cjs/document/Links.js +38 -29
  68. package/dist/cjs/document/Root.js +59 -53
  69. package/dist/cjs/document/Script.js +50 -42
  70. package/dist/cjs/document/Scripts.js +38 -29
  71. package/dist/cjs/document/Style.js +45 -36
  72. package/dist/cjs/document/Title.js +37 -29
  73. package/dist/cjs/document/cli/index.js +361 -210
  74. package/dist/cjs/document/constants.js +125 -95
  75. package/dist/cjs/document/index.js +132 -41
  76. package/dist/cjs/exports/config-routes.js +38 -0
  77. package/dist/cjs/exports/head.js +63 -38
  78. package/dist/cjs/exports/loadable.js +63 -38
  79. package/dist/cjs/index.js +61 -53
  80. package/dist/cjs/internal.js +36 -0
  81. package/dist/cjs/react-server.js +47 -35
  82. package/dist/cjs/router/cli/code/getClientRoutes/getRoutes.js +147 -185
  83. package/dist/cjs/router/cli/code/getClientRoutes/index.js +33 -28
  84. package/dist/cjs/router/cli/code/getClientRoutes/utils.js +57 -54
  85. package/dist/cjs/router/cli/code/index.js +173 -150
  86. package/dist/cjs/router/cli/code/inspect.js +139 -0
  87. package/dist/cjs/router/cli/code/makeLegalIdentifier.js +38 -32
  88. package/dist/cjs/router/cli/code/nestedRoutes.js +225 -286
  89. package/dist/cjs/router/cli/code/templates.js +334 -405
  90. package/dist/cjs/router/cli/code/utils.js +131 -132
  91. package/dist/cjs/router/cli/config-routes/converter.js +129 -0
  92. package/dist/cjs/router/cli/config-routes/parseRouteConfig.js +155 -0
  93. package/dist/cjs/router/cli/constants.js +92 -82
  94. package/dist/cjs/router/cli/entry.js +67 -86
  95. package/dist/cjs/router/cli/handler.js +109 -96
  96. package/dist/cjs/router/cli/index.js +131 -142
  97. package/dist/cjs/router/index.js +55 -19
  98. package/dist/cjs/router/internal.js +61 -27
  99. package/dist/cjs/router/runtime/DefaultNotFound.js +44 -35
  100. package/dist/cjs/router/runtime/DeferredDataScripts.js +34 -24
  101. package/dist/cjs/router/runtime/DeferredDataScripts.node.js +148 -146
  102. package/dist/cjs/router/runtime/PrefetchLink.js +190 -210
  103. package/dist/cjs/router/runtime/constants.js +61 -46
  104. package/dist/cjs/router/runtime/hooks.js +38 -29
  105. package/dist/cjs/router/runtime/index.js +92 -46
  106. package/dist/cjs/router/runtime/internal.js +44 -33
  107. package/dist/cjs/router/runtime/plugin.js +206 -225
  108. package/dist/cjs/router/runtime/plugin.node.js +179 -205
  109. package/dist/cjs/router/runtime/routerHelper.js +55 -0
  110. package/dist/cjs/router/runtime/rsc-router.js +272 -305
  111. package/dist/cjs/router/runtime/rsc.js +58 -0
  112. package/dist/cjs/router/runtime/server.js +55 -19
  113. package/dist/cjs/router/runtime/types.js +17 -15
  114. package/dist/cjs/router/runtime/utils.js +202 -228
  115. package/dist/cjs/router/runtime/withRouter.js +45 -39
  116. package/dist/cjs/rsc/client.js +65 -30
  117. package/dist/cjs/rsc/server.js +93 -57
  118. package/dist/esm/cli/alias.mjs +24 -0
  119. package/dist/esm/cli/code.mjs +119 -0
  120. package/dist/esm/cli/constants.mjs +10 -0
  121. package/dist/esm/cli/entry.mjs +6 -0
  122. package/dist/esm/cli/index.mjs +89 -0
  123. package/dist/esm/cli/ssr/index.mjs +125 -0
  124. package/dist/esm/cli/ssr/loadable-bundler-plugin.mjs +75 -0
  125. package/dist/esm/cli/ssr/mode.mjs +14 -0
  126. package/dist/{esm-node/cli/template.js → esm/cli/template.mjs} +45 -82
  127. package/dist/esm/cli/template.server.mjs +147 -0
  128. package/dist/esm/common.mjs +4 -0
  129. package/dist/esm/core/browser/hydrate.mjs +53 -0
  130. package/dist/esm/core/browser/index.mjs +96 -0
  131. package/dist/esm/core/browser/withCallback.mjs +13 -0
  132. package/dist/esm/core/compat/hooks.mjs +35 -0
  133. package/dist/esm/core/compat/index.mjs +12 -0
  134. package/dist/esm/core/compat/requestContext.mjs +21 -0
  135. package/dist/esm/core/config.mjs +2 -0
  136. package/dist/esm/core/constants.mjs +8 -0
  137. package/dist/esm/core/context/index.mjs +45 -0
  138. package/dist/esm/core/context/monitors/default.mjs +10 -0
  139. package/dist/esm/core/context/monitors/index.mjs +3 -0
  140. package/dist/esm/core/context/monitors/index.server.mjs +7 -0
  141. package/dist/esm/core/context/request/index.mjs +2 -0
  142. package/dist/esm/core/context/request/index.server.mjs +6 -0
  143. package/dist/esm/core/context/response/index.mjs +7 -0
  144. package/dist/esm/core/context/response/index.server.mjs +28 -0
  145. package/dist/esm/core/context/runtime.mjs +15 -0
  146. package/dist/esm/core/context/serverPayload/index.mjs +3 -0
  147. package/dist/esm/core/context/serverPayload/index.server.mjs +10 -0
  148. package/dist/esm/core/index.mjs +3 -0
  149. package/dist/esm/core/plugin/index.mjs +25 -0
  150. package/dist/esm/core/react/index.mjs +16 -0
  151. package/dist/esm/core/react/wrapper.mjs +20 -0
  152. package/dist/esm/core/server/constants.mjs +5 -0
  153. package/dist/esm/core/server/helmet.mjs +38 -0
  154. package/dist/esm/core/server/index.mjs +7 -0
  155. package/dist/esm/core/server/react/index.mjs +3 -0
  156. package/dist/esm/core/server/react/no-ssr-cache/index.mjs +9 -0
  157. package/dist/esm/core/server/react/nossr/index.mjs +10 -0
  158. package/dist/esm/core/server/requestHandler.mjs +161 -0
  159. package/dist/{esm-node/core/server/server.js → esm/core/server/server.mjs} +1 -5
  160. package/dist/esm/core/server/shared.mjs +4 -0
  161. package/dist/esm/core/server/stream/afterTemplate.mjs +66 -0
  162. package/dist/esm/core/server/stream/beforeTemplate.mjs +63 -0
  163. package/dist/esm/core/server/stream/createReadableStream.mjs +128 -0
  164. package/dist/esm/core/server/stream/createReadableStream.worker.mjs +109 -0
  165. package/dist/esm/core/server/stream/deferredScript.mjs +62 -0
  166. package/dist/esm/core/server/stream/index.mjs +4 -0
  167. package/dist/esm/core/server/stream/shared.mjs +71 -0
  168. package/dist/esm/core/server/stream/template.mjs +13 -0
  169. package/dist/esm/core/server/string/index.mjs +101 -0
  170. package/dist/esm/core/server/string/loadable.mjs +112 -0
  171. package/dist/esm/core/server/string/ssrData.mjs +104 -0
  172. package/dist/esm/core/server/tracer.mjs +15 -0
  173. package/dist/esm/core/server/utils.mjs +39 -0
  174. package/dist/esm/document/Body.mjs +20 -0
  175. package/dist/esm/document/Comment.mjs +15 -0
  176. package/dist/esm/document/DocumentContext.mjs +7 -0
  177. package/dist/esm/document/DocumentStructureContext.mjs +10 -0
  178. package/dist/esm/document/Head.mjs +29 -0
  179. package/dist/esm/document/Html.mjs +74 -0
  180. package/dist/esm/document/Links.mjs +9 -0
  181. package/dist/esm/document/Root.mjs +29 -0
  182. package/dist/esm/document/Script.mjs +21 -0
  183. package/dist/esm/document/Scripts.mjs +9 -0
  184. package/dist/esm/document/Style.mjs +16 -0
  185. package/dist/esm/document/Title.mjs +8 -0
  186. package/dist/esm/document/cli/index.mjs +323 -0
  187. package/dist/esm/document/constants.mjs +34 -0
  188. package/dist/esm/exports/config-routes.mjs +4 -0
  189. package/dist/esm/exports/head.mjs +4 -0
  190. package/dist/esm/exports/loadable.mjs +4 -0
  191. package/dist/esm/index.mjs +6 -0
  192. package/dist/esm/internal.mjs +2 -0
  193. package/dist/esm/react-server.mjs +4 -0
  194. package/dist/esm/router/cli/code/getClientRoutes/getRoutes.mjs +115 -0
  195. package/dist/esm/router/cli/code/getClientRoutes/index.mjs +2 -0
  196. package/dist/esm/router/cli/code/getClientRoutes/utils.mjs +12 -0
  197. package/dist/esm/router/cli/code/index.mjs +132 -0
  198. package/dist/esm/router/cli/code/inspect.mjs +95 -0
  199. package/dist/esm/router/cli/code/makeLegalIdentifier.mjs +9 -0
  200. package/dist/esm/router/cli/code/nestedRoutes.mjs +193 -0
  201. package/dist/esm/router/cli/code/templates.mjs +365 -0
  202. package/dist/esm/router/cli/code/utils.mjs +73 -0
  203. package/dist/esm/router/cli/config-routes/converter.mjs +82 -0
  204. package/dist/esm/router/cli/config-routes/parseRouteConfig.mjs +105 -0
  205. package/dist/esm/router/cli/constants.mjs +32 -0
  206. package/dist/esm/router/cli/entry.mjs +22 -0
  207. package/dist/esm/router/cli/handler.mjs +66 -0
  208. package/dist/esm/router/cli/index.mjs +80 -0
  209. package/dist/{esm-node/router/internal.js → esm/router/internal.mjs} +2 -4
  210. package/dist/esm/router/runtime/DefaultNotFound.mjs +13 -0
  211. package/dist/esm/router/runtime/DeferredDataScripts.mjs +2 -0
  212. package/dist/esm/router/runtime/DeferredDataScripts.node.mjs +120 -0
  213. package/dist/esm/router/runtime/PrefetchLink.mjs +161 -0
  214. package/dist/{esm-node/router/runtime/constants.js → esm/router/runtime/constants.mjs} +7 -16
  215. package/dist/esm/router/runtime/hooks.mjs +4 -0
  216. package/dist/esm/router/runtime/index.mjs +9 -0
  217. package/dist/esm/router/runtime/internal.mjs +4 -0
  218. package/dist/esm/router/runtime/plugin.mjs +181 -0
  219. package/dist/esm/router/runtime/plugin.node.mjs +138 -0
  220. package/dist/esm/router/runtime/routerHelper.mjs +15 -0
  221. package/dist/esm/router/runtime/rsc-router.mjs +233 -0
  222. package/dist/esm/router/runtime/rsc.mjs +1 -0
  223. package/dist/esm/router/runtime/server.mjs +1 -0
  224. package/dist/esm/router/runtime/utils.mjs +165 -0
  225. package/dist/esm/router/runtime/withRouter.mjs +14 -0
  226. package/dist/esm/rsc/client.mjs +3 -0
  227. package/dist/esm/rsc/server.mjs +33 -0
  228. package/dist/esm-node/cli/alias.mjs +24 -0
  229. package/dist/esm-node/cli/code.mjs +119 -0
  230. package/dist/esm-node/cli/constants.mjs +10 -0
  231. package/dist/esm-node/cli/entry.mjs +6 -0
  232. package/dist/esm-node/cli/index.mjs +89 -0
  233. package/dist/esm-node/cli/ssr/index.mjs +125 -0
  234. package/dist/esm-node/cli/ssr/loadable-bundler-plugin.mjs +75 -0
  235. package/dist/esm-node/cli/ssr/mode.mjs +14 -0
  236. package/dist/esm-node/cli/template.mjs +168 -0
  237. package/dist/esm-node/cli/{template.server.js → template.server.mjs} +20 -24
  238. package/dist/esm-node/common.mjs +4 -0
  239. package/dist/esm-node/core/browser/hydrate.mjs +53 -0
  240. package/dist/esm-node/core/browser/index.mjs +96 -0
  241. package/dist/esm-node/core/browser/withCallback.mjs +13 -0
  242. package/dist/esm-node/core/compat/hooks.mjs +35 -0
  243. package/dist/esm-node/core/compat/index.mjs +12 -0
  244. package/dist/esm-node/core/compat/requestContext.mjs +21 -0
  245. package/dist/esm-node/core/config.mjs +2 -0
  246. package/dist/esm-node/core/constants.mjs +8 -0
  247. package/dist/esm-node/core/context/index.mjs +45 -0
  248. package/dist/esm-node/core/context/monitors/default.mjs +10 -0
  249. package/dist/esm-node/core/context/monitors/index.mjs +3 -0
  250. package/dist/esm-node/core/context/monitors/index.server.mjs +7 -0
  251. package/dist/esm-node/core/context/request/index.mjs +2 -0
  252. package/dist/esm-node/core/context/request/index.server.mjs +6 -0
  253. package/dist/esm-node/core/context/response/index.mjs +7 -0
  254. package/dist/esm-node/core/context/response/index.server.mjs +28 -0
  255. package/dist/esm-node/core/context/runtime.mjs +15 -0
  256. package/dist/esm-node/core/context/serverPayload/index.mjs +3 -0
  257. package/dist/esm-node/core/context/serverPayload/index.server.mjs +10 -0
  258. package/dist/esm-node/core/index.mjs +3 -0
  259. package/dist/esm-node/core/plugin/index.mjs +25 -0
  260. package/dist/esm-node/core/react/index.mjs +16 -0
  261. package/dist/esm-node/core/react/wrapper.mjs +20 -0
  262. package/dist/esm-node/core/server/constants.mjs +5 -0
  263. package/dist/esm-node/core/server/helmet.mjs +38 -0
  264. package/dist/esm-node/core/server/index.mjs +7 -0
  265. package/dist/esm-node/core/server/react/index.mjs +3 -0
  266. package/dist/esm-node/core/server/react/no-ssr-cache/index.mjs +9 -0
  267. package/dist/esm-node/core/server/react/nossr/index.mjs +10 -0
  268. package/dist/esm-node/core/server/requestHandler.mjs +161 -0
  269. package/dist/esm-node/core/server/server.mjs +4 -0
  270. package/dist/esm-node/core/server/shared.mjs +4 -0
  271. package/dist/esm-node/core/server/stream/afterTemplate.mjs +66 -0
  272. package/dist/esm-node/core/server/stream/beforeTemplate.mjs +63 -0
  273. package/dist/esm-node/core/server/stream/createReadableStream.mjs +128 -0
  274. package/dist/esm-node/core/server/stream/createReadableStream.worker.mjs +109 -0
  275. package/dist/esm-node/core/server/stream/deferredScript.mjs +62 -0
  276. package/dist/esm-node/core/server/stream/index.mjs +4 -0
  277. package/dist/esm-node/core/server/stream/shared.mjs +71 -0
  278. package/dist/esm-node/core/server/stream/template.mjs +13 -0
  279. package/dist/esm-node/core/server/string/index.mjs +101 -0
  280. package/dist/esm-node/core/server/string/loadable.mjs +112 -0
  281. package/dist/esm-node/core/server/string/ssrData.mjs +104 -0
  282. package/dist/esm-node/core/server/tracer.mjs +15 -0
  283. package/dist/esm-node/core/server/utils.mjs +39 -0
  284. package/dist/esm-node/document/Body.mjs +20 -0
  285. package/dist/esm-node/document/Comment.mjs +15 -0
  286. package/dist/esm-node/document/DocumentContext.mjs +7 -0
  287. package/dist/esm-node/document/DocumentStructureContext.mjs +10 -0
  288. package/dist/esm-node/document/Head.mjs +29 -0
  289. package/dist/esm-node/document/Html.mjs +74 -0
  290. package/dist/esm-node/document/Links.mjs +9 -0
  291. package/dist/esm-node/document/Root.mjs +29 -0
  292. package/dist/esm-node/document/Script.mjs +21 -0
  293. package/dist/esm-node/document/Scripts.mjs +9 -0
  294. package/dist/esm-node/document/Style.mjs +16 -0
  295. package/dist/esm-node/document/Title.mjs +8 -0
  296. package/dist/esm-node/document/cli/index.mjs +323 -0
  297. package/dist/esm-node/document/constants.mjs +34 -0
  298. package/dist/esm-node/document/index.mjs +12 -0
  299. package/dist/esm-node/exports/config-routes.mjs +4 -0
  300. package/dist/esm-node/exports/head.mjs +4 -0
  301. package/dist/esm-node/exports/loadable.mjs +4 -0
  302. package/dist/esm-node/index.mjs +6 -0
  303. package/dist/esm-node/internal.mjs +2 -0
  304. package/dist/esm-node/react-server.mjs +4 -0
  305. package/dist/esm-node/router/cli/code/getClientRoutes/getRoutes.mjs +115 -0
  306. package/dist/esm-node/router/cli/code/getClientRoutes/index.mjs +2 -0
  307. package/dist/esm-node/router/cli/code/getClientRoutes/utils.mjs +12 -0
  308. package/dist/esm-node/router/cli/code/index.mjs +132 -0
  309. package/dist/esm-node/router/cli/code/inspect.mjs +95 -0
  310. package/dist/esm-node/router/cli/code/{makeLegalIdentifier.js → makeLegalIdentifier.mjs} +7 -11
  311. package/dist/esm-node/router/cli/code/nestedRoutes.mjs +193 -0
  312. package/dist/esm-node/router/cli/code/templates.mjs +365 -0
  313. package/dist/esm-node/router/cli/code/utils.mjs +73 -0
  314. package/dist/esm-node/router/cli/config-routes/converter.mjs +82 -0
  315. package/dist/esm-node/router/cli/config-routes/parseRouteConfig.mjs +105 -0
  316. package/dist/esm-node/router/cli/constants.mjs +32 -0
  317. package/dist/esm-node/router/cli/entry.mjs +22 -0
  318. package/dist/esm-node/router/cli/handler.mjs +66 -0
  319. package/dist/esm-node/router/cli/index.mjs +80 -0
  320. package/dist/esm-node/router/index.mjs +1 -0
  321. package/dist/esm-node/router/internal.mjs +3 -0
  322. package/dist/esm-node/router/runtime/DefaultNotFound.mjs +13 -0
  323. package/dist/esm-node/router/runtime/DeferredDataScripts.mjs +2 -0
  324. package/dist/esm-node/router/runtime/DeferredDataScripts.node.mjs +120 -0
  325. package/dist/esm-node/router/runtime/PrefetchLink.mjs +161 -0
  326. package/dist/esm-node/router/runtime/constants.mjs +10 -0
  327. package/dist/esm-node/router/runtime/hooks.mjs +4 -0
  328. package/dist/esm-node/router/runtime/index.mjs +9 -0
  329. package/dist/esm-node/router/runtime/internal.mjs +4 -0
  330. package/dist/esm-node/router/runtime/plugin.mjs +181 -0
  331. package/dist/esm-node/router/runtime/plugin.node.mjs +138 -0
  332. package/dist/esm-node/router/runtime/routerHelper.mjs +15 -0
  333. package/dist/esm-node/router/runtime/rsc-router.mjs +233 -0
  334. package/dist/esm-node/router/runtime/rsc.mjs +1 -0
  335. package/dist/esm-node/router/runtime/server.mjs +1 -0
  336. package/dist/esm-node/router/runtime/utils.mjs +165 -0
  337. package/dist/esm-node/router/runtime/withRouter.mjs +14 -0
  338. package/dist/esm-node/rsc/client.mjs +3 -0
  339. package/dist/esm-node/rsc/server.mjs +33 -0
  340. package/dist/types/cli/code.d.ts +1 -1
  341. package/dist/types/cli/index.d.ts +3 -3
  342. package/dist/types/cli/ssr/index.d.ts +2 -2
  343. package/dist/types/cli/ssr/mode.d.ts +15 -0
  344. package/dist/types/cli/template.d.ts +3 -3
  345. package/dist/types/common.d.ts +2 -7
  346. package/dist/types/core/browser/hydrate.d.ts +2 -2
  347. package/dist/types/core/browser/index.d.ts +3 -1
  348. package/dist/types/core/compat/hooks.d.ts +2 -2
  349. package/dist/types/core/compat/index.d.ts +2 -2
  350. package/dist/types/core/compat/requestContext.d.ts +5 -24
  351. package/dist/types/core/config.d.ts +1 -8
  352. package/dist/types/core/constants.d.ts +0 -1
  353. package/dist/types/core/context/index.d.ts +9 -13
  354. package/dist/types/core/context/monitors/index.d.ts +1 -1
  355. package/dist/types/core/context/runtime.d.ts +26 -29
  356. package/dist/types/core/context/serverPayload/index.server.d.ts +1 -1
  357. package/dist/types/core/index.d.ts +4 -7
  358. package/dist/types/core/plugin/index.d.ts +13 -13
  359. package/dist/types/core/plugin/types.d.ts +9 -10
  360. package/dist/types/core/react/wrapper.d.ts +3 -3
  361. package/dist/types/core/server/index.d.ts +3 -3
  362. package/dist/types/core/server/react/index.d.ts +0 -1
  363. package/dist/types/core/server/requestHandler.d.ts +3 -3
  364. package/dist/types/core/server/stream/afterTemplate.d.ts +2 -2
  365. package/dist/types/core/server/stream/beforeTemplate.d.ts +2 -2
  366. package/dist/types/core/server/stream/shared.d.ts +2 -2
  367. package/dist/types/core/server/string/loadable.d.ts +2 -2
  368. package/dist/types/core/server/string/ssrData.d.ts +3 -2
  369. package/dist/types/core/server/tracer.d.ts +1 -3
  370. package/dist/types/core/server/utils.d.ts +2 -3
  371. package/dist/types/core/types.d.ts +4 -16
  372. package/dist/types/document/DocumentContext.d.ts +1 -1
  373. package/dist/types/document/cli/index.d.ts +3 -3
  374. package/dist/types/document/constants.d.ts +3 -1
  375. package/dist/types/exports/config-routes.d.ts +9 -0
  376. package/dist/types/index.d.ts +4 -5
  377. package/dist/types/internal.d.ts +2 -0
  378. package/dist/types/router/cli/code/getClientRoutes/index.d.ts +0 -1
  379. package/dist/types/router/cli/code/getClientRoutes/utils.d.ts +0 -1
  380. package/dist/types/router/cli/code/index.d.ts +7 -3
  381. package/dist/types/router/cli/code/inspect.d.ts +22 -0
  382. package/dist/types/router/cli/code/nestedRoutes.d.ts +10 -4
  383. package/dist/types/router/cli/code/templates.d.ts +3 -2
  384. package/dist/types/router/cli/config-routes/converter.d.ts +15 -0
  385. package/dist/types/router/cli/config-routes/parseRouteConfig.d.ts +32 -0
  386. package/dist/types/router/cli/constants.d.ts +0 -3
  387. package/dist/types/router/cli/entry.d.ts +1 -2
  388. package/dist/types/router/cli/handler.d.ts +4 -4
  389. package/dist/types/router/cli/index.d.ts +2 -4
  390. package/dist/types/router/runtime/DeferredDataScripts.node.d.ts +1 -1
  391. package/dist/types/router/runtime/hooks.d.ts +3 -3
  392. package/dist/types/router/runtime/index.d.ts +0 -1
  393. package/dist/types/router/runtime/plugin.d.ts +2 -2
  394. package/dist/types/router/runtime/plugin.node.d.ts +2 -2
  395. package/dist/types/router/runtime/{routeModule.d.ts → routerHelper.d.ts} +1 -1
  396. package/dist/types/router/runtime/rsc-router.d.ts +2 -2
  397. package/dist/types/router/runtime/rsc.d.ts +1 -0
  398. package/dist/types/router/runtime/server.d.ts +1 -1
  399. package/dist/types/router/runtime/types.d.ts +0 -1
  400. package/dist/types/router/runtime/utils.d.ts +5 -4
  401. package/package.json +91 -81
  402. package/rslib.config.mts +19 -0
  403. package/dist/cjs/cli/ssr/babel-plugin-ssr-loader-id.js +0 -133
  404. package/dist/cjs/config.js +0 -16
  405. package/dist/cjs/core/compatible.js +0 -192
  406. package/dist/cjs/core/loader/index.js +0 -38
  407. package/dist/cjs/core/loader/loaderManager.js +0 -186
  408. package/dist/cjs/core/loader/useLoader.js +0 -114
  409. package/dist/cjs/core/plugin/base.js +0 -16
  410. package/dist/cjs/core/server/react/prerender/index.js +0 -124
  411. package/dist/cjs/core/server/react/prerender/type.js +0 -16
  412. package/dist/cjs/core/server/react/prerender/util.js +0 -121
  413. package/dist/cjs/core/server/string/prefetch.js +0 -93
  414. package/dist/cjs/core/server/string/styledComponent.js +0 -53
  415. package/dist/cjs/exports/server.js +0 -28
  416. package/dist/cjs/exports/styled.js +0 -41
  417. package/dist/cjs/router/cli/code/getClientRoutes/getRoutesLegacy.js +0 -195
  418. package/dist/cjs/router/runtime/routeModule.js +0 -52
  419. package/dist/esm/cli/alias.js +0 -30
  420. package/dist/esm/cli/code.js +0 -265
  421. package/dist/esm/cli/constants.js +0 -20
  422. package/dist/esm/cli/entry.js +0 -15
  423. package/dist/esm/cli/index.js +0 -170
  424. package/dist/esm/cli/ssr/babel-plugin-ssr-loader-id.js +0 -118
  425. package/dist/esm/cli/ssr/index.js +0 -143
  426. package/dist/esm/cli/ssr/loadable-bundler-plugin.js +0 -102
  427. package/dist/esm/cli/template.js +0 -98
  428. package/dist/esm/cli/template.server.js +0 -34
  429. package/dist/esm/common.js +0 -10
  430. package/dist/esm/core/browser/hydrate.js +0 -75
  431. package/dist/esm/core/browser/index.js +0 -279
  432. package/dist/esm/core/browser/withCallback.js +0 -18
  433. package/dist/esm/core/compat/hooks.js +0 -88
  434. package/dist/esm/core/compat/index.js +0 -20
  435. package/dist/esm/core/compat/requestContext.js +0 -25
  436. package/dist/esm/core/compatible.js +0 -215
  437. package/dist/esm/core/config.js +0 -19
  438. package/dist/esm/core/constants.js +0 -13
  439. package/dist/esm/core/context/index.js +0 -67
  440. package/dist/esm/core/context/monitors/default.js +0 -20
  441. package/dist/esm/core/context/monitors/index.js +0 -7
  442. package/dist/esm/core/context/monitors/index.server.js +0 -9
  443. package/dist/esm/core/context/request/index.js +0 -6
  444. package/dist/esm/core/context/request/index.server.js +0 -8
  445. package/dist/esm/core/context/response/index.js +0 -16
  446. package/dist/esm/core/context/response/index.server.js +0 -41
  447. package/dist/esm/core/context/runtime.js +0 -18
  448. package/dist/esm/core/context/serverPayload/index.js +0 -9
  449. package/dist/esm/core/context/serverPayload/index.server.js +0 -15
  450. package/dist/esm/core/index.js +0 -12
  451. package/dist/esm/core/loader/index.js +0 -4
  452. package/dist/esm/core/loader/loaderManager.js +0 -234
  453. package/dist/esm/core/loader/useLoader.js +0 -89
  454. package/dist/esm/core/plugin/base.js +0 -0
  455. package/dist/esm/core/plugin/index.js +0 -33
  456. package/dist/esm/core/plugin/types.js +0 -0
  457. package/dist/esm/core/react/index.js +0 -18
  458. package/dist/esm/core/react/wrapper.js +0 -10
  459. package/dist/esm/core/server/constants.js +0 -10
  460. package/dist/esm/core/server/helmet.js +0 -53
  461. package/dist/esm/core/server/index.js +0 -17
  462. package/dist/esm/core/server/react/index.js +0 -8
  463. package/dist/esm/core/server/react/no-ssr-cache/index.js +0 -12
  464. package/dist/esm/core/server/react/nossr/index.js +0 -14
  465. package/dist/esm/core/server/react/prerender/index.js +0 -105
  466. package/dist/esm/core/server/react/prerender/type.js +0 -0
  467. package/dist/esm/core/server/react/prerender/util.js +0 -114
  468. package/dist/esm/core/server/requestHandler.js +0 -330
  469. package/dist/esm/core/server/server.js +0 -8
  470. package/dist/esm/core/server/shared.js +0 -10
  471. package/dist/esm/core/server/stream/afterTemplate.js +0 -107
  472. package/dist/esm/core/server/stream/beforeTemplate.js +0 -188
  473. package/dist/esm/core/server/stream/createReadableStream.js +0 -165
  474. package/dist/esm/core/server/stream/createReadableStream.worker.js +0 -239
  475. package/dist/esm/core/server/stream/deferredScript.js +0 -85
  476. package/dist/esm/core/server/stream/index.js +0 -10
  477. package/dist/esm/core/server/stream/shared.js +0 -109
  478. package/dist/esm/core/server/stream/template.js +0 -42
  479. package/dist/esm/core/server/string/index.js +0 -189
  480. package/dist/esm/core/server/string/loadable.js +0 -336
  481. package/dist/esm/core/server/string/prefetch.js +0 -105
  482. package/dist/esm/core/server/string/ssrData.js +0 -82
  483. package/dist/esm/core/server/string/styledComponent.js +0 -34
  484. package/dist/esm/core/server/string/types.js +0 -0
  485. package/dist/esm/core/server/tracer.js +0 -20
  486. package/dist/esm/core/server/utils.js +0 -80
  487. package/dist/esm/core/types.js +0 -0
  488. package/dist/esm/document/Body.js +0 -26
  489. package/dist/esm/document/Comment.js +0 -16
  490. package/dist/esm/document/DocumentContext.js +0 -9
  491. package/dist/esm/document/DocumentStructureContext.js +0 -12
  492. package/dist/esm/document/Head.js +0 -36
  493. package/dist/esm/document/Html.js +0 -108
  494. package/dist/esm/document/Links.js +0 -10
  495. package/dist/esm/document/Root.js +0 -41
  496. package/dist/esm/document/Script.js +0 -25
  497. package/dist/esm/document/Scripts.js +0 -10
  498. package/dist/esm/document/Style.js +0 -17
  499. package/dist/esm/document/Title.js +0 -10
  500. package/dist/esm/document/cli/index.js +0 -282
  501. package/dist/esm/document/constants.js +0 -56
  502. package/dist/esm/document/index.js +0 -12
  503. package/dist/esm/exports/head.js +0 -6
  504. package/dist/esm/exports/loadable.js +0 -6
  505. package/dist/esm/exports/server.js +0 -6
  506. package/dist/esm/exports/styled.js +0 -6
  507. package/dist/esm/index.js +0 -20
  508. package/dist/esm/react-server.js +0 -10
  509. package/dist/esm/router/cli/code/getClientRoutes/getRoutes.js +0 -185
  510. package/dist/esm/router/cli/code/getClientRoutes/getRoutesLegacy.js +0 -183
  511. package/dist/esm/router/cli/code/getClientRoutes/index.js +0 -6
  512. package/dist/esm/router/cli/code/getClientRoutes/utils.js +0 -28
  513. package/dist/esm/router/cli/code/index.js +0 -255
  514. package/dist/esm/router/cli/code/makeLegalIdentifier.js +0 -15
  515. package/dist/esm/router/cli/code/nestedRoutes.js +0 -397
  516. package/dist/esm/router/cli/code/templates.js +0 -554
  517. package/dist/esm/router/cli/code/utils.js +0 -212
  518. package/dist/esm/router/cli/constants.js +0 -51
  519. package/dist/esm/router/cli/entry.js +0 -61
  520. package/dist/esm/router/cli/handler.js +0 -191
  521. package/dist/esm/router/cli/index.js +0 -202
  522. package/dist/esm/router/index.js +0 -1
  523. package/dist/esm/router/internal.js +0 -5
  524. package/dist/esm/router/runtime/DefaultNotFound.js +0 -16
  525. package/dist/esm/router/runtime/DeferredDataScripts.js +0 -7
  526. package/dist/esm/router/runtime/DeferredDataScripts.node.js +0 -138
  527. package/dist/esm/router/runtime/PrefetchLink.js +0 -247
  528. package/dist/esm/router/runtime/constants.js +0 -19
  529. package/dist/esm/router/runtime/hooks.js +0 -7
  530. package/dist/esm/router/runtime/index.js +0 -17
  531. package/dist/esm/router/runtime/internal.js +0 -10
  532. package/dist/esm/router/runtime/plugin.js +0 -216
  533. package/dist/esm/router/runtime/plugin.node.js +0 -237
  534. package/dist/esm/router/runtime/routeModule.js +0 -26
  535. package/dist/esm/router/runtime/rsc-router.js +0 -437
  536. package/dist/esm/router/runtime/server.js +0 -1
  537. package/dist/esm/router/runtime/types.js +0 -0
  538. package/dist/esm/router/runtime/utils.js +0 -296
  539. package/dist/esm/router/runtime/withRouter.js +0 -19
  540. package/dist/esm/rsc/client.js +0 -7
  541. package/dist/esm/rsc/server.js +0 -87
  542. package/dist/esm-node/cli/alias.js +0 -28
  543. package/dist/esm-node/cli/code.js +0 -137
  544. package/dist/esm-node/cli/constants.js +0 -20
  545. package/dist/esm-node/cli/entry.js +0 -9
  546. package/dist/esm-node/cli/index.js +0 -145
  547. package/dist/esm-node/cli/ssr/babel-plugin-ssr-loader-id.js +0 -119
  548. package/dist/esm-node/cli/ssr/index.js +0 -116
  549. package/dist/esm-node/cli/ssr/loadable-bundler-plugin.js +0 -97
  550. package/dist/esm-node/common.js +0 -8
  551. package/dist/esm-node/core/browser/hydrate.js +0 -68
  552. package/dist/esm-node/core/browser/index.js +0 -128
  553. package/dist/esm-node/core/browser/withCallback.js +0 -17
  554. package/dist/esm-node/core/compat/hooks.js +0 -54
  555. package/dist/esm-node/core/compat/index.js +0 -18
  556. package/dist/esm-node/core/compat/requestContext.js +0 -23
  557. package/dist/esm-node/core/compatible.js +0 -156
  558. package/dist/esm-node/core/config.js +0 -15
  559. package/dist/esm-node/core/constants.js +0 -13
  560. package/dist/esm-node/core/context/index.js +0 -67
  561. package/dist/esm-node/core/context/monitors/default.js +0 -14
  562. package/dist/esm-node/core/context/monitors/index.js +0 -7
  563. package/dist/esm-node/core/context/monitors/index.server.js +0 -9
  564. package/dist/esm-node/core/context/request/index.js +0 -6
  565. package/dist/esm-node/core/context/request/index.server.js +0 -8
  566. package/dist/esm-node/core/context/response/index.js +0 -16
  567. package/dist/esm-node/core/context/response/index.server.js +0 -35
  568. package/dist/esm-node/core/context/runtime.js +0 -15
  569. package/dist/esm-node/core/context/serverPayload/index.js +0 -9
  570. package/dist/esm-node/core/context/serverPayload/index.server.js +0 -15
  571. package/dist/esm-node/core/index.js +0 -12
  572. package/dist/esm-node/core/loader/index.js +0 -4
  573. package/dist/esm-node/core/loader/loaderManager.js +0 -151
  574. package/dist/esm-node/core/loader/useLoader.js +0 -84
  575. package/dist/esm-node/core/plugin/index.js +0 -28
  576. package/dist/esm-node/core/react/index.js +0 -18
  577. package/dist/esm-node/core/react/wrapper.js +0 -10
  578. package/dist/esm-node/core/server/constants.js +0 -10
  579. package/dist/esm-node/core/server/helmet.js +0 -49
  580. package/dist/esm-node/core/server/index.js +0 -13
  581. package/dist/esm-node/core/server/react/index.js +0 -8
  582. package/dist/esm-node/core/server/react/no-ssr-cache/index.js +0 -12
  583. package/dist/esm-node/core/server/react/nossr/index.js +0 -13
  584. package/dist/esm-node/core/server/react/prerender/index.js +0 -90
  585. package/dist/esm-node/core/server/react/prerender/util.js +0 -93
  586. package/dist/esm-node/core/server/requestHandler.js +0 -199
  587. package/dist/esm-node/core/server/shared.js +0 -6
  588. package/dist/esm-node/core/server/stream/afterTemplate.js +0 -76
  589. package/dist/esm-node/core/server/stream/beforeTemplate.js +0 -85
  590. package/dist/esm-node/core/server/stream/createReadableStream.js +0 -123
  591. package/dist/esm-node/core/server/stream/createReadableStream.worker.js +0 -134
  592. package/dist/esm-node/core/server/stream/deferredScript.js +0 -76
  593. package/dist/esm-node/core/server/stream/index.js +0 -6
  594. package/dist/esm-node/core/server/stream/shared.js +0 -82
  595. package/dist/esm-node/core/server/stream/template.js +0 -15
  596. package/dist/esm-node/core/server/string/index.js +0 -113
  597. package/dist/esm-node/core/server/string/loadable.js +0 -154
  598. package/dist/esm-node/core/server/string/prefetch.js +0 -69
  599. package/dist/esm-node/core/server/string/ssrData.js +0 -74
  600. package/dist/esm-node/core/server/string/styledComponent.js +0 -29
  601. package/dist/esm-node/core/server/tracer.js +0 -20
  602. package/dist/esm-node/core/server/utils.js +0 -57
  603. package/dist/esm-node/document/Body.js +0 -22
  604. package/dist/esm-node/document/Comment.js +0 -16
  605. package/dist/esm-node/document/DocumentContext.js +0 -9
  606. package/dist/esm-node/document/DocumentStructureContext.js +0 -12
  607. package/dist/esm-node/document/Head.js +0 -32
  608. package/dist/esm-node/document/Html.js +0 -83
  609. package/dist/esm-node/document/Links.js +0 -10
  610. package/dist/esm-node/document/Root.js +0 -35
  611. package/dist/esm-node/document/Script.js +0 -23
  612. package/dist/esm-node/document/Scripts.js +0 -10
  613. package/dist/esm-node/document/Style.js +0 -17
  614. package/dist/esm-node/document/Title.js +0 -10
  615. package/dist/esm-node/document/cli/index.js +0 -188
  616. package/dist/esm-node/document/constants.js +0 -58
  617. package/dist/esm-node/exports/head.js +0 -6
  618. package/dist/esm-node/exports/loadable.js +0 -6
  619. package/dist/esm-node/exports/server.js +0 -4
  620. package/dist/esm-node/exports/styled.js +0 -6
  621. package/dist/esm-node/index.js +0 -20
  622. package/dist/esm-node/react-server.js +0 -10
  623. package/dist/esm-node/router/cli/code/getClientRoutes/getRoutes.js +0 -163
  624. package/dist/esm-node/router/cli/code/getClientRoutes/getRoutesLegacy.js +0 -161
  625. package/dist/esm-node/router/cli/code/getClientRoutes/index.js +0 -6
  626. package/dist/esm-node/router/cli/code/getClientRoutes/utils.js +0 -22
  627. package/dist/esm-node/router/cli/code/index.js +0 -126
  628. package/dist/esm-node/router/cli/code/nestedRoutes.js +0 -258
  629. package/dist/esm-node/router/cli/code/templates.js +0 -452
  630. package/dist/esm-node/router/cli/code/utils.js +0 -101
  631. package/dist/esm-node/router/cli/constants.js +0 -51
  632. package/dist/esm-node/router/cli/entry.js +0 -54
  633. package/dist/esm-node/router/cli/handler.js +0 -67
  634. package/dist/esm-node/router/cli/index.js +0 -110
  635. package/dist/esm-node/router/runtime/DefaultNotFound.js +0 -14
  636. package/dist/esm-node/router/runtime/DeferredDataScripts.js +0 -6
  637. package/dist/esm-node/router/runtime/DeferredDataScripts.node.js +0 -132
  638. package/dist/esm-node/router/runtime/PrefetchLink.js +0 -192
  639. package/dist/esm-node/router/runtime/hooks.js +0 -7
  640. package/dist/esm-node/router/runtime/index.js +0 -17
  641. package/dist/esm-node/router/runtime/internal.js +0 -10
  642. package/dist/esm-node/router/runtime/plugin.js +0 -206
  643. package/dist/esm-node/router/runtime/plugin.node.js +0 -176
  644. package/dist/esm-node/router/runtime/routeModule.js +0 -26
  645. package/dist/esm-node/router/runtime/rsc-router.js +0 -284
  646. package/dist/esm-node/router/runtime/server.js +0 -1
  647. package/dist/esm-node/router/runtime/utils.js +0 -218
  648. package/dist/esm-node/router/runtime/withRouter.js +0 -18
  649. package/dist/esm-node/rsc/client.js +0 -7
  650. package/dist/esm-node/rsc/server.js +0 -36
  651. package/dist/types/cli/ssr/babel-plugin-ssr-loader-id.d.ts +0 -1
  652. package/dist/types/config.d.ts +0 -6
  653. package/dist/types/core/compatible.d.ts +0 -24
  654. package/dist/types/core/loader/index.d.ts +0 -1
  655. package/dist/types/core/loader/loaderManager.d.ts +0 -56
  656. package/dist/types/core/loader/useLoader.d.ts +0 -36
  657. package/dist/types/core/plugin/base.d.ts +0 -15
  658. package/dist/types/core/server/react/prerender/index.d.ts +0 -5
  659. package/dist/types/core/server/react/prerender/type.d.ts +0 -29
  660. package/dist/types/core/server/react/prerender/util.d.ts +0 -6
  661. package/dist/types/core/server/string/prefetch.d.ts +0 -16
  662. package/dist/types/core/server/string/styledComponent.d.ts +0 -11
  663. package/dist/types/exports/server.d.ts +0 -14
  664. package/dist/types/exports/styled.d.ts +0 -3
  665. package/dist/types/router/cli/code/getClientRoutes/getRoutesLegacy.d.ts +0 -9
  666. package/types/index.d.ts +0 -7
  667. package/types/router.d.ts +0 -24
  668. /package/dist/esm/cache/{index.js → index.mjs} +0 -0
  669. /package/dist/{esm-node/core/server/string/types.js → esm/core/plugin/types.mjs} +0 -0
  670. /package/dist/{esm-node/core/types.js → esm/core/server/string/types.mjs} +0 -0
  671. /package/dist/{esm-node/router/runtime/types.js → esm/core/types.mjs} +0 -0
  672. /package/dist/{esm-node/document/index.js → esm/document/index.mjs} +0 -0
  673. /package/dist/{esm-node/router/index.js → esm/router/index.mjs} +0 -0
  674. /package/dist/esm/{config.js → router/runtime/types.mjs} +0 -0
  675. /package/dist/esm-node/cache/{index.js → index.mjs} +0 -0
  676. /package/dist/esm-node/{config.js → core/plugin/types.mjs} +0 -0
  677. /package/dist/esm-node/core/{plugin/base.js → server/string/types.mjs} +0 -0
  678. /package/dist/esm-node/core/{plugin/types.js → types.mjs} +0 -0
  679. /package/dist/esm-node/{core/server/react/prerender/type.js → router/runtime/types.mjs} +0 -0
@@ -1,258 +0,0 @@
1
- import * as path from "path";
2
- import { fs, JS_EXTENSIONS, normalizeToPosixPath } from "@modern-js/utils";
3
- import { NESTED_ROUTE } from "../constants";
4
- import { getPathWithoutExt, hasAction, replaceWithAlias } from "./utils";
5
- const conventionNames = Object.values(NESTED_ROUTE);
6
- const replaceDynamicPath = (routePath) => {
7
- return routePath.replace(/\[(.*?)\]/g, ":$1");
8
- };
9
- const getRouteId = (componentPath, routesDir, entryName, isMainEntry) => {
10
- const relativePath = normalizeToPosixPath(path.relative(routesDir, componentPath));
11
- const pathWithoutExt = getPathWithoutExt(relativePath);
12
- let id = ``;
13
- if (isMainEntry) {
14
- id = pathWithoutExt;
15
- } else {
16
- id = `${entryName}_${pathWithoutExt}`;
17
- }
18
- return id.replace(/\[(.*?)\]/g, "($1)");
19
- };
20
- const createIndexRoute = (routeInfo, rootDir, filename, entryName, isMainEntry) => {
21
- return createRoute({
22
- ...routeInfo,
23
- index: true,
24
- children: void 0
25
- }, rootDir, filename, entryName, isMainEntry);
26
- };
27
- const createRoute = (routeInfo, rootDir, filename, entryName, isMainEntry) => {
28
- const id = getRouteId(filename, rootDir, entryName, isMainEntry);
29
- return {
30
- ...routeInfo,
31
- id,
32
- type: "nested"
33
- };
34
- };
35
- const optimizeRoute = (routeTree) => {
36
- if (!routeTree.children || routeTree.children.length === 0) {
37
- return [
38
- routeTree
39
- ];
40
- }
41
- const { children } = routeTree;
42
- if (!routeTree._component && !routeTree.error && !routeTree.loading && !routeTree.config && !routeTree.clientData) {
43
- const newRoutes = children.map((child) => {
44
- const routePath = routeTree.path ? `${routeTree.path}${child.path ? `/${child.path}` : ""}` : child.path || "";
45
- const newRoute = {
46
- ...child,
47
- path: routePath.replace(/\/\//g, "/")
48
- };
49
- if (routePath.length > 0) {
50
- delete newRoute.index;
51
- } else {
52
- delete newRoute.path;
53
- }
54
- return newRoute;
55
- });
56
- return Array.from(new Set(newRoutes)).flatMap(optimizeRoute);
57
- } else {
58
- const optimizedChildren = routeTree.children.flatMap(optimizeRoute);
59
- return [
60
- {
61
- ...routeTree,
62
- children: optimizedChildren
63
- }
64
- ];
65
- }
66
- };
67
- const walk = async (dirname, rootDir, alias, entryName, isMainEntry, oldVersion) => {
68
- var _finalRoute_children;
69
- if (!await fs.pathExists(dirname)) {
70
- return null;
71
- }
72
- const isDirectory = (await fs.stat(dirname)).isDirectory();
73
- if (!isDirectory) {
74
- return null;
75
- }
76
- const relativeDir = path.relative(rootDir, dirname);
77
- const pathSegments = relativeDir.split(path.sep);
78
- const lastSegment = pathSegments[pathSegments.length - 1];
79
- const isRoot = lastSegment === "";
80
- const isPathlessLayout = lastSegment.startsWith("__");
81
- const isWithoutLayoutPath = lastSegment.includes(".");
82
- let routePath = isRoot || isPathlessLayout ? "/" : `${lastSegment}`;
83
- if (isWithoutLayoutPath) {
84
- routePath = lastSegment.split(".").join("/");
85
- }
86
- routePath = replaceDynamicPath(routePath);
87
- const route = {
88
- path: routePath === null || routePath === void 0 ? void 0 : routePath.replace(/\$$/, "?"),
89
- children: [],
90
- isRoot
91
- };
92
- let pageLoaderFile = "";
93
- let pageRoute = null;
94
- let pageConfigFile = "";
95
- let pageClientData = "";
96
- let pageData = "";
97
- let pageAction = "";
98
- let splatLoaderFile = "";
99
- let splatRoute = null;
100
- let splatConfigFile = "";
101
- let splatClientData = "";
102
- let splatData = "";
103
- let splatAction = "";
104
- const items = await fs.readdir(dirname);
105
- for (const item of items) {
106
- const itemPath = path.join(dirname, item);
107
- const itemPathWithAlias = getPathWithoutExt(replaceWithAlias(alias.basename, itemPath, alias.name));
108
- const extname = path.extname(item);
109
- const itemWithoutExt = item.slice(0, -extname.length);
110
- const isDirectory2 = (await fs.stat(itemPath)).isDirectory();
111
- if (isDirectory2) {
112
- const childRoute = await walk(itemPath, rootDir, alias, entryName, isMainEntry, oldVersion);
113
- if (childRoute && !Array.isArray(childRoute)) {
114
- var _route_children;
115
- (_route_children = route.children) === null || _route_children === void 0 ? void 0 : _route_children.push(childRoute);
116
- }
117
- }
118
- if (extname && (!JS_EXTENSIONS.includes(extname) || !conventionNames.includes(itemWithoutExt))) {
119
- continue;
120
- }
121
- if (itemWithoutExt === NESTED_ROUTE.LAYOUT_LOADER_FILE) {
122
- if (!route.loader) {
123
- route.loader = itemPathWithAlias;
124
- }
125
- }
126
- if (itemWithoutExt === NESTED_ROUTE.LAYOUT_CLIENT_LOADER) {
127
- route.clientData = itemPathWithAlias;
128
- }
129
- if (itemWithoutExt === NESTED_ROUTE.LAYOUT_DATA_FILE) {
130
- route.data = itemPathWithAlias;
131
- if (await hasAction(itemPath)) {
132
- route.action = itemPathWithAlias;
133
- }
134
- }
135
- if (itemWithoutExt === NESTED_ROUTE.LAYOUT_CONFIG_FILE) {
136
- if (!route.config) {
137
- route.config = itemPathWithAlias;
138
- }
139
- }
140
- if (itemWithoutExt === NESTED_ROUTE.LAYOUT_FILE) {
141
- route._component = itemPathWithAlias;
142
- }
143
- if (itemWithoutExt === NESTED_ROUTE.PAGE_LOADER_FILE) {
144
- pageLoaderFile = itemPathWithAlias;
145
- }
146
- if (itemWithoutExt === NESTED_ROUTE.PAGE_CLIENT_LOADER) {
147
- pageClientData = itemPathWithAlias;
148
- }
149
- if (itemWithoutExt === NESTED_ROUTE.PAGE_DATA_FILE) {
150
- pageData = itemPathWithAlias;
151
- if (await hasAction(itemPath)) {
152
- pageAction = itemPathWithAlias;
153
- }
154
- }
155
- if (itemWithoutExt === NESTED_ROUTE.PAGE_CONFIG_FILE) {
156
- pageConfigFile = itemPathWithAlias;
157
- }
158
- if (itemWithoutExt === NESTED_ROUTE.PAGE_FILE) {
159
- var _route_children1;
160
- pageRoute = createIndexRoute({
161
- _component: itemPathWithAlias
162
- }, rootDir, itemPath, entryName, isMainEntry);
163
- if (pageLoaderFile) {
164
- pageRoute.loader = pageLoaderFile;
165
- }
166
- if (pageConfigFile) {
167
- pageRoute.config = pageConfigFile;
168
- }
169
- if (pageData) {
170
- pageRoute.data = pageData;
171
- }
172
- if (pageClientData) {
173
- pageRoute.clientData = pageClientData;
174
- }
175
- if (pageAction) {
176
- pageRoute.action = pageAction;
177
- }
178
- (_route_children1 = route.children) === null || _route_children1 === void 0 ? void 0 : _route_children1.unshift(pageRoute);
179
- }
180
- if (itemWithoutExt === NESTED_ROUTE.SPLATE_LOADER_FILE) {
181
- splatLoaderFile = itemPathWithAlias;
182
- }
183
- if (itemWithoutExt === NESTED_ROUTE.SPLATE_CLIENT_DATA) {
184
- splatClientData = itemPathWithAlias;
185
- }
186
- if (itemWithoutExt === NESTED_ROUTE.SPLATE_CONFIG_FILE) {
187
- if (!route.config) {
188
- splatConfigFile = replaceWithAlias(alias.basename, itemPath, alias.name);
189
- }
190
- }
191
- if (itemWithoutExt === NESTED_ROUTE.SPLATE_DATA_FILE) {
192
- splatData = itemPathWithAlias;
193
- if (await hasAction(itemPath)) {
194
- splatAction = itemPathWithAlias;
195
- }
196
- }
197
- if (itemWithoutExt === NESTED_ROUTE.SPLATE_FILE) {
198
- var _route_children2;
199
- splatRoute = createRoute({
200
- _component: itemPathWithAlias,
201
- path: "*"
202
- }, rootDir, itemPath, entryName, isMainEntry);
203
- if (splatLoaderFile) {
204
- splatRoute.loader = splatLoaderFile;
205
- }
206
- if (splatClientData) {
207
- splatRoute.clientData = splatClientData;
208
- }
209
- if (splatData) {
210
- splatRoute.data = splatData;
211
- }
212
- if (splatConfigFile) {
213
- splatRoute.config = splatConfigFile;
214
- }
215
- if (splatAction) {
216
- splatRoute.action = splatAction;
217
- }
218
- (_route_children2 = route.children) === null || _route_children2 === void 0 ? void 0 : _route_children2.push(splatRoute);
219
- }
220
- if (itemWithoutExt === NESTED_ROUTE.LOADING_FILE) {
221
- route.loading = itemPathWithAlias;
222
- }
223
- if (itemWithoutExt === NESTED_ROUTE.ERROR_FILE) {
224
- route.error = itemPathWithAlias;
225
- }
226
- }
227
- let finalRoute = createRoute(route, rootDir, path.join(dirname, `${NESTED_ROUTE.LAYOUT_FILE}.ts`), entryName, isMainEntry);
228
- if (isPathlessLayout) {
229
- delete finalRoute.path;
230
- }
231
- const childRoutes = finalRoute.children = (_finalRoute_children = finalRoute.children) === null || _finalRoute_children === void 0 ? void 0 : _finalRoute_children.filter((childRoute) => childRoute);
232
- if (childRoutes && childRoutes.length === 0 && !finalRoute.index && !finalRoute._component) {
233
- return null;
234
- }
235
- if (childRoutes && childRoutes.length === 1 && !finalRoute._component) {
236
- const childRoute = childRoutes[0];
237
- if (childRoute.path === "*") {
238
- const path2 = `${finalRoute.path || ""}/${childRoute.path || ""}`;
239
- finalRoute = {
240
- ...childRoute,
241
- path: path2
242
- };
243
- }
244
- }
245
- if (isRoot && !finalRoute._component) {
246
- throw new Error("The root layout component is required, make sure the routes/layout.tsx file exists.");
247
- }
248
- if (isRoot && !oldVersion) {
249
- const optimizedRoutes = optimizeRoute(finalRoute);
250
- return optimizedRoutes;
251
- }
252
- return finalRoute;
253
- };
254
- export {
255
- getRouteId,
256
- optimizeRoute,
257
- walk
258
- };
@@ -1,452 +0,0 @@
1
- import path from "path";
2
- import { fs, findExists, formatImportPath, getEntryOptions, isSSGEntry, slash } from "@modern-js/utils";
3
- import { ROUTE_MODULES } from "@modern-js/utils/universal/constants";
4
- import { APP_CONFIG_NAME, APP_INIT_EXPORTED, TEMP_LOADERS_DIR } from "../constants";
5
- import { getPathWithoutExt, getServerLoadersFile, parseModule, replaceWithAlias } from "./utils";
6
- const routesForServer = ({ routesForServerLoaderMatches }) => {
7
- const loaders = [];
8
- const actions = [];
9
- const loadersMap = {};
10
- const traverseRouteTree = (route) => {
11
- let children;
12
- if ("children" in route && route.children) {
13
- var _route_children;
14
- children = route === null || route === void 0 ? void 0 : (_route_children = route.children) === null || _route_children === void 0 ? void 0 : _route_children.map(traverseRouteTree);
15
- }
16
- let loader;
17
- let action;
18
- if (route.type === "nested") {
19
- if (route.loader || route.data) {
20
- loaders.push(route.loader);
21
- const loaderId = loaders.length - 1;
22
- loader = `loader_${loaderId}`;
23
- const inline = Boolean(route.data);
24
- loadersMap[loader] = {
25
- loaderId,
26
- routeId: route.id,
27
- filePath: route.data || route.loader,
28
- clientData: Boolean(route.clientData),
29
- route,
30
- inline
31
- };
32
- if (route.action) {
33
- actions.push(route.action);
34
- action = `action_${loaders.length - 1}`;
35
- }
36
- }
37
- }
38
- const finalRoute = {
39
- ...route,
40
- loader,
41
- action,
42
- children
43
- };
44
- return finalRoute;
45
- };
46
- let routesCode = `
47
- export const routes = [
48
- `;
49
- for (const route of routesForServerLoaderMatches) {
50
- if ("type" in route) {
51
- const keywords = [
52
- "loader",
53
- "action"
54
- ];
55
- const regs = keywords.map(createMatchReg);
56
- const newRoute = traverseRouteTree(route);
57
- const routeStr = JSON.stringify(newRoute, null, 2);
58
- routesCode += regs.reduce((acc, reg) => acc.replace(reg, "$1$2"), routeStr).replace(/\\"/g, '"');
59
- } else {
60
- routesCode += `${JSON.stringify(route, null, 2)}`;
61
- }
62
- }
63
- routesCode += `
64
- ];`;
65
- let importLoadersCode = "";
66
- for (const [key, loaderInfo] of Object.entries(loadersMap)) {
67
- if (loaderInfo.inline) {
68
- const { route } = loaderInfo;
69
- if (route.action) {
70
- importLoadersCode += `import { loader as ${key}, action as action_${loaderInfo.loaderId} } from "${slash(loaderInfo.filePath)}";
71
- `;
72
- } else {
73
- importLoadersCode += `import { loader as ${key} } from "${slash(loaderInfo.filePath)}";
74
- `;
75
- }
76
- } else {
77
- importLoadersCode += `import ${key} from "${slash(loaderInfo.filePath)}";
78
- `;
79
- }
80
- }
81
- return `
82
- ${importLoadersCode}
83
- ${routesCode}
84
- `;
85
- };
86
- const createMatchReg = (keyword) => new RegExp(`("${keyword}":\\s)"([^
87
- ]+)"`, "g");
88
- const fileSystemRoutes = async ({ metaName, routes, ssrMode, nestedRoutesEntry, entryName, internalDirectory, splitRouteChunks = true, isRscClient = false }) => {
89
- const components = [];
90
- const loadings = [];
91
- const errors = [];
92
- const loaders = [];
93
- const loadersMap = {};
94
- const configs = [];
95
- const configsMap = {};
96
- const loadersMapFile = path.join(internalDirectory, entryName, TEMP_LOADERS_DIR, "map.json");
97
- const importLazyCode = `
98
- import { lazy } from "react";
99
- import loadable, { lazy as loadableLazy } from "@${metaName}/runtime/loadable"
100
- `;
101
- let rootLayoutCode = ``;
102
- const getDataLoaderPath = ({ loaderId, clientData, action, inline, routeId, inValidSSRRoute }) => {
103
- if (!ssrMode) {
104
- return "";
105
- }
106
- const clientDataStr = clientData ? `&clientData=${clientData}` : "";
107
- const retain = inValidSSRRoute !== null && inValidSSRRoute !== void 0 ? inValidSSRRoute : false;
108
- if (nestedRoutesEntry) {
109
- return `?loaderId=${loaderId}${clientDataStr}&action=${action ? slash(action) : action}&inline=${inline}&routeId=${routeId}&retain=${retain}`;
110
- }
111
- return "";
112
- };
113
- const createLazyImport = ({ componentPath, routeId, webpackChunkName, eager }) => {
114
- const importOptions = webpackChunkName ? `/* webpackChunkName: "${routeId}" */ ` : eager ? `/* webpackMode: "eager" */ ` : "";
115
- return `() => import(${importOptions}'${componentPath}').then(routeModule => handleRouteModule(routeModule, "${routeId}")).catch(handleRouteModuleError)`;
116
- };
117
- const traverseRouteTree = (route, isRscClient2) => {
118
- let children;
119
- if ("children" in route && route.children) {
120
- var _route_children;
121
- children = route === null || route === void 0 ? void 0 : (_route_children = route.children) === null || _route_children === void 0 ? void 0 : _route_children.map((child) => traverseRouteTree(child, isRscClient2));
122
- }
123
- let loading;
124
- let error;
125
- let loader;
126
- let action;
127
- let config;
128
- let component = "";
129
- let lazyImport = null;
130
- if (route.type === "nested") {
131
- if (route.loading) {
132
- loadings.push(route.loading);
133
- loading = `loading_${loadings.length - 1}`;
134
- }
135
- if (route.error) {
136
- errors.push(route.error);
137
- error = `error_${errors.length - 1}`;
138
- }
139
- if (route.loader || route.data) {
140
- loaders.push(route.loader);
141
- const loaderId = loaders.length - 1;
142
- loader = `loader_${loaderId}`;
143
- const inline = Boolean(route.data);
144
- loadersMap[loader] = {
145
- loaderId,
146
- routeId: route.id,
147
- inValidSSRRoute: route.inValidSSRRoute,
148
- filePath: route.data || route.loader,
149
- clientData: Boolean(route.clientData),
150
- route,
151
- inline
152
- };
153
- loader = `loader_${loaderId}`;
154
- if (route.action) {
155
- action = `action_${loaderId}`;
156
- }
157
- }
158
- if (typeof route.config === "string") {
159
- configs.push(route.config);
160
- const configId = configs.length - 1;
161
- config = `config_${configId}`;
162
- configsMap[config] = route.config;
163
- }
164
- if (route._component) {
165
- if (route.isRoot) {
166
- lazyImport = createLazyImport({
167
- componentPath: route._component,
168
- routeId: route.id
169
- });
170
- rootLayoutCode = `import RootLayout from '${route._component}'`;
171
- component = "RootLayout";
172
- } else if (splitRouteChunks) {
173
- lazyImport = createLazyImport({
174
- componentPath: route._component,
175
- routeId: route.id,
176
- webpackChunkName: true
177
- });
178
- component = ssrMode === "string" ? `loadable(${lazyImport})` : `lazy(${lazyImport})`;
179
- } else {
180
- if (ssrMode === "string") {
181
- components.push(route._component);
182
- component = `component_${components.length - 1}`;
183
- } else {
184
- lazyImport = createLazyImport({
185
- componentPath: route._component,
186
- routeId: route.id,
187
- eager: true
188
- });
189
- component = `lazy(${lazyImport})`;
190
- }
191
- }
192
- }
193
- } else if (route._component) {
194
- if (splitRouteChunks) {
195
- lazyImport = `() => import('${route._component}')`;
196
- component = `loadable(${lazyImport})`;
197
- } else {
198
- components.push(route._component);
199
- component = `component_${components.length - 1}`;
200
- }
201
- }
202
- const finalRoute = {
203
- ...route,
204
- loading,
205
- loader,
206
- action,
207
- config,
208
- error,
209
- children
210
- };
211
- if (!isRscClient2) {
212
- finalRoute.lazyImport = lazyImport;
213
- }
214
- if (route._component && !isRscClient2) {
215
- finalRoute.component = component;
216
- }
217
- if (route.type === "nested" && route._component && (route.loader || route.data)) {
218
- finalRoute.shouldRevalidate = `createShouldRevalidate("${route.id}")`;
219
- }
220
- return finalRoute;
221
- };
222
- let routeComponentsCode = `
223
- export const routes = [
224
- `;
225
- for (const route of routes) {
226
- if ("type" in route) {
227
- const newRoute = traverseRouteTree(route, isRscClient);
228
- const routeStr = JSON.stringify(newRoute, null, 2);
229
- const keywords = [
230
- "component",
231
- "lazyImport",
232
- "shouldRevalidate",
233
- "loader",
234
- "action",
235
- "loading",
236
- "error",
237
- "config"
238
- ];
239
- const regs = keywords.map(createMatchReg);
240
- const newRouteStr = regs.reduce((acc, reg) => acc.replace(reg, "$1$2"), routeStr).replace(/"(RootLayout)"/g, "$1").replace(/\\"/g, '"');
241
- routeComponentsCode += `${newRouteStr},`;
242
- } else {
243
- const component = `loadable(() => import('${route._component}'))`;
244
- const finalRoute = {
245
- ...route,
246
- component
247
- };
248
- const keywords = [
249
- "component",
250
- "lazyImport"
251
- ];
252
- const routeStr = JSON.stringify(finalRoute, null, 2);
253
- const regs = keywords.map(createMatchReg);
254
- const newRouteStr = regs.reduce((acc, reg) => acc.replace(reg, "$1$2"), routeStr).replace(/\\"/g, '"');
255
- routeComponentsCode += `${newRouteStr},`;
256
- }
257
- }
258
- routeComponentsCode += `
259
- ];`;
260
- const importLoadingCode = loadings.map((loading, index) => {
261
- return `import loading_${index} from '${loading}';
262
- `;
263
- }).join("");
264
- const importComponentsCode = components.map((component, index) => {
265
- return `import component_${index} from '${component}';
266
- `;
267
- }).join("");
268
- const importErrorComponentsCode = errors.map((error, index) => {
269
- return `import error_${index} from '${error}';
270
- `;
271
- }).join("");
272
- let importLoadersCode = "";
273
- for (const [key, loaderInfo] of Object.entries(loadersMap)) {
274
- if (loaderInfo.inline) {
275
- const { route } = loaderInfo;
276
- if (route.action) {
277
- importLoadersCode += `import { loader as ${key}, action as action_${loaderInfo.loaderId} } from "${slash(loaderInfo.filePath)}${getDataLoaderPath({
278
- loaderId: key,
279
- clientData: loaderInfo.clientData,
280
- action: route.action,
281
- inline: loaderInfo.inline,
282
- routeId: loaderInfo.routeId,
283
- inValidSSRRoute: loaderInfo.inValidSSRRoute
284
- })}";
285
- `;
286
- } else {
287
- importLoadersCode += `import { loader as ${key} } from "${slash(loaderInfo.filePath)}${getDataLoaderPath({
288
- loaderId: key,
289
- clientData: loaderInfo.clientData,
290
- action: false,
291
- inline: loaderInfo.inline,
292
- routeId: route.id,
293
- inValidSSRRoute: loaderInfo.inValidSSRRoute
294
- })}";
295
- `;
296
- }
297
- } else {
298
- importLoadersCode += `import ${key} from "${slash(loaderInfo.filePath)}${getDataLoaderPath({
299
- loaderId: key,
300
- clientData: loaderInfo.clientData,
301
- action: false,
302
- inline: loaderInfo.inline,
303
- routeId: loaderInfo.routeId,
304
- inValidSSRRoute: loaderInfo.inValidSSRRoute
305
- })}";
306
- `;
307
- }
308
- }
309
- let importConfigsCode = "";
310
- for (const [key, configPath] of Object.entries(configsMap)) {
311
- importConfigsCode += `import * as ${key} from "${slash(configPath)}";
312
- `;
313
- }
314
- await fs.ensureFile(loadersMapFile);
315
- await fs.writeJSON(loadersMapFile, loadersMap);
316
- const importRuntimeRouterCode = `
317
- import { createShouldRevalidate, handleRouteModule, handleRouteModuleError} from '@${metaName}/runtime/router';
318
- `;
319
- const routeModulesCode = `
320
- if(typeof document !== 'undefined'){
321
- window.${ROUTE_MODULES} = {}
322
- }
323
- `;
324
- return `
325
- ${importLazyCode}
326
- ${!isRscClient ? importComponentsCode : ""}
327
- ${importRuntimeRouterCode}
328
- ${!isRscClient ? rootLayoutCode : ""}
329
- ${importLoadingCode}
330
- ${importErrorComponentsCode}
331
- ${importLoadersCode}
332
- ${importConfigsCode}
333
- ${routeModulesCode}
334
- ${routeComponentsCode}
335
- `;
336
- };
337
- function ssrLoaderCombinedModule(entrypoints, entrypoint, config, appContext) {
338
- const { entryName, isMainEntry } = entrypoint;
339
- const { packageName, internalDirectory } = appContext;
340
- const ssr = getEntryOptions(entryName, isMainEntry, config.server.ssr, config.server.ssrByEntries, packageName);
341
- const ssg = isSSGEntry(config, entryName, entrypoints);
342
- if (entrypoint.nestedRoutesEntry && (ssr || ssg)) {
343
- const serverLoaderRuntime = require.resolve("@modern-js/plugin-data-loader/runtime");
344
- const serverLoadersFile = getServerLoadersFile(internalDirectory, entryName);
345
- const combinedModule = `export * from "${slash(serverLoaderRuntime)}"; export * from "${slash(serverLoadersFile)}"`;
346
- if (!config.source.enableAsyncEntry) {
347
- return combinedModule;
348
- }
349
- return `
350
- async function loadModules() {
351
- const [moduleA, moduleB] = await Promise.all([
352
- import("${slash(serverLoaderRuntime)}"),
353
- import("${slash(serverLoadersFile)}")
354
- ]);
355
-
356
- return {
357
- ...moduleA,
358
- ...moduleB
359
- };
360
- }
361
-
362
- export { loadModules };
363
- `;
364
- }
365
- return null;
366
- }
367
- const runtimeGlobalContext = async ({ entryName, metaName, srcDirectory, nestedRoutesEntry, internalSrcAlias, globalApp, rscType = false }) => {
368
- const imports = [
369
- `import { setGlobalContext } from '@${metaName}/runtime/context';`
370
- ];
371
- if (nestedRoutesEntry) {
372
- const rootLayoutPath = path.join(nestedRoutesEntry, "layout");
373
- const rootLayoutFile = findExists([
374
- ".js",
375
- ".ts",
376
- ".jsx",
377
- ".tsx"
378
- ].map((ext) => `${rootLayoutPath}${ext}`));
379
- if (rootLayoutFile) {
380
- const rootLayoutBuffer = await fs.readFile(rootLayoutFile);
381
- const rootLayout = rootLayoutBuffer.toString();
382
- const [, moduleExports] = await parseModule({
383
- source: rootLayout.toString(),
384
- filename: rootLayoutFile
385
- });
386
- const hasAppConfig = moduleExports.some((e) => e.n === APP_CONFIG_NAME);
387
- const hasAppInit = moduleExports.some((e) => e.n === APP_INIT_EXPORTED);
388
- const layoutPath = formatImportPath(getPathWithoutExt(replaceWithAlias(srcDirectory, rootLayoutFile, internalSrcAlias)));
389
- if (hasAppConfig) {
390
- imports.push(`import { config as appConfig } from '${layoutPath}';`);
391
- } else {
392
- imports.push(`let appConfig;`);
393
- }
394
- if (hasAppInit) {
395
- imports.push(`import { init as appInit } from '${layoutPath}';`);
396
- } else {
397
- imports.push(`let appInit;`);
398
- }
399
- } else {
400
- imports.push(`let appConfig;`);
401
- imports.push(`let appInit;`);
402
- }
403
- } else {
404
- imports.push(`let appConfig;`);
405
- imports.push(`let appInit;`);
406
- }
407
- if (globalApp) {
408
- imports.push(`import layoutApp from '${formatImportPath(globalApp.replace(srcDirectory, internalSrcAlias))}';`);
409
- } else {
410
- imports.push(`let layoutApp;`);
411
- }
412
- const isClient = rscType === "client";
413
- const enableRsc = Boolean(rscType);
414
- if (isClient) {
415
- return `${imports.join("\n")}
416
-
417
- import { routes } from './routes';
418
-
419
- const entryName = '${entryName}';
420
- setGlobalContext({
421
- entryName,
422
- layoutApp,
423
- routes,
424
- appInit,
425
- appConfig,
426
- isRscClient: true,
427
- enableRsc: true,
428
- });
429
- `;
430
- } else {
431
- return `${imports.join("\n")}
432
-
433
- import { routes } from './routes';
434
-
435
- const entryName = '${entryName}';
436
- setGlobalContext({
437
- entryName,
438
- layoutApp,
439
- routes,
440
- appInit,
441
- appConfig,
442
- enableRsc: ${enableRsc},
443
- });
444
- `;
445
- }
446
- };
447
- export {
448
- fileSystemRoutes,
449
- routesForServer,
450
- runtimeGlobalContext,
451
- ssrLoaderCombinedModule
452
- };