@modern-js/app-tools 2.35.1 → 2.36.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 (275) hide show
  1. package/dist/cjs/analyze/constants.js +68 -75
  2. package/dist/cjs/analyze/generateCode.js +74 -57
  3. package/dist/cjs/analyze/getBundleEntry.js +53 -27
  4. package/dist/cjs/analyze/getClientRoutes/getRoutes.js +63 -37
  5. package/dist/cjs/analyze/getClientRoutes/getRoutesLegacy.js +63 -37
  6. package/dist/cjs/analyze/getClientRoutes/index.js +27 -17
  7. package/dist/cjs/analyze/getClientRoutes/utils.js +47 -30
  8. package/dist/cjs/analyze/getFileSystemEntry.js +58 -32
  9. package/dist/cjs/analyze/getHtmlTemplate.js +45 -20
  10. package/dist/cjs/analyze/getServerRoutes.js +55 -29
  11. package/dist/cjs/analyze/index.js +81 -61
  12. package/dist/cjs/analyze/isDefaultExportFunction.js +42 -17
  13. package/dist/cjs/analyze/makeLegalIdentifier.js +24 -7
  14. package/dist/cjs/analyze/nestedRoutes.js +111 -65
  15. package/dist/cjs/analyze/templates.js +135 -53
  16. package/dist/cjs/analyze/utils.js +101 -67
  17. package/dist/cjs/builder/builder-rspack/adapterCopy.js +60 -30
  18. package/dist/cjs/builder/builder-rspack/index.js +29 -12
  19. package/dist/cjs/builder/builder-webpack/adapterModern.js +26 -11
  20. package/dist/cjs/builder/builder-webpack/createCopyPattern.js +30 -20
  21. package/dist/cjs/builder/builder-webpack/index.js +40 -14
  22. package/dist/cjs/builder/generator/createBuilderOptions.js +24 -7
  23. package/dist/cjs/builder/generator/createBuilderProviderConfig.js +26 -9
  24. package/dist/cjs/builder/generator/getBuilderTargets.js +27 -10
  25. package/dist/cjs/builder/generator/index.js +44 -18
  26. package/dist/cjs/builder/index.js +39 -13
  27. package/dist/cjs/builder/shared/builderPlugins/adapterBasic.js +36 -7
  28. package/dist/cjs/builder/shared/builderPlugins/adapterHtml.js +36 -19
  29. package/dist/cjs/builder/shared/builderPlugins/adapterSSR.js +47 -21
  30. package/dist/cjs/builder/shared/builderPlugins/index.js +24 -6
  31. package/dist/cjs/builder/shared/bundlerPlugins/HtmlAsyncChunkPlugin.js +27 -10
  32. package/dist/cjs/builder/shared/bundlerPlugins/HtmlBottomTemplate.js +29 -12
  33. package/dist/cjs/builder/shared/bundlerPlugins/RouterPlugin.js +42 -25
  34. package/dist/cjs/builder/shared/bundlerPlugins/index.js +24 -6
  35. package/dist/cjs/builder/shared/createCopyInfo.js +38 -12
  36. package/dist/cjs/builder/shared/index.js +24 -6
  37. package/dist/cjs/builder/shared/loaders/serverModuleLoader.js +21 -8
  38. package/dist/cjs/builder/shared/types.js +15 -3
  39. package/dist/cjs/commands/build.js +33 -16
  40. package/dist/cjs/commands/deploy.js +24 -7
  41. package/dist/cjs/commands/dev.js +40 -23
  42. package/dist/cjs/commands/index.js +24 -6
  43. package/dist/cjs/commands/inspect.js +26 -9
  44. package/dist/cjs/commands/serve.js +48 -22
  45. package/dist/cjs/config/default.js +33 -23
  46. package/dist/cjs/config/index.js +24 -6
  47. package/dist/cjs/config/initialize/index.js +27 -10
  48. package/dist/cjs/config/initialize/inits.js +40 -37
  49. package/dist/cjs/config/legacy/createHtmlConfig.js +24 -7
  50. package/dist/cjs/config/legacy/createOutputConfig.js +24 -7
  51. package/dist/cjs/config/legacy/createSourceConfig.js +24 -7
  52. package/dist/cjs/config/legacy/createToolsConfig.js +24 -7
  53. package/dist/cjs/config/legacy/index.js +34 -23
  54. package/dist/cjs/defineConfig.js +25 -15
  55. package/dist/cjs/exports/server.js +25 -8
  56. package/dist/cjs/hooks.js +50 -33
  57. package/dist/cjs/index.js +95 -80
  58. package/dist/cjs/initialize/index.js +30 -17
  59. package/dist/cjs/locale/en.js +24 -7
  60. package/dist/cjs/locale/index.js +31 -21
  61. package/dist/cjs/locale/zh.js +24 -7
  62. package/dist/cjs/schema/Schema.js +28 -11
  63. package/dist/cjs/schema/index.js +40 -21
  64. package/dist/cjs/schema/legacy.js +30 -17
  65. package/dist/cjs/types/config/deploy.js +15 -3
  66. package/dist/cjs/types/config/dev.js +15 -3
  67. package/dist/cjs/types/config/experiments.js +15 -3
  68. package/dist/cjs/types/config/html.js +15 -3
  69. package/dist/cjs/types/config/index.js +20 -4
  70. package/dist/cjs/types/config/output.js +15 -3
  71. package/dist/cjs/types/config/performance.js +15 -3
  72. package/dist/cjs/types/config/security.js +15 -3
  73. package/dist/cjs/types/config/source.js +15 -3
  74. package/dist/cjs/types/config/testing.js +15 -3
  75. package/dist/cjs/types/config/tools.js +15 -3
  76. package/dist/cjs/types/hooks.js +15 -3
  77. package/dist/cjs/types/index.js +24 -6
  78. package/dist/cjs/types/legacyConfig/deploy.js +15 -3
  79. package/dist/cjs/types/legacyConfig/dev.js +15 -3
  80. package/dist/cjs/types/legacyConfig/index.js +15 -3
  81. package/dist/cjs/types/legacyConfig/output.js +15 -3
  82. package/dist/cjs/types/legacyConfig/source.js +15 -3
  83. package/dist/cjs/types/legacyConfig/testing.js +15 -3
  84. package/dist/cjs/types/legacyConfig/tools.js +15 -3
  85. package/dist/cjs/types/utils.js +15 -3
  86. package/dist/cjs/utils/config.js +50 -33
  87. package/dist/cjs/utils/createServer.js +43 -26
  88. package/dist/cjs/utils/env.js +26 -9
  89. package/dist/cjs/utils/generateWatchFiles.js +41 -22
  90. package/dist/cjs/utils/getSelectedEntries.js +30 -13
  91. package/dist/cjs/utils/getServerInternalPlugins.js +24 -7
  92. package/dist/cjs/utils/printInstructions.js +27 -10
  93. package/dist/cjs/utils/restart.js +30 -13
  94. package/dist/cjs/utils/routes.js +37 -11
  95. package/dist/cjs/utils/types.js +15 -3
  96. package/dist/esm/analyze/constants.js +48 -22
  97. package/dist/esm/analyze/generateCode.js +38 -33
  98. package/dist/esm/analyze/getBundleEntry.js +4 -1
  99. package/dist/esm/analyze/getClientRoutes/getRoutes.js +12 -9
  100. package/dist/esm/analyze/getClientRoutes/getRoutesLegacy.js +12 -9
  101. package/dist/esm/analyze/getClientRoutes/index.js +6 -2
  102. package/dist/esm/analyze/getClientRoutes/utils.js +9 -4
  103. package/dist/esm/analyze/getFileSystemEntry.js +10 -7
  104. package/dist/esm/analyze/getHtmlTemplate.js +7 -4
  105. package/dist/esm/analyze/getServerRoutes.js +8 -5
  106. package/dist/esm/analyze/index.js +31 -30
  107. package/dist/esm/analyze/isDefaultExportFunction.js +4 -1
  108. package/dist/esm/analyze/makeLegalIdentifier.js +4 -1
  109. package/dist/esm/analyze/nestedRoutes.js +93 -30
  110. package/dist/esm/analyze/templates.js +121 -30
  111. package/dist/esm/analyze/utils.js +103 -18
  112. package/dist/esm/builder/builder-rspack/adapterCopy.js +16 -9
  113. package/dist/esm/builder/builder-rspack/index.js +4 -1
  114. package/dist/esm/builder/builder-webpack/adapterModern.js +4 -3
  115. package/dist/esm/builder/builder-webpack/createCopyPattern.js +8 -4
  116. package/dist/esm/builder/builder-webpack/index.js +4 -1
  117. package/dist/esm/builder/generator/createBuilderOptions.js +5 -2
  118. package/dist/esm/builder/generator/createBuilderProviderConfig.js +4 -1
  119. package/dist/esm/builder/generator/getBuilderTargets.js +4 -1
  120. package/dist/esm/builder/generator/index.js +5 -2
  121. package/dist/esm/builder/index.js +4 -1
  122. package/dist/esm/builder/shared/builderPlugins/adapterBasic.js +6 -1
  123. package/dist/esm/builder/shared/builderPlugins/adapterHtml.js +11 -8
  124. package/dist/esm/builder/shared/builderPlugins/adapterSSR.js +10 -7
  125. package/dist/esm/builder/shared/bundlerPlugins/HtmlAsyncChunkPlugin.js +4 -1
  126. package/dist/esm/builder/shared/bundlerPlugins/HtmlBottomTemplate.js +4 -1
  127. package/dist/esm/builder/shared/bundlerPlugins/RouterPlugin.js +7 -4
  128. package/dist/esm/builder/shared/createCopyInfo.js +7 -4
  129. package/dist/esm/builder/shared/loaders/serverModuleLoader.js +4 -1
  130. package/dist/esm/builder/shared/types.js +0 -1
  131. package/dist/esm/commands/build.js +6 -3
  132. package/dist/esm/commands/deploy.js +4 -1
  133. package/dist/esm/commands/dev.js +12 -9
  134. package/dist/esm/commands/inspect.js +4 -1
  135. package/dist/esm/commands/serve.js +7 -4
  136. package/dist/esm/config/default.js +12 -8
  137. package/dist/esm/config/initialize/index.js +4 -1
  138. package/dist/esm/config/initialize/inits.js +8 -19
  139. package/dist/esm/config/legacy/createHtmlConfig.js +17 -14
  140. package/dist/esm/config/legacy/createOutputConfig.js +19 -16
  141. package/dist/esm/config/legacy/createSourceConfig.js +14 -11
  142. package/dist/esm/config/legacy/createToolsConfig.js +18 -15
  143. package/dist/esm/config/legacy/index.js +21 -16
  144. package/dist/esm/defineConfig.js +6 -2
  145. package/dist/esm/exports/server.js +4 -1
  146. package/dist/esm/hooks.js +4 -1
  147. package/dist/esm/index.js +19 -11
  148. package/dist/esm/initialize/index.js +9 -6
  149. package/dist/esm/locale/en.js +4 -1
  150. package/dist/esm/locale/index.js +4 -1
  151. package/dist/esm/locale/zh.js +4 -1
  152. package/dist/esm/schema/Schema.js +6 -3
  153. package/dist/esm/schema/index.js +5 -2
  154. package/dist/esm/schema/legacy.js +4 -1
  155. package/dist/esm/types/config/deploy.js +0 -1
  156. package/dist/esm/types/config/dev.js +0 -1
  157. package/dist/esm/types/config/experiments.js +0 -1
  158. package/dist/esm/types/config/html.js +0 -1
  159. package/dist/esm/types/config/output.js +0 -1
  160. package/dist/esm/types/config/performance.js +0 -1
  161. package/dist/esm/types/config/security.js +0 -1
  162. package/dist/esm/types/config/source.js +0 -1
  163. package/dist/esm/types/config/testing.js +0 -1
  164. package/dist/esm/types/config/tools.js +0 -1
  165. package/dist/esm/types/hooks.js +0 -1
  166. package/dist/esm/types/legacyConfig/deploy.js +0 -1
  167. package/dist/esm/types/legacyConfig/dev.js +0 -1
  168. package/dist/esm/types/legacyConfig/index.js +0 -1
  169. package/dist/esm/types/legacyConfig/output.js +0 -1
  170. package/dist/esm/types/legacyConfig/source.js +0 -1
  171. package/dist/esm/types/legacyConfig/testing.js +0 -1
  172. package/dist/esm/types/legacyConfig/tools.js +0 -1
  173. package/dist/esm/types/utils.js +0 -1
  174. package/dist/esm/utils/config.js +12 -6
  175. package/dist/esm/utils/createServer.js +12 -5
  176. package/dist/esm/utils/env.js +4 -1
  177. package/dist/esm/utils/generateWatchFiles.js +6 -2
  178. package/dist/esm/utils/getSelectedEntries.js +4 -1
  179. package/dist/esm/utils/getServerInternalPlugins.js +5 -2
  180. package/dist/esm/utils/printInstructions.js +4 -1
  181. package/dist/esm/utils/restart.js +4 -1
  182. package/dist/esm/utils/routes.js +3 -1
  183. package/dist/esm/utils/types.js +0 -1
  184. package/dist/esm-node/analyze/constants.js +48 -22
  185. package/dist/esm-node/analyze/generateCode.js +8 -3
  186. package/dist/esm-node/analyze/getBundleEntry.js +4 -1
  187. package/dist/esm-node/analyze/getClientRoutes/getRoutes.js +4 -1
  188. package/dist/esm-node/analyze/getClientRoutes/getRoutesLegacy.js +4 -1
  189. package/dist/esm-node/analyze/getClientRoutes/index.js +6 -2
  190. package/dist/esm-node/analyze/getClientRoutes/utils.js +9 -4
  191. package/dist/esm-node/analyze/getFileSystemEntry.js +4 -1
  192. package/dist/esm-node/analyze/getHtmlTemplate.js +4 -1
  193. package/dist/esm-node/analyze/getServerRoutes.js +4 -1
  194. package/dist/esm-node/analyze/index.js +9 -8
  195. package/dist/esm-node/analyze/isDefaultExportFunction.js +4 -1
  196. package/dist/esm-node/analyze/makeLegalIdentifier.js +4 -1
  197. package/dist/esm-node/analyze/nestedRoutes.js +42 -9
  198. package/dist/esm-node/analyze/templates.js +93 -18
  199. package/dist/esm-node/analyze/utils.js +48 -16
  200. package/dist/esm-node/builder/builder-rspack/adapterCopy.js +18 -11
  201. package/dist/esm-node/builder/builder-rspack/index.js +4 -1
  202. package/dist/esm-node/builder/builder-webpack/adapterModern.js +4 -3
  203. package/dist/esm-node/builder/builder-webpack/createCopyPattern.js +6 -2
  204. package/dist/esm-node/builder/builder-webpack/index.js +4 -1
  205. package/dist/esm-node/builder/generator/createBuilderOptions.js +4 -1
  206. package/dist/esm-node/builder/generator/createBuilderProviderConfig.js +4 -1
  207. package/dist/esm-node/builder/generator/getBuilderTargets.js +4 -1
  208. package/dist/esm-node/builder/generator/index.js +4 -1
  209. package/dist/esm-node/builder/index.js +4 -1
  210. package/dist/esm-node/builder/shared/builderPlugins/adapterBasic.js +6 -1
  211. package/dist/esm-node/builder/shared/builderPlugins/adapterHtml.js +4 -1
  212. package/dist/esm-node/builder/shared/builderPlugins/adapterSSR.js +4 -1
  213. package/dist/esm-node/builder/shared/bundlerPlugins/HtmlAsyncChunkPlugin.js +4 -1
  214. package/dist/esm-node/builder/shared/bundlerPlugins/HtmlBottomTemplate.js +4 -1
  215. package/dist/esm-node/builder/shared/bundlerPlugins/RouterPlugin.js +4 -1
  216. package/dist/esm-node/builder/shared/createCopyInfo.js +4 -1
  217. package/dist/esm-node/builder/shared/loaders/serverModuleLoader.js +4 -1
  218. package/dist/esm-node/builder/shared/types.js +0 -1
  219. package/dist/esm-node/commands/build.js +4 -1
  220. package/dist/esm-node/commands/deploy.js +4 -1
  221. package/dist/esm-node/commands/dev.js +4 -1
  222. package/dist/esm-node/commands/inspect.js +4 -1
  223. package/dist/esm-node/commands/serve.js +4 -1
  224. package/dist/esm-node/config/default.js +6 -2
  225. package/dist/esm-node/config/initialize/index.js +4 -1
  226. package/dist/esm-node/config/initialize/inits.js +8 -20
  227. package/dist/esm-node/config/legacy/createHtmlConfig.js +4 -1
  228. package/dist/esm-node/config/legacy/createOutputConfig.js +4 -1
  229. package/dist/esm-node/config/legacy/createSourceConfig.js +4 -1
  230. package/dist/esm-node/config/legacy/createToolsConfig.js +4 -1
  231. package/dist/esm-node/config/legacy/index.js +7 -2
  232. package/dist/esm-node/defineConfig.js +6 -2
  233. package/dist/esm-node/exports/server.js +4 -1
  234. package/dist/esm-node/hooks.js +4 -1
  235. package/dist/esm-node/index.js +14 -6
  236. package/dist/esm-node/initialize/index.js +4 -1
  237. package/dist/esm-node/locale/en.js +4 -1
  238. package/dist/esm-node/locale/index.js +4 -1
  239. package/dist/esm-node/locale/zh.js +4 -1
  240. package/dist/esm-node/schema/Schema.js +4 -1
  241. package/dist/esm-node/schema/index.js +5 -2
  242. package/dist/esm-node/schema/legacy.js +4 -1
  243. package/dist/esm-node/types/config/deploy.js +0 -1
  244. package/dist/esm-node/types/config/dev.js +0 -1
  245. package/dist/esm-node/types/config/experiments.js +0 -1
  246. package/dist/esm-node/types/config/html.js +0 -1
  247. package/dist/esm-node/types/config/output.js +0 -1
  248. package/dist/esm-node/types/config/performance.js +0 -1
  249. package/dist/esm-node/types/config/security.js +0 -1
  250. package/dist/esm-node/types/config/source.js +0 -1
  251. package/dist/esm-node/types/config/testing.js +0 -1
  252. package/dist/esm-node/types/config/tools.js +0 -1
  253. package/dist/esm-node/types/hooks.js +0 -1
  254. package/dist/esm-node/types/legacyConfig/deploy.js +0 -1
  255. package/dist/esm-node/types/legacyConfig/dev.js +0 -1
  256. package/dist/esm-node/types/legacyConfig/index.js +0 -1
  257. package/dist/esm-node/types/legacyConfig/output.js +0 -1
  258. package/dist/esm-node/types/legacyConfig/source.js +0 -1
  259. package/dist/esm-node/types/legacyConfig/testing.js +0 -1
  260. package/dist/esm-node/types/legacyConfig/tools.js +0 -1
  261. package/dist/esm-node/types/utils.js +0 -1
  262. package/dist/esm-node/utils/config.js +10 -4
  263. package/dist/esm-node/utils/createServer.js +12 -5
  264. package/dist/esm-node/utils/env.js +4 -1
  265. package/dist/esm-node/utils/generateWatchFiles.js +6 -2
  266. package/dist/esm-node/utils/getSelectedEntries.js +4 -1
  267. package/dist/esm-node/utils/getServerInternalPlugins.js +4 -1
  268. package/dist/esm-node/utils/printInstructions.js +4 -1
  269. package/dist/esm-node/utils/restart.js +4 -1
  270. package/dist/esm-node/utils/routes.js +3 -1
  271. package/dist/esm-node/utils/types.js +0 -1
  272. package/dist/types/analyze/constants.d.ts +1 -0
  273. package/dist/types/analyze/utils.d.ts +2 -1
  274. package/dist/types/types/config/index.d.ts +3 -2
  275. package/package.json +24 -24
@@ -2,7 +2,7 @@ import path from "path";
2
2
  import { fs, getEntryOptions, isSSGEntry, slash } from "@modern-js/utils";
3
3
  import { APP_CONFIG_NAME, TEMP_LOADERS_DIR } from "./constants";
4
4
  import { getServerLoadersFile } from "./utils";
5
- export const index = ({ mountId, imports, renderFunction: renderFunction2, exportStatement }) => `
5
+ const index = ({ mountId, imports, renderFunction: renderFunction2, exportStatement }) => `
6
6
  const IS_BROWSER = typeof window !== 'undefined' && window.name !== 'nodejs';
7
7
  const IS_REACT18 = process.env.IS_REACT18 === 'true';
8
8
  const MOUNT_ID = '${mountId}';
@@ -21,7 +21,7 @@ AppWrapper = render();
21
21
 
22
22
  ${exportStatement};
23
23
  `;
24
- export const renderFunction = ({ plugins, customBootstrap, fileSystemRoutes: fileSystemRoutes2 }) => {
24
+ const renderFunction = ({ plugins, customBootstrap, fileSystemRoutes: fileSystemRoutes2 }) => {
25
25
  const bootstrap = "bootstrap(AppWrapper, MOUNT_ID, root, ReactDOM)";
26
26
  return `
27
27
  const finalAppConfig = {
@@ -48,7 +48,7 @@ export const renderFunction = ({ plugins, customBootstrap, fileSystemRoutes: fil
48
48
  return AppWrapper
49
49
  `;
50
50
  };
51
- export const html = (partials) => `
51
+ const html = (partials) => `
52
52
  <!DOCTYPE html>
53
53
  <html>
54
54
  <head>
@@ -71,8 +71,10 @@ export const html = (partials) => `
71
71
 
72
72
  </html>
73
73
  `;
74
- export const routesForServer = ({ routes }) => {
74
+ const routesForServer = ({ routes }) => {
75
75
  const loaders = [];
76
+ const actions = [];
77
+ const loadersMap = {};
76
78
  const traverseRouteTree = (route) => {
77
79
  let children;
78
80
  if ("children" in route && route.children) {
@@ -80,15 +82,31 @@ export const routesForServer = ({ routes }) => {
80
82
  children = route === null || route === void 0 ? void 0 : (_route_children = route.children) === null || _route_children === void 0 ? void 0 : _route_children.map(traverseRouteTree);
81
83
  }
82
84
  let loader;
85
+ let action;
83
86
  if (route.type === "nested") {
84
- if (route.loader) {
87
+ if (route.loader || route.data) {
85
88
  loaders.push(route.loader);
86
- loader = `loader_${loaders.length - 1}`;
89
+ const loaderId = loaders.length - 1;
90
+ loader = `loader_${loaderId}`;
91
+ const inline = Boolean(route.data);
92
+ loadersMap[loader] = {
93
+ loaderId,
94
+ routeId: route.id,
95
+ filePath: route.data || route.loader,
96
+ clientData: Boolean(route.clientData),
97
+ route,
98
+ inline
99
+ };
100
+ if (route.action) {
101
+ actions.push(route.action);
102
+ action = `action_${loaders.length - 1}`;
103
+ }
87
104
  }
88
105
  }
89
106
  const finalRoute = {
90
107
  ...route,
91
108
  loader,
109
+ action,
92
110
  children
93
111
  };
94
112
  return finalRoute;
@@ -98,8 +116,14 @@ export const routesForServer = ({ routes }) => {
98
116
  `;
99
117
  for (const route of routes) {
100
118
  if ("type" in route) {
119
+ const keywords = [
120
+ "loader",
121
+ "action"
122
+ ];
123
+ const regs = keywords.map(createMatchReg);
101
124
  const newRoute = traverseRouteTree(route);
102
- routesCode += `${JSON.stringify(newRoute, null, 2).replace(/"(loader_[^"]+)"/g, "$1")},`;
125
+ const routeStr = JSON.stringify(newRoute, null, 2);
126
+ routesCode += regs.reduce((acc, reg) => acc.replace(reg, "$1$2"), routeStr).replace(/\\"/g, '"');
103
127
  } else {
104
128
  routesCode += `${JSON.stringify(route, null, 2)}`;
105
129
  }
@@ -107,10 +131,20 @@ export const routesForServer = ({ routes }) => {
107
131
  routesCode += `
108
132
  ];`;
109
133
  let importLoadersCode = "";
110
- if (loaders.length > 0) {
111
- importLoadersCode = loaders.map((loader, index2) => {
112
- return `import loader_${index2} from "${slash(loader)}"`;
113
- }).join("\n");
134
+ for (const [key, loaderInfo] of Object.entries(loadersMap)) {
135
+ if (loaderInfo.inline) {
136
+ const { route } = loaderInfo;
137
+ if (route.action) {
138
+ importLoadersCode += `import { loader as ${key}, action as action_${loaderInfo.loaderId} } from "${slash(loaderInfo.filePath)}";
139
+ `;
140
+ } else {
141
+ importLoadersCode += `import { loader as ${key} } from "${slash(loaderInfo.filePath)}";
142
+ `;
143
+ }
144
+ } else {
145
+ importLoadersCode += `import ${key} from "${slash(loaderInfo.filePath)}";
146
+ `;
147
+ }
114
148
  }
115
149
  return `
116
150
  ${importLoadersCode}
@@ -118,7 +152,7 @@ export const routesForServer = ({ routes }) => {
118
152
  `;
119
153
  };
120
154
  const createMatchReg = (keyword) => new RegExp(`("${keyword}":\\s)"([^,]+)"`, "g");
121
- export const fileSystemRoutes = async ({ routes, ssrMode, nestedRoutesEntry, entryName, internalDirectory, splitRouteChunks = true }) => {
155
+ const fileSystemRoutes = async ({ routes, ssrMode, nestedRoutesEntry, entryName, internalDirectory, splitRouteChunks = true }) => {
122
156
  const components = [];
123
157
  const loadings = [];
124
158
  const errors = [];
@@ -132,13 +166,13 @@ export const fileSystemRoutes = async ({ routes, ssrMode, nestedRoutesEntry, ent
132
166
  import loadable, { lazy as loadableLazy } from "@modern-js/runtime/loadable"
133
167
  `;
134
168
  let rootLayoutCode = ``;
135
- const getDataLoaderPath = (loaderId, clientData) => {
169
+ const getDataLoaderPath = ({ loaderId, clientData, action, inline, routeId }) => {
136
170
  if (!ssrMode) {
137
171
  return "";
138
172
  }
139
173
  const clientDataStr = clientData ? `&clientData=${clientData}` : "";
140
174
  if (nestedRoutesEntry) {
141
- return `?mapFile=${slash(loadersMapFile)}&loaderId=${loaderId}${clientDataStr}`;
175
+ return `?loaderId=${loaderId}${clientDataStr}&action=${action ? slash(action) : action}&inline=${inline}&routeId=${routeId}`;
142
176
  }
143
177
  return "";
144
178
  };
@@ -151,6 +185,7 @@ export const fileSystemRoutes = async ({ routes, ssrMode, nestedRoutesEntry, ent
151
185
  let loading;
152
186
  let error;
153
187
  let loader;
188
+ let action;
154
189
  let config;
155
190
  let component = "";
156
191
  let lazyImport = null;
@@ -167,13 +202,19 @@ export const fileSystemRoutes = async ({ routes, ssrMode, nestedRoutesEntry, ent
167
202
  loaders.push(route.loader);
168
203
  const loaderId = loaders.length - 1;
169
204
  loader = `loader_${loaderId}`;
205
+ const inline = Boolean(route.data);
170
206
  loadersMap[loader] = {
207
+ loaderId,
171
208
  routeId: route.id,
172
209
  filePath: route.data || route.loader,
173
210
  clientData: Boolean(route.clientData),
174
- inline: Boolean(route.data)
211
+ route,
212
+ inline
175
213
  };
176
214
  loader = `loader_${loaderId}`;
215
+ if (route.action) {
216
+ action = `action_${loaderId}`;
217
+ }
177
218
  }
178
219
  if (typeof route.config === "string") {
179
220
  configs.push(route.config);
@@ -212,6 +253,7 @@ export const fileSystemRoutes = async ({ routes, ssrMode, nestedRoutesEntry, ent
212
253
  lazyImport,
213
254
  loading,
214
255
  loader,
256
+ action,
215
257
  config,
216
258
  error,
217
259
  children
@@ -232,6 +274,7 @@ export const fileSystemRoutes = async ({ routes, ssrMode, nestedRoutesEntry, ent
232
274
  "component",
233
275
  "lazyImport",
234
276
  "loader",
277
+ "action",
235
278
  "loading",
236
279
  "error",
237
280
  "config"
@@ -272,10 +315,34 @@ export const fileSystemRoutes = async ({ routes, ssrMode, nestedRoutesEntry, ent
272
315
  let importLoadersCode = "";
273
316
  for (const [key, loaderInfo] of Object.entries(loadersMap)) {
274
317
  if (loaderInfo.inline) {
275
- importLoadersCode += `import { loader as ${key} } from "${slash(loaderInfo.filePath)}${getDataLoaderPath(key, loaderInfo.clientData)}";
318
+ const { route } = loaderInfo;
319
+ if (route.action) {
320
+ importLoadersCode += `import { loader as ${key}, action as action_${loaderInfo.loaderId} } from "${slash(loaderInfo.filePath)}${getDataLoaderPath({
321
+ loaderId: key,
322
+ clientData: loaderInfo.clientData,
323
+ action: route.action,
324
+ inline: loaderInfo.inline,
325
+ routeId: loaderInfo.routeId
326
+ })}";
276
327
  `;
328
+ } else {
329
+ importLoadersCode += `import { loader as ${key} } from "${slash(loaderInfo.filePath)}${getDataLoaderPath({
330
+ loaderId: key,
331
+ clientData: loaderInfo.clientData,
332
+ action: false,
333
+ inline: loaderInfo.inline,
334
+ routeId: route.id
335
+ })}";
336
+ `;
337
+ }
277
338
  } else {
278
- importLoadersCode += `import ${key} from "${slash(loaderInfo.filePath)}${getDataLoaderPath(key, loaderInfo.clientData)}";
339
+ importLoadersCode += `import ${key} from "${slash(loaderInfo.filePath)}${getDataLoaderPath({
340
+ loaderId: key,
341
+ clientData: loaderInfo.clientData,
342
+ action: false,
343
+ inline: loaderInfo.inline,
344
+ routeId: loaderInfo.routeId
345
+ })}";
279
346
  `;
280
347
  }
281
348
  }
@@ -297,7 +364,7 @@ export const fileSystemRoutes = async ({ routes, ssrMode, nestedRoutesEntry, ent
297
364
  ${routeComponentsCode}
298
365
  `;
299
366
  };
300
- export function ssrLoaderCombinedModule(entrypoints, entrypoint, config, appContext) {
367
+ function ssrLoaderCombinedModule(entrypoints, entrypoint, config, appContext) {
301
368
  const { entryName, isMainEntry } = entrypoint;
302
369
  const { packageName, internalDirectory } = appContext;
303
370
  const ssr = getEntryOptions(entryName, isMainEntry, config.server.ssr, config.server.ssrByEntries, packageName);
@@ -310,3 +377,11 @@ export function ssrLoaderCombinedModule(entrypoints, entrypoint, config, appCont
310
377
  }
311
378
  return null;
312
379
  }
380
+ export {
381
+ fileSystemRoutes,
382
+ html,
383
+ index,
384
+ renderFunction,
385
+ routesForServer,
386
+ ssrLoaderCombinedModule
387
+ };
@@ -3,8 +3,8 @@ import path from "path";
3
3
  import { isReact18, normalizeToPosixPath, fs as fse, getCommand } from "@modern-js/utils";
4
4
  import { transform } from "esbuild";
5
5
  import { parse } from "es-module-lexer";
6
- import { FILE_SYSTEM_ROUTES_FILE_NAME, JS_EXTENSIONS, LOADER_EXPORT_NAME } from "./constants";
7
- export const walkDirectory = (dir) => fs.readdirSync(dir).reduce((previous, filename) => {
6
+ import { ACTION_EXPORT_NAME, FILE_SYSTEM_ROUTES_FILE_NAME, JS_EXTENSIONS, LOADER_EXPORT_NAME } from "./constants";
7
+ const walkDirectory = (dir) => fs.readdirSync(dir).reduce((previous, filename) => {
8
8
  const filePath = path.join(dir, filename);
9
9
  if (fs.statSync(filePath).isDirectory()) {
10
10
  return [
@@ -18,7 +18,7 @@ export const walkDirectory = (dir) => fs.readdirSync(dir).reduce((previous, file
18
18
  ];
19
19
  }
20
20
  }, []);
21
- export const getDefaultImports = ({ entrypoint, srcDirectory, internalSrcAlias, internalDirAlias, internalDirectory }) => {
21
+ const getDefaultImports = ({ entrypoint, srcDirectory, internalSrcAlias, internalDirAlias, internalDirectory }) => {
22
22
  const { entryName, fileSystemRoutes, customBootstrap, entry } = entrypoint;
23
23
  const imports = [
24
24
  {
@@ -91,7 +91,7 @@ export const getDefaultImports = ({ entrypoint, srcDirectory, internalSrcAlias,
91
91
  }
92
92
  return imports;
93
93
  };
94
- export const isPageComponentFile = (filePath) => {
94
+ const isPageComponentFile = (filePath) => {
95
95
  if (/\.(d|test|spec|e2e)\.(js|jsx|ts|tsx)$/.test(filePath)) {
96
96
  return false;
97
97
  }
@@ -105,14 +105,14 @@ export const isPageComponentFile = (filePath) => {
105
105
  }
106
106
  return false;
107
107
  };
108
- export const replaceWithAlias = (base, filePath, alias) => {
108
+ const replaceWithAlias = (base, filePath, alias) => {
109
109
  if (filePath.includes(base)) {
110
110
  return normalizeToPosixPath(path.join(alias, path.relative(base, filePath)));
111
111
  } else {
112
112
  return filePath;
113
113
  }
114
114
  };
115
- export const parseModule = async ({ source, filename }) => {
115
+ const parseModule = async ({ source, filename }) => {
116
116
  let content = source;
117
117
  if (JS_EXTENSIONS.some((ext) => filename.endsWith(ext))) {
118
118
  const result = await transform(content, {
@@ -123,21 +123,41 @@ export const parseModule = async ({ source, filename }) => {
123
123
  }
124
124
  return await parse(content);
125
125
  };
126
- export const hasLoader = async (filename) => {
127
- const source = await fse.readFile(filename);
128
- const [, moduleExports] = await parseModule({
129
- source: source.toString(),
130
- filename
131
- });
132
- return moduleExports.some((e) => e.n === LOADER_EXPORT_NAME);
126
+ const hasLoader = async (filename, source) => {
127
+ let content = source;
128
+ if (!source) {
129
+ content = (await fse.readFile(filename, "utf-8")).toString();
130
+ }
131
+ if (content) {
132
+ const [, moduleExports] = await parseModule({
133
+ source: content.toString(),
134
+ filename
135
+ });
136
+ return moduleExports.some((e) => e.n === LOADER_EXPORT_NAME);
137
+ }
138
+ return false;
139
+ };
140
+ const hasAction = async (filename, source) => {
141
+ let content = source;
142
+ if (!source) {
143
+ content = (await fse.readFile(filename, "utf-8")).toString();
144
+ }
145
+ if (content) {
146
+ const [, moduleExports] = await parseModule({
147
+ source: content.toString(),
148
+ filename
149
+ });
150
+ return moduleExports.some((e) => e.n === ACTION_EXPORT_NAME);
151
+ }
152
+ return false;
133
153
  };
134
- export const getServerLoadersFile = (internalDirectory, entryName) => {
154
+ const getServerLoadersFile = (internalDirectory, entryName) => {
135
155
  return path.join(internalDirectory, entryName, "route-server-loaders.js");
136
156
  };
137
- export const getServerCombinedModueFile = (internalDirectory, entryName) => {
157
+ const getServerCombinedModueFile = (internalDirectory, entryName) => {
138
158
  return path.join(internalDirectory, entryName, "server-loader-combined.js");
139
159
  };
140
- export const checkIsBuildCommands = () => {
160
+ const checkIsBuildCommands = () => {
141
161
  const buildCommands = [
142
162
  "dev",
143
163
  "start",
@@ -149,3 +169,15 @@ export const checkIsBuildCommands = () => {
149
169
  const command = getCommand();
150
170
  return buildCommands.includes(command);
151
171
  };
172
+ export {
173
+ checkIsBuildCommands,
174
+ getDefaultImports,
175
+ getServerCombinedModueFile,
176
+ getServerLoadersFile,
177
+ hasAction,
178
+ hasLoader,
179
+ isPageComponentFile,
180
+ parseModule,
181
+ replaceWithAlias,
182
+ walkDirectory
183
+ };
@@ -2,21 +2,25 @@ import path from "path";
2
2
  import fs from "@modern-js/utils/fs-extra";
3
3
  import { logger, removeTailSlash } from "@modern-js/utils";
4
4
  import { createCopyInfo } from "../shared";
5
- export const builderPluginAdpaterCopy = (options) => ({
5
+ const builderPluginAdpaterCopy = (options) => ({
6
6
  name: "builder-plugin-adapter-rspack-copy",
7
7
  setup(api) {
8
8
  let publicPath;
9
+ api.modifyBundlerChain((chain, { CHAIN_ID }) => {
10
+ chain.plugin(CHAIN_ID.PLUGIN.COPY).tap((args) => {
11
+ var _args_;
12
+ return [
13
+ {
14
+ patterns: [
15
+ ...((_args_ = args[0]) === null || _args_ === void 0 ? void 0 : _args_.patterns) || [],
16
+ ...createConfigBuiltinCopy(options)
17
+ ]
18
+ }
19
+ ];
20
+ });
21
+ });
9
22
  api.modifyRspackConfig((config) => {
10
- var _config_builtins_copy, _config_builtins, _config_output;
11
- config.builtins = {
12
- ...config.builtins || {},
13
- copy: {
14
- patterns: [
15
- ...((_config_builtins = config.builtins) === null || _config_builtins === void 0 ? void 0 : (_config_builtins_copy = _config_builtins.copy) === null || _config_builtins_copy === void 0 ? void 0 : _config_builtins_copy.patterns) || [],
16
- ...createConfigBuiltinCopy(options)
17
- ]
18
- }
19
- };
23
+ var _config_output;
20
24
  publicPath = (_config_output = config.output) === null || _config_output === void 0 ? void 0 : _config_output.publicPath;
21
25
  });
22
26
  api.onDevCompileDone(async () => {
@@ -58,3 +62,6 @@ function createConfigBuiltinCopy(options) {
58
62
  }
59
63
  ];
60
64
  }
65
+ export {
66
+ builderPluginAdpaterCopy
67
+ };
@@ -1,10 +1,13 @@
1
1
  import { builderRspackProvider } from "@modern-js/builder-rspack-provider";
2
2
  import { generateBuilder } from "../generator";
3
3
  import { builderPluginAdpaterCopy } from "./adapterCopy";
4
- export async function createRspackBuilderForModern(options) {
4
+ async function createRspackBuilderForModern(options) {
5
5
  const builder = await generateBuilder(options, builderRspackProvider);
6
6
  builder.addPlugins([
7
7
  builderPluginAdpaterCopy(options)
8
8
  ]);
9
9
  return builder;
10
10
  }
11
+ export {
12
+ createRspackBuilderForModern
13
+ };
@@ -1,11 +1,9 @@
1
- import { join } from "path";
2
1
  import { createPublicPattern } from "./createCopyPattern";
3
- export const builderPluginAdapterModern = (options) => ({
2
+ const builderPluginAdapterModern = (options) => ({
4
3
  name: "builder-plugin-adapter-modern",
5
4
  setup(api) {
6
5
  const { normalizedConfig: modernConfig, appContext } = options;
7
6
  api.modifyWebpackChain((chain, { CHAIN_ID }) => {
8
- chain.resolve.modules.add("node_modules").add(join(api.context.rootPath, "node_modules"));
9
7
  if (chain.plugins.has(CHAIN_ID.PLUGIN.COPY)) {
10
8
  const defaultCopyPattern = createPublicPattern(appContext, modernConfig, chain);
11
9
  chain.plugin(CHAIN_ID.PLUGIN.COPY).tap((args) => {
@@ -23,3 +21,6 @@ export const builderPluginAdapterModern = (options) => ({
23
21
  });
24
22
  }
25
23
  });
24
+ export {
25
+ builderPluginAdapterModern
26
+ };
@@ -7,7 +7,7 @@ const info = (file) => ({
7
7
  // ref: https://github.com/webpack-contrib/copy-webpack-plugin#info
8
8
  minimized: minifiedJsRexExp.test(file.sourceFilename)
9
9
  });
10
- export function createPublicPattern(appContext, config, chain) {
10
+ function createPublicPattern(appContext, config, chain) {
11
11
  const { publicDir } = createCopyInfo(appContext, config);
12
12
  return {
13
13
  info,
@@ -24,7 +24,7 @@ export function createPublicPattern(appContext, config, chain) {
24
24
  }
25
25
  };
26
26
  }
27
- export function createUploadPattern(appContext, config) {
27
+ function createUploadPattern(appContext, config) {
28
28
  const { uploadDir } = createCopyInfo(appContext, config);
29
29
  return {
30
30
  info,
@@ -34,3 +34,7 @@ export function createUploadPattern(appContext, config) {
34
34
  noErrorOnMissing: true
35
35
  };
36
36
  }
37
+ export {
38
+ createPublicPattern,
39
+ createUploadPattern
40
+ };
@@ -1,7 +1,7 @@
1
1
  import { builderWebpackProvider } from "@modern-js/builder-webpack-provider";
2
2
  import { generateBuilder } from "../generator";
3
3
  import { builderPluginAdapterModern } from "./adapterModern";
4
- export async function createWebpackBuilderForModern(options) {
4
+ async function createWebpackBuilderForModern(options) {
5
5
  const builder = await generateBuilder(options, builderWebpackProvider);
6
6
  const { normalizedConfig } = options;
7
7
  if (normalizedConfig.tools.esbuild) {
@@ -16,3 +16,6 @@ export async function createWebpackBuilderForModern(options) {
16
16
  ]);
17
17
  return builder;
18
18
  }
19
+ export {
20
+ createWebpackBuilderForModern
21
+ };
@@ -1,4 +1,4 @@
1
- export function createBuilderOptions(target, appContext) {
1
+ function createBuilderOptions(target, appContext) {
2
2
  const entries = {};
3
3
  const { entrypoints = [], checkedEntries } = appContext;
4
4
  for (const { entryName, internalEntry, entry } of entrypoints) {
@@ -22,3 +22,6 @@ export function createBuilderOptions(target, appContext) {
22
22
  framework: appContext.metaName
23
23
  };
24
24
  }
25
+ export {
26
+ createBuilderOptions
27
+ };
@@ -12,7 +12,7 @@ function modifyOutputConfig(config, appContext) {
12
12
  copy: builderCopy
13
13
  };
14
14
  }
15
- export function createBuilderProviderConfig(resolveConfig, appContext) {
15
+ function createBuilderProviderConfig(resolveConfig, appContext) {
16
16
  const htmlConfig = {
17
17
  ...resolveConfig.html
18
18
  };
@@ -38,3 +38,6 @@ export function createBuilderProviderConfig(resolveConfig, appContext) {
38
38
  modifyOutputConfig(config, appContext);
39
39
  return config;
40
40
  }
41
+ export {
42
+ createBuilderProviderConfig
43
+ };
@@ -1,5 +1,5 @@
1
1
  import { isProd, isServiceWorker, isSSR, isUseSSRBundle } from "@modern-js/utils";
2
- export function getBuilderTargets(normalizedConfig) {
2
+ function getBuilderTargets(normalizedConfig) {
3
3
  const targets = [
4
4
  "web"
5
5
  ];
@@ -13,3 +13,6 @@ export function getBuilderTargets(normalizedConfig) {
13
13
  }
14
14
  return targets;
15
15
  }
16
+ export {
17
+ getBuilderTargets
18
+ };
@@ -2,7 +2,7 @@ import { createBuilder } from "@modern-js/builder";
2
2
  import { createBuilderProviderConfig } from "./createBuilderProviderConfig";
3
3
  import { getBuilderTargets } from "./getBuilderTargets";
4
4
  import { createBuilderOptions } from "./createBuilderOptions";
5
- export async function generateBuilder(options, generateProvider) {
5
+ async function generateBuilder(options, generateProvider) {
6
6
  const { normalizedConfig, appContext } = options;
7
7
  const builderConfig = createBuilderProviderConfig(normalizedConfig, appContext);
8
8
  const provider = generateProvider({
@@ -29,3 +29,6 @@ async function applyBuilderPlugins(builder, options) {
29
29
  ]);
30
30
  }
31
31
  }
32
+ export {
33
+ generateBuilder
34
+ };
@@ -1,5 +1,5 @@
1
1
  import { logger } from "@modern-js/utils";
2
- export async function createBuilderGenerator(bundler) {
2
+ async function createBuilderGenerator(bundler) {
3
3
  if (bundler === "rspack") {
4
4
  try {
5
5
  const { createRspackBuilderForModern } = await import("./builder-rspack");
@@ -14,3 +14,6 @@ export async function createBuilderGenerator(bundler) {
14
14
  const { createWebpackBuilderForModern } = await import("./builder-webpack");
15
15
  return createWebpackBuilderForModern;
16
16
  }
17
+ export {
18
+ createBuilderGenerator
19
+ };
@@ -1,4 +1,5 @@
1
- export const builderPluginAdapterBasic = () => ({
1
+ import path from "path";
2
+ const builderPluginAdapterBasic = () => ({
2
3
  name: "builder-plugin-adapter-modern-basic",
3
4
  setup(api) {
4
5
  api.modifyBundlerChain((chain, { target, CHAIN_ID }) => {
@@ -21,6 +22,7 @@ export const builderPluginAdapterBasic = () => ({
21
22
  chain.module.rule(CHAIN_ID.RULE.JS).exclude.add(bareServerModuleReg);
22
23
  chain.module.rule("bare-server-module").test(bareServerModuleReg).use("server-module-loader").loader(require.resolve("../loaders/serverModuleLoader"));
23
24
  }
25
+ chain.resolve.modules.add("node_modules").add(path.join(api.context.rootPath, "node_modules"));
24
26
  });
25
27
  }
26
28
  });
@@ -50,3 +52,6 @@ function applyNodeCompat(target, chain) {
50
52
  }
51
53
  }
52
54
  }
55
+ export {
56
+ builderPluginAdapterBasic
57
+ };
@@ -2,7 +2,7 @@ import { isHtmlDisabled, createVirtualModule } from "@modern-js/builder-shared";
2
2
  import { MAIN_ENTRY_NAME, getEntryOptions, removeTailSlash } from "@modern-js/utils";
3
3
  import { template as lodashTemplate } from "@modern-js/utils/lodash";
4
4
  import { BottomTemplatePlugin } from "../bundlerPlugins";
5
- export const builderPluginAdapterHtml = (options) => ({
5
+ const builderPluginAdapterHtml = (options) => ({
6
6
  name: "builder-plugin-adapter-modern-html",
7
7
  setup(api) {
8
8
  api.modifyBundlerChain(async (chain, { CHAIN_ID, target, HtmlPlugin: HtmlBundlerPlugin }) => {
@@ -54,3 +54,6 @@ function applyBottomHtmlPlugin({ api, chain, options, CHAIN_ID, HtmlBundlerPlugi
54
54
  HtmlBundlerPlugin
55
55
  ]);
56
56
  }
57
+ export {
58
+ builderPluginAdapterHtml
59
+ };
@@ -3,7 +3,7 @@ import { isHtmlDisabled, mergeBuilderConfig } from "@modern-js/builder-shared";
3
3
  import { isSSR, fs } from "@modern-js/utils";
4
4
  import { HtmlAsyncChunkPlugin, RouterPlugin } from "../bundlerPlugins";
5
5
  import { getServerCombinedModueFile } from "../../../analyze/utils";
6
- export const builderPluginAdapterSSR = (options) => ({
6
+ const builderPluginAdapterSSR = (options) => ({
7
7
  name: "builder-plugin-adapter-modern-ssr",
8
8
  setup(api) {
9
9
  const { normalizedConfig } = options;
@@ -144,3 +144,6 @@ function applySSRDataLoader(chain, options) {
144
144
  const reg = new RegExp(`${absolutePath}.*\\.(loader|data|data.client)\\.[t|j]sx?$`);
145
145
  chain.module.rule("ssr-data-loader").test(reg).use("data-loader").loader(require.resolve("@modern-js/plugin-data-loader/loader")).end();
146
146
  }
147
+ export {
148
+ builderPluginAdapterSSR
149
+ };
@@ -1,5 +1,5 @@
1
1
  import { _ as _define_property } from "@swc/helpers/_/_define_property";
2
- export class HtmlAsyncChunkPlugin {
2
+ class HtmlAsyncChunkPlugin {
3
3
  apply(compiler) {
4
4
  compiler.hooks.compilation.tap(this.name, (compilation) => {
5
5
  const hooks = this.htmlWebpackPlugin.getHooks(compilation);
@@ -28,3 +28,6 @@ export class HtmlAsyncChunkPlugin {
28
28
  this.htmlWebpackPlugin = htmlWebpackPlugin;
29
29
  }
30
30
  }
31
+ export {
32
+ HtmlAsyncChunkPlugin
33
+ };
@@ -1,5 +1,5 @@
1
1
  import { _ as _define_property } from "@swc/helpers/_/_define_property";
2
- export class BottomTemplatePlugin {
2
+ class BottomTemplatePlugin {
3
3
  apply(compiler) {
4
4
  compiler.hooks.compilation.tap(this.name, (compilation) => {
5
5
  this.htmlWebpackPlugin.getHooks(compilation).beforeEmit.tap(this.name, (data) => {
@@ -29,3 +29,6 @@ ${match}`);
29
29
  this.name = "bottom-template";
30
30
  }
31
31
  }
32
+ export {
33
+ BottomTemplatePlugin
34
+ };
@@ -7,7 +7,7 @@ const PLUGIN_NAME = "ModernjsRoutePlugin";
7
7
  const generateContentHash = (content) => {
8
8
  return createHash("md5").update(content).digest("hex").slice(0, 8);
9
9
  };
10
- export class RouterPlugin {
10
+ class RouterPlugin {
11
11
  isTargetNodeOrWebWorker(target) {
12
12
  if (target === "node" || Array.isArray(target) && target.includes("node")) {
13
13
  return true;
@@ -208,3 +208,6 @@ export class RouterPlugin {
208
208
  this.nonce = nonce;
209
209
  }
210
210
  }
211
+ export {
212
+ RouterPlugin
213
+ };
@@ -1,5 +1,5 @@
1
1
  import path from "path";
2
- export function createCopyInfo(appContext, config) {
2
+ function createCopyInfo(appContext, config) {
3
3
  const configDir = path.resolve(appContext.appDirectory, config.source.configDir || "./config");
4
4
  const uploadDir = path.posix.join(configDir.replace(/\\/g, "/"), "upload");
5
5
  const publicDir = path.posix.join(configDir.replace(/\\/g, "/"), "public");
@@ -9,3 +9,6 @@ export function createCopyInfo(appContext, config) {
9
9
  publicDir
10
10
  };
11
11
  }
12
+ export {
13
+ createCopyInfo
14
+ };
@@ -1,4 +1,7 @@
1
1
  function loader() {
2
2
  return `module.exports = {}`;
3
3
  }
4
- export default loader;
4
+ var serverModuleLoader_default = loader;
5
+ export {
6
+ serverModuleLoader_default as default
7
+ };