@modern-js/app-tools 2.0.0-beta.3 → 2.0.0-beta.6

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 (261) hide show
  1. package/CHANGELOG.md +619 -0
  2. package/bin/modern.js +3 -0
  3. package/dist/js/modern/analyze/Builder.js +39 -0
  4. package/dist/js/modern/analyze/constants.js +48 -18
  5. package/dist/js/modern/analyze/generateCode.js +264 -225
  6. package/dist/js/modern/analyze/getBundleEntry.js +34 -32
  7. package/dist/js/modern/analyze/getClientRoutes/getRoutes.js +99 -52
  8. package/dist/js/modern/analyze/getClientRoutes/getRoutesLegacy.js +89 -47
  9. package/dist/js/modern/analyze/getClientRoutes/index.js +6 -2
  10. package/dist/js/modern/analyze/getClientRoutes/utils.js +23 -10
  11. package/dist/js/modern/analyze/getFileSystemEntry.js +52 -23
  12. package/dist/js/modern/analyze/getHtmlTemplate.js +89 -49
  13. package/dist/js/modern/analyze/getServerRoutes.js +122 -126
  14. package/dist/js/modern/analyze/index.js +204 -161
  15. package/dist/js/modern/analyze/isDefaultExportFunction.js +30 -16
  16. package/dist/js/modern/analyze/makeLegalIdentifier.js +10 -11
  17. package/dist/js/modern/analyze/nestedRoutes.js +118 -65
  18. package/dist/js/modern/analyze/templates.js +170 -81
  19. package/dist/js/modern/analyze/utils.js +104 -67
  20. package/dist/js/modern/builder/builderPlugins/compatModern.js +128 -109
  21. package/dist/js/modern/builder/index.js +120 -89
  22. package/dist/js/modern/builder/loaders/routerLoader.js +9 -12
  23. package/dist/js/modern/builder/loaders/serverModuleLoader.js +4 -1
  24. package/dist/js/modern/builder/share.js +23 -21
  25. package/dist/js/modern/builder/webpackPlugins/htmlAsyncChunkPlugin.js +23 -22
  26. package/dist/js/modern/builder/webpackPlugins/htmlBottomTemplate.js +31 -27
  27. package/dist/js/modern/builder/webpackPlugins/routerPlugin.js +100 -84
  28. package/dist/js/modern/commands/build.js +67 -42
  29. package/dist/js/modern/commands/deploy.js +27 -4
  30. package/dist/js/modern/commands/dev.js +81 -34
  31. package/dist/js/modern/commands/index.js +1 -1
  32. package/dist/js/modern/commands/inspect.js +30 -5
  33. package/dist/js/modern/commands/serve.js +54 -0
  34. package/dist/js/modern/config/default.js +112 -145
  35. package/dist/js/modern/config/index.js +8 -2
  36. package/dist/js/modern/config/initial/createHtmlConfig.js +5 -2
  37. package/dist/js/modern/config/initial/createOutputConfig.js +10 -13
  38. package/dist/js/modern/config/initial/createSourceConfig.js +10 -3
  39. package/dist/js/modern/config/initial/createToolsConfig.js +7 -6
  40. package/dist/js/modern/config/initial/index.js +9 -4
  41. package/dist/js/modern/config/initial/inits.js +109 -73
  42. package/dist/js/modern/config/initial/transformNormalizedConfig.js +11 -4
  43. package/dist/js/modern/defineConfig.js +26 -11
  44. package/dist/js/modern/exports/server.js +4 -1
  45. package/dist/js/modern/hooks.js +16 -4
  46. package/dist/js/modern/index.js +178 -90
  47. package/dist/js/modern/initialize/index.js +100 -52
  48. package/dist/js/modern/locale/en.js +20 -21
  49. package/dist/js/modern/locale/index.js +6 -6
  50. package/dist/js/modern/locale/zh.js +21 -22
  51. package/dist/js/modern/schema/Schema.js +6 -5
  52. package/dist/js/modern/schema/index.js +53 -100
  53. package/dist/js/modern/schema/legacy.js +96 -231
  54. package/dist/js/modern/types/config/index.js +0 -1
  55. package/dist/js/modern/types/index.js +0 -1
  56. package/dist/js/modern/types/legacyConfig/output.js +0 -1
  57. package/dist/js/modern/utils/commands.js +10 -2
  58. package/dist/js/modern/utils/config.js +102 -41
  59. package/dist/js/modern/utils/createFileWatcher.js +84 -51
  60. package/dist/js/modern/utils/createServer.js +63 -17
  61. package/dist/js/modern/utils/getServerInternalPlugins.js +58 -0
  62. package/dist/js/modern/utils/getSpecifiedEntries.js +46 -19
  63. package/dist/js/modern/utils/language.js +6 -3
  64. package/dist/js/modern/utils/printInstructions.js +27 -8
  65. package/dist/js/modern/utils/restart.js +43 -16
  66. package/dist/js/modern/utils/routes.js +29 -12
  67. package/dist/js/node/analyze/Builder.js +64 -0
  68. package/dist/js/node/analyze/constants.js +86 -39
  69. package/dist/js/node/analyze/generateCode.js +285 -239
  70. package/dist/js/node/analyze/getBundleEntry.js +62 -44
  71. package/dist/js/node/analyze/getClientRoutes/getRoutes.js +138 -77
  72. package/dist/js/node/analyze/getClientRoutes/getRoutesLegacy.js +130 -74
  73. package/dist/js/node/analyze/getClientRoutes/index.js +27 -16
  74. package/dist/js/node/analyze/getClientRoutes/utils.js +51 -21
  75. package/dist/js/node/analyze/getFileSystemEntry.js +82 -39
  76. package/dist/js/node/analyze/getHtmlTemplate.js +120 -61
  77. package/dist/js/node/analyze/getServerRoutes.js +145 -137
  78. package/dist/js/node/analyze/index.js +233 -174
  79. package/dist/js/node/analyze/isDefaultExportFunction.js +59 -26
  80. package/dist/js/node/analyze/makeLegalIdentifier.js +31 -15
  81. package/dist/js/node/analyze/nestedRoutes.js +150 -79
  82. package/dist/js/node/analyze/templates.js +198 -90
  83. package/dist/js/node/analyze/utils.js +136 -81
  84. package/dist/js/node/builder/builderPlugins/compatModern.js +158 -122
  85. package/dist/js/node/builder/index.js +142 -98
  86. package/dist/js/node/builder/loaders/routerLoader.js +29 -18
  87. package/dist/js/node/builder/loaders/serverModuleLoader.js +24 -7
  88. package/dist/js/node/builder/share.js +50 -26
  89. package/dist/js/node/builder/webpackPlugins/htmlAsyncChunkPlugin.js +43 -26
  90. package/dist/js/node/builder/webpackPlugins/htmlBottomTemplate.js +51 -31
  91. package/dist/js/node/builder/webpackPlugins/routerPlugin.js +120 -90
  92. package/dist/js/node/commands/build.js +91 -52
  93. package/dist/js/node/commands/deploy.js +49 -10
  94. package/dist/js/node/commands/dev.js +105 -48
  95. package/dist/js/node/commands/index.js +19 -38
  96. package/dist/js/node/commands/inspect.js +52 -11
  97. package/dist/js/node/commands/serve.js +83 -0
  98. package/dist/js/node/config/default.js +131 -149
  99. package/dist/js/node/config/index.js +31 -28
  100. package/dist/js/node/config/initial/createHtmlConfig.js +26 -6
  101. package/dist/js/node/config/initial/createOutputConfig.js +31 -17
  102. package/dist/js/node/config/initial/createSourceConfig.js +31 -7
  103. package/dist/js/node/config/initial/createToolsConfig.js +28 -10
  104. package/dist/js/node/config/initial/index.js +34 -17
  105. package/dist/js/node/config/initial/inits.js +130 -81
  106. package/dist/js/node/config/initial/transformNormalizedConfig.js +40 -16
  107. package/dist/js/node/defineConfig.js +46 -17
  108. package/dist/js/node/exports/server.js +25 -10
  109. package/dist/js/node/hooks.js +53 -29
  110. package/dist/js/node/index.js +213 -129
  111. package/dist/js/node/initialize/index.js +117 -61
  112. package/dist/js/node/locale/en.js +40 -25
  113. package/dist/js/node/locale/index.js +31 -14
  114. package/dist/js/node/locale/zh.js +41 -26
  115. package/dist/js/node/schema/Schema.js +27 -10
  116. package/dist/js/node/schema/index.js +84 -114
  117. package/dist/js/node/schema/legacy.js +119 -240
  118. package/dist/js/node/types/config/deploy.js +15 -0
  119. package/dist/js/node/types/config/dev.js +15 -0
  120. package/dist/js/node/types/config/experiments.js +15 -0
  121. package/dist/js/node/types/config/html.js +15 -0
  122. package/dist/js/node/types/config/index.js +17 -16
  123. package/dist/js/node/types/config/output.js +15 -0
  124. package/dist/js/node/types/config/performance.js +15 -0
  125. package/dist/js/node/types/config/security.js +15 -0
  126. package/dist/js/node/types/config/source.js +15 -0
  127. package/dist/js/node/types/config/tools.js +15 -0
  128. package/dist/js/node/types/hooks.js +15 -0
  129. package/dist/js/node/types/index.js +19 -38
  130. package/dist/js/node/types/legacyConfig/deploy.js +15 -0
  131. package/dist/js/node/types/legacyConfig/dev.js +15 -0
  132. package/dist/js/node/types/legacyConfig/index.js +15 -0
  133. package/dist/js/node/types/legacyConfig/output.js +15 -5
  134. package/dist/js/node/types/legacyConfig/source.js +15 -0
  135. package/dist/js/node/types/legacyConfig/tools.js +15 -0
  136. package/dist/js/node/utils/commands.js +31 -6
  137. package/dist/js/node/utils/config.js +125 -51
  138. package/dist/js/node/utils/createFileWatcher.js +109 -61
  139. package/dist/js/node/utils/createServer.js +92 -25
  140. package/dist/js/node/utils/getServerInternalPlugins.js +79 -0
  141. package/dist/js/node/utils/getSpecifiedEntries.js +68 -25
  142. package/dist/js/node/utils/language.js +28 -8
  143. package/dist/js/node/utils/printInstructions.js +51 -16
  144. package/dist/js/node/utils/restart.js +65 -21
  145. package/dist/js/node/utils/routes.js +58 -19
  146. package/dist/js/node/utils/types.js +15 -0
  147. package/dist/js/treeshaking/analyze/Builder.js +199 -0
  148. package/dist/js/treeshaking/analyze/constants.js +37 -18
  149. package/dist/js/treeshaking/analyze/generateCode.js +597 -407
  150. package/dist/js/treeshaking/analyze/getBundleEntry.js +55 -63
  151. package/dist/js/treeshaking/analyze/getClientRoutes/getRoutes.js +217 -168
  152. package/dist/js/treeshaking/analyze/getClientRoutes/getRoutesLegacy.js +215 -169
  153. package/dist/js/treeshaking/analyze/getClientRoutes/index.js +3 -2
  154. package/dist/js/treeshaking/analyze/getClientRoutes/utils.js +19 -20
  155. package/dist/js/treeshaking/analyze/getFileSystemEntry.js +97 -86
  156. package/dist/js/treeshaking/analyze/getHtmlTemplate.js +298 -125
  157. package/dist/js/treeshaking/analyze/getServerRoutes.js +210 -147
  158. package/dist/js/treeshaking/analyze/index.js +575 -305
  159. package/dist/js/treeshaking/analyze/isDefaultExportFunction.js +45 -26
  160. package/dist/js/treeshaking/analyze/makeLegalIdentifier.js +13 -16
  161. package/dist/js/treeshaking/analyze/nestedRoutes.js +419 -201
  162. package/dist/js/treeshaking/analyze/templates.js +438 -236
  163. package/dist/js/treeshaking/analyze/utils.js +367 -153
  164. package/dist/js/treeshaking/builder/builderPlugins/compatModern.js +285 -199
  165. package/dist/js/treeshaking/builder/index.js +365 -165
  166. package/dist/js/treeshaking/builder/loaders/routerLoader.js +11 -12
  167. package/dist/js/treeshaking/builder/loaders/serverModuleLoader.js +3 -2
  168. package/dist/js/treeshaking/builder/share.js +38 -44
  169. package/dist/js/treeshaking/builder/webpackPlugins/htmlAsyncChunkPlugin.js +108 -44
  170. package/dist/js/treeshaking/builder/webpackPlugins/htmlBottomTemplate.js +70 -39
  171. package/dist/js/treeshaking/builder/webpackPlugins/routerPlugin.js +334 -112
  172. package/dist/js/treeshaking/commands/build.js +286 -88
  173. package/dist/js/treeshaking/commands/deploy.js +153 -25
  174. package/dist/js/treeshaking/commands/dev.js +313 -131
  175. package/dist/js/treeshaking/commands/index.js +1 -1
  176. package/dist/js/treeshaking/commands/inspect.js +147 -32
  177. package/dist/js/treeshaking/commands/serve.js +199 -0
  178. package/dist/js/treeshaking/config/default.js +207 -198
  179. package/dist/js/treeshaking/config/index.js +3 -2
  180. package/dist/js/treeshaking/config/initial/createHtmlConfig.js +19 -31
  181. package/dist/js/treeshaking/config/initial/createOutputConfig.js +41 -70
  182. package/dist/js/treeshaking/config/initial/createSourceConfig.js +41 -40
  183. package/dist/js/treeshaking/config/initial/createToolsConfig.js +23 -38
  184. package/dist/js/treeshaking/config/initial/index.js +10 -9
  185. package/dist/js/treeshaking/config/initial/inits.js +205 -106
  186. package/dist/js/treeshaking/config/initial/transformNormalizedConfig.js +31 -34
  187. package/dist/js/treeshaking/defineConfig.js +60 -13
  188. package/dist/js/treeshaking/exports/server.js +2 -1
  189. package/dist/js/treeshaking/hooks.js +31 -25
  190. package/dist/js/treeshaking/index.js +681 -256
  191. package/dist/js/treeshaking/initialize/index.js +292 -113
  192. package/dist/js/treeshaking/locale/en.js +34 -33
  193. package/dist/js/treeshaking/locale/index.js +5 -5
  194. package/dist/js/treeshaking/locale/zh.js +34 -33
  195. package/dist/js/treeshaking/schema/Schema.js +267 -69
  196. package/dist/js/treeshaking/schema/index.js +171 -121
  197. package/dist/js/treeshaking/schema/legacy.js +323 -256
  198. package/dist/js/treeshaking/types/config/deploy.js +1 -0
  199. package/dist/js/treeshaking/types/config/dev.js +1 -0
  200. package/dist/js/treeshaking/types/config/experiments.js +1 -0
  201. package/dist/js/treeshaking/types/config/html.js +1 -0
  202. package/dist/js/treeshaking/types/config/index.js +0 -1
  203. package/dist/js/treeshaking/types/config/output.js +1 -0
  204. package/dist/js/treeshaking/types/config/performance.js +1 -0
  205. package/dist/js/treeshaking/types/config/security.js +1 -0
  206. package/dist/js/treeshaking/types/config/source.js +1 -0
  207. package/dist/js/treeshaking/types/config/tools.js +1 -0
  208. package/dist/js/treeshaking/types/hooks.js +1 -0
  209. package/dist/js/treeshaking/types/index.js +0 -1
  210. package/dist/js/treeshaking/types/legacyConfig/deploy.js +1 -0
  211. package/dist/js/treeshaking/types/legacyConfig/dev.js +1 -0
  212. package/dist/js/treeshaking/types/legacyConfig/index.js +1 -0
  213. package/dist/js/treeshaking/types/legacyConfig/output.js +1 -1
  214. package/dist/js/treeshaking/types/legacyConfig/source.js +1 -0
  215. package/dist/js/treeshaking/types/legacyConfig/tools.js +1 -0
  216. package/dist/js/treeshaking/utils/commands.js +10 -5
  217. package/dist/js/treeshaking/utils/config.js +295 -117
  218. package/dist/js/treeshaking/utils/createFileWatcher.js +278 -118
  219. package/dist/js/treeshaking/utils/createServer.js +252 -67
  220. package/dist/js/treeshaking/utils/getServerInternalPlugins.js +210 -0
  221. package/dist/js/treeshaking/utils/getSpecifiedEntries.js +182 -55
  222. package/dist/js/treeshaking/utils/language.js +6 -5
  223. package/dist/js/treeshaking/utils/printInstructions.js +151 -29
  224. package/dist/js/treeshaking/utils/restart.js +184 -42
  225. package/dist/js/treeshaking/utils/routes.js +151 -27
  226. package/dist/js/treeshaking/utils/types.js +1 -0
  227. package/dist/types/analyze/Builder.d.ts +8 -0
  228. package/dist/types/analyze/constants.d.ts +10 -1
  229. package/dist/types/analyze/index.d.ts +2 -0
  230. package/dist/types/analyze/templates.d.ts +3 -1
  231. package/dist/types/analyze/utils.d.ts +2 -1
  232. package/dist/types/builder/builderPlugins/compatModern.d.ts +2 -1
  233. package/dist/types/builder/index.d.ts +3 -3
  234. package/dist/types/builder/webpackPlugins/routerPlugin.d.ts +1 -7
  235. package/dist/types/commands/index.d.ts +1 -1
  236. package/dist/types/commands/{start.d.ts → serve.d.ts} +0 -0
  237. package/dist/types/defineConfig.d.ts +1 -0
  238. package/dist/types/index.d.ts +7 -1
  239. package/dist/types/initialize/index.d.ts +2 -0
  240. package/dist/types/locale/en.d.ts +1 -1
  241. package/dist/types/locale/index.d.ts +2 -2
  242. package/dist/types/locale/zh.d.ts +1 -1
  243. package/dist/types/types/config/dev.d.ts +2 -2
  244. package/dist/types/types/config/index.d.ts +4 -0
  245. package/dist/types/types/config/output.d.ts +0 -1
  246. package/dist/types/types/config/source.d.ts +2 -0
  247. package/dist/types/types/config/tools.d.ts +2 -0
  248. package/dist/types/types/hooks.d.ts +8 -0
  249. package/dist/types/types/legacyConfig/dev.d.ts +1 -0
  250. package/dist/types/types/legacyConfig/output.d.ts +1 -1
  251. package/dist/types/types/legacyConfig/source.d.ts +1 -0
  252. package/dist/types/types/legacyConfig/tools.d.ts +1 -0
  253. package/dist/types/utils/commands.d.ts +2 -1
  254. package/dist/types/utils/config.d.ts +1 -0
  255. package/dist/types/utils/createServer.d.ts +1 -0
  256. package/dist/types/utils/getServerInternalPlugins.d.ts +2 -0
  257. package/dist/types/utils/restart.d.ts +1 -1
  258. package/package.json +26 -22
  259. package/dist/js/modern/commands/start.js +0 -30
  260. package/dist/js/node/commands/start.js +0 -38
  261. package/dist/js/treeshaking/commands/start.js +0 -69
@@ -1,164 +1,378 @@
1
- import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
2
- import _regeneratorRuntime from "@babel/runtime/helpers/esm/regeneratorRuntime";
3
- import _asyncToGenerator from "@babel/runtime/helpers/esm/asyncToGenerator";
4
- import _toConsumableArray from "@babel/runtime/helpers/esm/toConsumableArray";
5
- import fs from 'fs';
6
- import path from 'path';
7
- import { isReact18, normalizeToPosixPath, fs as fse } from '@modern-js/utils';
8
- import { transform } from 'esbuild';
9
- import { parse } from 'es-module-lexer';
10
- import { FILE_SYSTEM_ROUTES_FILE_NAME, LOADER_EXPORT_NAME } from "./constants";
11
- export var walkDirectory = function walkDirectory(dir) {
12
- return fs.readdirSync(dir).reduce(function (previous, filename) {
13
- var filePath = path.join(dir, filename);
14
- if (fs.statSync(filePath).isDirectory()) {
15
- return [].concat(_toConsumableArray(previous), _toConsumableArray(walkDirectory(filePath)));
1
+ function _arrayLikeToArray(arr, len) {
2
+ if (len == null || len > arr.length) len = arr.length;
3
+ for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
4
+ return arr2;
5
+ }
6
+ function _arrayWithHoles(arr) {
7
+ if (Array.isArray(arr)) return arr;
8
+ }
9
+ function _arrayWithoutHoles(arr) {
10
+ if (Array.isArray(arr)) return _arrayLikeToArray(arr);
11
+ }
12
+ function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
13
+ try {
14
+ var info = gen[key](arg);
15
+ var value = info.value;
16
+ } catch (error) {
17
+ reject(error);
18
+ return;
19
+ }
20
+ if (info.done) {
21
+ resolve(value);
16
22
  } else {
17
- return [].concat(_toConsumableArray(previous), [filePath]);
23
+ Promise.resolve(value).then(_next, _throw);
18
24
  }
19
- }, []);
20
- };
21
- export var getDefaultImports = function getDefaultImports(_ref) {
22
- var entrypoint = _ref.entrypoint,
23
- srcDirectory = _ref.srcDirectory,
24
- internalSrcAlias = _ref.internalSrcAlias,
25
- internalDirAlias = _ref.internalDirAlias,
26
- internalDirectory = _ref.internalDirectory;
27
- var entryName = entrypoint.entryName,
28
- fileSystemRoutes = entrypoint.fileSystemRoutes,
29
- customBootstrap = entrypoint.customBootstrap,
30
- entry = entrypoint.entry;
31
- var imports = [{
32
- specifiers: [{
33
- local: 'React'
34
- }],
35
- value: 'react'
36
- }, {
37
- specifiers: [{
38
- local: 'ReactDOM'
39
- }],
40
- value: isReact18(path.join(internalDirectory, '../../')) ? 'react-dom/client' : 'react-dom'
41
- }, {
42
- specifiers: [{
43
- imported: 'createApp'
44
- }, {
45
- imported: 'bootstrap'
46
- }],
47
- value: '@modern-js/runtime'
48
- }, customBootstrap && {
49
- specifiers: [{
50
- local: 'customBootstrap'
51
- }],
52
- value: normalizeToPosixPath(customBootstrap.replace(srcDirectory, internalSrcAlias))
53
- }].filter(Boolean);
54
- if (fileSystemRoutes) {
55
- var route = {
56
- specifiers: [{
57
- imported: 'routes'
58
- }],
59
- value: normalizeToPosixPath("".concat(internalDirAlias, "/").concat(entryName, "/").concat(FILE_SYSTEM_ROUTES_FILE_NAME.replace('.js', '')))
25
+ }
26
+ function _asyncToGenerator(fn) {
27
+ return function() {
28
+ var self = this, args = arguments;
29
+ return new Promise(function(resolve, reject) {
30
+ var gen = fn.apply(self, args);
31
+ function _next(value) {
32
+ asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);
33
+ }
34
+ function _throw(err) {
35
+ asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);
36
+ }
37
+ _next(undefined);
38
+ });
60
39
  };
61
- if (fileSystemRoutes.globalApp) {
62
- imports.push({
63
- specifiers: [{
64
- local: 'App'
65
- }],
66
- value: normalizeToPosixPath(fileSystemRoutes.globalApp.replace(srcDirectory, internalSrcAlias))
67
- });
40
+ }
41
+ function _iterableToArray(iter) {
42
+ if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
43
+ }
44
+ function _iterableToArrayLimit(arr, i) {
45
+ var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"];
46
+ if (_i == null) return;
47
+ var _arr = [];
48
+ var _n = true;
49
+ var _d = false;
50
+ var _s, _e;
51
+ try {
52
+ for(_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true){
53
+ _arr.push(_s.value);
54
+ if (i && _arr.length === i) break;
55
+ }
56
+ } catch (err) {
57
+ _d = true;
58
+ _e = err;
59
+ } finally{
60
+ try {
61
+ if (!_n && _i["return"] != null) _i["return"]();
62
+ } finally{
63
+ if (_d) throw _e;
64
+ }
65
+ }
66
+ return _arr;
67
+ }
68
+ function _nonIterableRest() {
69
+ throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
70
+ }
71
+ function _nonIterableSpread() {
72
+ throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
73
+ }
74
+ function _slicedToArray(arr, i) {
75
+ return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();
76
+ }
77
+ function _toConsumableArray(arr) {
78
+ return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();
79
+ }
80
+ function _unsupportedIterableToArray(o, minLen) {
81
+ if (!o) return;
82
+ if (typeof o === "string") return _arrayLikeToArray(o, minLen);
83
+ var n = Object.prototype.toString.call(o).slice(8, -1);
84
+ if (n === "Object" && o.constructor) n = o.constructor.name;
85
+ if (n === "Map" || n === "Set") return Array.from(n);
86
+ if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);
87
+ }
88
+ var __generator = this && this.__generator || function(thisArg, body) {
89
+ var f, y, t, g, _ = {
90
+ label: 0,
91
+ sent: function() {
92
+ if (t[0] & 1) throw t[1];
93
+ return t[1];
94
+ },
95
+ trys: [],
96
+ ops: []
97
+ };
98
+ return(g = {
99
+ next: verb(0),
100
+ "throw": verb(1),
101
+ "return": verb(2)
102
+ }, typeof Symbol === "function" && (g[Symbol.iterator] = function() {
103
+ return this;
104
+ }), g);
105
+ function verb(n) {
106
+ return function(v) {
107
+ return step([
108
+ n,
109
+ v
110
+ ]);
111
+ };
112
+ }
113
+ function step(op) {
114
+ if (f) throw new TypeError("Generator is already executing.");
115
+ while(_)try {
116
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
117
+ if (y = 0, t) op = [
118
+ op[0] & 2,
119
+ t.value
120
+ ];
121
+ switch(op[0]){
122
+ case 0:
123
+ case 1:
124
+ t = op;
125
+ break;
126
+ case 4:
127
+ _.label++;
128
+ return {
129
+ value: op[1],
130
+ done: false
131
+ };
132
+ case 5:
133
+ _.label++;
134
+ y = op[1];
135
+ op = [
136
+ 0
137
+ ];
138
+ continue;
139
+ case 7:
140
+ op = _.ops.pop();
141
+ _.trys.pop();
142
+ continue;
143
+ default:
144
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
145
+ _ = 0;
146
+ continue;
147
+ }
148
+ if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
149
+ _.label = op[1];
150
+ break;
151
+ }
152
+ if (op[0] === 6 && _.label < t[1]) {
153
+ _.label = t[1];
154
+ t = op;
155
+ break;
156
+ }
157
+ if (t && _.label < t[2]) {
158
+ _.label = t[2];
159
+ _.ops.push(op);
160
+ break;
161
+ }
162
+ if (t[2]) _.ops.pop();
163
+ _.trys.pop();
164
+ continue;
165
+ }
166
+ op = body.call(thisArg, _);
167
+ } catch (e) {
168
+ op = [
169
+ 6,
170
+ e
171
+ ];
172
+ y = 0;
173
+ } finally{
174
+ f = t = 0;
175
+ }
176
+ if (op[0] & 5) throw op[1];
177
+ return {
178
+ value: op[0] ? op[1] : void 0,
179
+ done: true
180
+ };
181
+ }
182
+ };
183
+ import fs from "fs";
184
+ import path from "path";
185
+ import { isReact18, normalizeToPosixPath, fs as fse } from "@modern-js/utils";
186
+ import { transform } from "esbuild";
187
+ import { parse } from "es-module-lexer";
188
+ import { FILE_SYSTEM_ROUTES_FILE_NAME, LOADER_EXPORT_NAME, NESTED_ROUTE } from "./constants";
189
+ var walkDirectory = function(dir) {
190
+ return fs.readdirSync(dir).reduce(function(previous, filename) {
191
+ var filePath = path.join(dir, filename);
192
+ if (fs.statSync(filePath).isDirectory()) {
193
+ return _toConsumableArray(previous).concat(_toConsumableArray(walkDirectory(filePath)));
194
+ } else {
195
+ return _toConsumableArray(previous).concat([
196
+ filePath
197
+ ]);
198
+ }
199
+ }, []);
200
+ };
201
+ var getDefaultImports = function(param) {
202
+ var entrypoint = param.entrypoint, srcDirectory = param.srcDirectory, internalSrcAlias = param.internalSrcAlias, internalDirAlias = param.internalDirAlias, internalDirectory = param.internalDirectory;
203
+ var entryName = entrypoint.entryName, fileSystemRoutes = entrypoint.fileSystemRoutes, customBootstrap = entrypoint.customBootstrap, entry = entrypoint.entry;
204
+ var imports = [
205
+ {
206
+ specifiers: [
207
+ {
208
+ local: "React"
209
+ }
210
+ ],
211
+ value: "react"
212
+ },
213
+ {
214
+ specifiers: [
215
+ {
216
+ local: "ReactDOM"
217
+ }
218
+ ],
219
+ value: isReact18(path.join(internalDirectory, "../../")) ? "react-dom/client" : "react-dom"
220
+ },
221
+ {
222
+ specifiers: [
223
+ {
224
+ imported: "createApp"
225
+ },
226
+ {
227
+ imported: "bootstrap"
228
+ }
229
+ ],
230
+ value: "@modern-js/runtime"
231
+ },
232
+ customBootstrap && {
233
+ specifiers: [
234
+ {
235
+ local: "customBootstrap"
236
+ }
237
+ ],
238
+ value: normalizeToPosixPath(customBootstrap.replace(srcDirectory, internalSrcAlias))
239
+ }
240
+ ].filter(Boolean);
241
+ if (fileSystemRoutes) {
242
+ var route = {
243
+ specifiers: [
244
+ {
245
+ imported: "routes"
246
+ }
247
+ ],
248
+ value: normalizeToPosixPath("".concat(internalDirAlias, "/").concat(entryName, "/").concat(FILE_SYSTEM_ROUTES_FILE_NAME.replace(".js", "")))
249
+ };
250
+ if (fileSystemRoutes.globalApp) {
251
+ imports.push({
252
+ specifiers: [
253
+ {
254
+ local: "App"
255
+ }
256
+ ],
257
+ value: normalizeToPosixPath(fileSystemRoutes.globalApp.replace(srcDirectory, internalSrcAlias))
258
+ });
259
+ } else {
260
+ route.initialize = "const App = false;";
261
+ }
262
+ imports.push(route);
68
263
  } else {
69
- route.initialize = 'const App = false;';
264
+ imports.push({
265
+ specifiers: [
266
+ {
267
+ local: "App"
268
+ }
269
+ ],
270
+ value: normalizeToPosixPath(entry.replace(srcDirectory, internalSrcAlias))
271
+ });
70
272
  }
71
- imports.push(route);
72
- } else {
73
- imports.push({
74
- specifiers: [{
75
- local: 'App'
76
- }],
77
- value: normalizeToPosixPath(entry.replace(srcDirectory, internalSrcAlias))
78
- });
79
- }
80
- return imports;
273
+ return imports;
81
274
  };
82
- export var isRouteComponentFile = function isRouteComponentFile(filePath) {
83
- if (/\.(d|test|spec|e2e)\.(js|jsx|ts|tsx)$/.test(filePath)) {
275
+ var isPageComponentFile = function(filePath) {
276
+ if (/\.(d|test|spec|e2e)\.(js|jsx|ts|tsx)$/.test(filePath)) {
277
+ return false;
278
+ }
279
+ if ([
280
+ ".js",
281
+ ".jsx",
282
+ ".ts",
283
+ ".tsx"
284
+ ].includes(path.extname(filePath))) {
285
+ return true;
286
+ }
84
287
  return false;
85
- }
86
- if (['.js', '.jsx', '.ts', '.tsx'].includes(path.extname(filePath))) {
87
- return true;
88
- }
89
- return false;
90
288
  };
91
- export var replaceWithAlias = function replaceWithAlias(base, filePath, alias) {
92
- return normalizeToPosixPath(path.join(alias, path.relative(base, filePath)));
289
+ var isNestedRouteComponent = function(nestedRouteEntries, absoluteFilePath) {
290
+ var reg = new RegExp("(".concat(NESTED_ROUTE.LAYOUT_FILE, "|").concat(NESTED_ROUTE.PAGE_FILE, "})\\.tsx?$"));
291
+ return nestedRouteEntries.some(function(nestedRoutesEntry) {
292
+ if (absoluteFilePath.includes(nestedRoutesEntry) && reg.test(absoluteFilePath)) {
293
+ return true;
294
+ }
295
+ return false;
296
+ });
297
+ };
298
+ var replaceWithAlias = function(base, filePath, alias) {
299
+ return normalizeToPosixPath(path.join(alias, path.relative(base, filePath)));
93
300
  };
94
- export var parseModule = /*#__PURE__*/function () {
95
- var _ref3 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(_ref2) {
96
- var source, filename, content, result;
97
- return _regeneratorRuntime().wrap(function _callee$(_context) {
98
- while (1) {
99
- switch (_context.prev = _context.next) {
100
- case 0:
101
- source = _ref2.source, filename = _ref2.filename;
102
- content = source;
103
- if (!(filename.endsWith('.tsx') || filename.endsWith('.jsx'))) {
104
- _context.next = 7;
105
- break;
301
+ var parseModule = function() {
302
+ var _ref = _asyncToGenerator(function(param) {
303
+ var source, filename, content, result;
304
+ return __generator(this, function(_state) {
305
+ switch(_state.label){
306
+ case 0:
307
+ source = param.source, filename = param.filename;
308
+ content = source;
309
+ if (!(filename.endsWith(".tsx") || filename.endsWith(".jsx"))) return [
310
+ 3,
311
+ 2
312
+ ];
313
+ return [
314
+ 4,
315
+ transform(content, {
316
+ loader: path.extname(filename).slice(1),
317
+ format: "esm"
318
+ })
319
+ ];
320
+ case 1:
321
+ result = _state.sent();
322
+ content = result.code;
323
+ _state.label = 2;
324
+ case 2:
325
+ return [
326
+ 4,
327
+ parse(content)
328
+ ];
329
+ case 3:
330
+ return [
331
+ 2,
332
+ _state.sent()
333
+ ];
106
334
  }
107
- _context.next = 5;
108
- return transform(content, {
109
- loader: path.extname(filename).slice(1),
110
- format: 'esm'
111
- });
112
- case 5:
113
- result = _context.sent;
114
- content = result.code;
115
- case 7:
116
- _context.next = 9;
117
- return parse(content);
118
- case 9:
119
- return _context.abrupt("return", _context.sent);
120
- case 10:
121
- case "end":
122
- return _context.stop();
123
- }
124
- }
125
- }, _callee);
126
- }));
127
- return function parseModule(_x) {
128
- return _ref3.apply(this, arguments);
129
- };
335
+ });
336
+ });
337
+ return function parseModule(_) {
338
+ return _ref.apply(this, arguments);
339
+ };
130
340
  }();
131
- export var hasLoader = /*#__PURE__*/function () {
132
- var _ref4 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(filename) {
133
- var source, _yield$parseModule, _yield$parseModule2, moduleExports;
134
- return _regeneratorRuntime().wrap(function _callee2$(_context2) {
135
- while (1) {
136
- switch (_context2.prev = _context2.next) {
137
- case 0:
138
- _context2.next = 2;
139
- return fse.readFile(filename);
140
- case 2:
141
- source = _context2.sent;
142
- _context2.next = 5;
143
- return parseModule({
144
- source: source.toString(),
145
- filename: filename
146
- });
147
- case 5:
148
- _yield$parseModule = _context2.sent;
149
- _yield$parseModule2 = _slicedToArray(_yield$parseModule, 2);
150
- moduleExports = _yield$parseModule2[1];
151
- return _context2.abrupt("return", moduleExports.some(function (e) {
152
- return e.n === LOADER_EXPORT_NAME;
153
- }));
154
- case 9:
155
- case "end":
156
- return _context2.stop();
157
- }
158
- }
159
- }, _callee2);
160
- }));
161
- return function hasLoader(_x2) {
162
- return _ref4.apply(this, arguments);
163
- };
164
- }();
341
+ var hasLoader = function() {
342
+ var _ref = _asyncToGenerator(function(filename) {
343
+ var source, ref, moduleExports;
344
+ return __generator(this, function(_state) {
345
+ switch(_state.label){
346
+ case 0:
347
+ return [
348
+ 4,
349
+ fse.readFile(filename)
350
+ ];
351
+ case 1:
352
+ source = _state.sent();
353
+ return [
354
+ 4,
355
+ parseModule({
356
+ source: source.toString(),
357
+ filename: filename
358
+ })
359
+ ];
360
+ case 2:
361
+ ref = _slicedToArray.apply(void 0, [
362
+ _state.sent(),
363
+ 2
364
+ ]), moduleExports = ref[1];
365
+ return [
366
+ 2,
367
+ moduleExports.some(function(e) {
368
+ return e.n === LOADER_EXPORT_NAME;
369
+ })
370
+ ];
371
+ }
372
+ });
373
+ });
374
+ return function hasLoader(filename) {
375
+ return _ref.apply(this, arguments);
376
+ };
377
+ }();
378
+ export { getDefaultImports, hasLoader, isNestedRouteComponent, isPageComponentFile, parseModule, replaceWithAlias, walkDirectory };