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

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 (230) hide show
  1. package/CHANGELOG.md +305 -0
  2. package/bin/modern.js +1 -0
  3. package/dist/js/modern/analyze/Builder.js +39 -0
  4. package/dist/js/modern/analyze/constants.js +38 -18
  5. package/dist/js/modern/analyze/generateCode.js +262 -221
  6. package/dist/js/modern/analyze/getBundleEntry.js +34 -32
  7. package/dist/js/modern/analyze/getClientRoutes/getRoutes.js +93 -49
  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 +43 -22
  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 +201 -160
  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 +106 -60
  18. package/dist/js/modern/analyze/templates.js +163 -81
  19. package/dist/js/modern/analyze/utils.js +87 -66
  20. package/dist/js/modern/builder/builderPlugins/compatModern.js +122 -109
  21. package/dist/js/modern/builder/index.js +123 -86
  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 +77 -27
  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/start.js +37 -15
  34. package/dist/js/modern/config/default.js +103 -113
  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 +9 -10
  38. package/dist/js/modern/config/initial/createSourceConfig.js +5 -2
  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 +6 -3
  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 +15 -4
  46. package/dist/js/modern/index.js +178 -90
  47. package/dist/js/modern/initialize/index.js +98 -51
  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 +51 -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 +5 -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/getSpecifiedEntries.js +46 -19
  62. package/dist/js/modern/utils/language.js +6 -3
  63. package/dist/js/modern/utils/printInstructions.js +27 -8
  64. package/dist/js/modern/utils/restart.js +43 -16
  65. package/dist/js/modern/utils/routes.js +29 -12
  66. package/dist/js/node/analyze/Builder.js +58 -0
  67. package/dist/js/node/analyze/constants.js +54 -39
  68. package/dist/js/node/analyze/generateCode.js +282 -239
  69. package/dist/js/node/analyze/getBundleEntry.js +58 -44
  70. package/dist/js/node/analyze/getClientRoutes/getRoutes.js +132 -76
  71. package/dist/js/node/analyze/getClientRoutes/getRoutesLegacy.js +128 -74
  72. package/dist/js/node/analyze/getClientRoutes/index.js +23 -17
  73. package/dist/js/node/analyze/getClientRoutes/utils.js +44 -21
  74. package/dist/js/node/analyze/getFileSystemEntry.js +70 -39
  75. package/dist/js/node/analyze/getHtmlTemplate.js +116 -61
  76. package/dist/js/node/analyze/getServerRoutes.js +143 -137
  77. package/dist/js/node/analyze/index.js +247 -174
  78. package/dist/js/node/analyze/isDefaultExportFunction.js +55 -26
  79. package/dist/js/node/analyze/makeLegalIdentifier.js +27 -15
  80. package/dist/js/node/analyze/nestedRoutes.js +137 -75
  81. package/dist/js/node/analyze/templates.js +185 -90
  82. package/dist/js/node/analyze/utils.js +114 -81
  83. package/dist/js/node/builder/builderPlugins/compatModern.js +150 -122
  84. package/dist/js/node/builder/index.js +151 -95
  85. package/dist/js/node/builder/loaders/routerLoader.js +27 -18
  86. package/dist/js/node/builder/loaders/serverModuleLoader.js +22 -7
  87. package/dist/js/node/builder/share.js +46 -26
  88. package/dist/js/node/builder/webpackPlugins/htmlAsyncChunkPlugin.js +39 -26
  89. package/dist/js/node/builder/webpackPlugins/htmlBottomTemplate.js +47 -31
  90. package/dist/js/node/builder/webpackPlugins/routerPlugin.js +118 -90
  91. package/dist/js/node/commands/build.js +89 -52
  92. package/dist/js/node/commands/deploy.js +45 -10
  93. package/dist/js/node/commands/dev.js +99 -41
  94. package/dist/js/node/commands/index.js +19 -38
  95. package/dist/js/node/commands/inspect.js +48 -11
  96. package/dist/js/node/commands/start.js +65 -26
  97. package/dist/js/node/config/default.js +119 -117
  98. package/dist/js/node/config/index.js +25 -29
  99. package/dist/js/node/config/initial/createHtmlConfig.js +22 -6
  100. package/dist/js/node/config/initial/createOutputConfig.js +26 -14
  101. package/dist/js/node/config/initial/createSourceConfig.js +22 -6
  102. package/dist/js/node/config/initial/createToolsConfig.js +24 -10
  103. package/dist/js/node/config/initial/index.js +28 -17
  104. package/dist/js/node/config/initial/inits.js +126 -81
  105. package/dist/js/node/config/initial/transformNormalizedConfig.js +31 -15
  106. package/dist/js/node/defineConfig.js +43 -17
  107. package/dist/js/node/exports/server.js +21 -10
  108. package/dist/js/node/hooks.js +48 -29
  109. package/dist/js/node/index.js +225 -128
  110. package/dist/js/node/initialize/index.js +116 -61
  111. package/dist/js/node/locale/en.js +36 -25
  112. package/dist/js/node/locale/index.js +27 -15
  113. package/dist/js/node/locale/zh.js +37 -26
  114. package/dist/js/node/schema/Schema.js +23 -10
  115. package/dist/js/node/schema/index.js +77 -114
  116. package/dist/js/node/schema/legacy.js +117 -240
  117. package/dist/js/node/types/config/index.js +17 -16
  118. package/dist/js/node/types/index.js +19 -38
  119. package/dist/js/node/types/legacyConfig/output.js +0 -5
  120. package/dist/js/node/utils/commands.js +21 -6
  121. package/dist/js/node/utils/config.js +120 -51
  122. package/dist/js/node/utils/createFileWatcher.js +104 -61
  123. package/dist/js/node/utils/createServer.js +86 -25
  124. package/dist/js/node/utils/getSpecifiedEntries.js +64 -25
  125. package/dist/js/node/utils/language.js +24 -8
  126. package/dist/js/node/utils/printInstructions.js +47 -16
  127. package/dist/js/node/utils/restart.js +61 -21
  128. package/dist/js/node/utils/routes.js +53 -18
  129. package/dist/js/treeshaking/analyze/Builder.js +199 -0
  130. package/dist/js/treeshaking/analyze/constants.js +28 -18
  131. package/dist/js/treeshaking/analyze/generateCode.js +600 -406
  132. package/dist/js/treeshaking/analyze/getBundleEntry.js +55 -63
  133. package/dist/js/treeshaking/analyze/getClientRoutes/getRoutes.js +214 -168
  134. package/dist/js/treeshaking/analyze/getClientRoutes/getRoutesLegacy.js +215 -169
  135. package/dist/js/treeshaking/analyze/getClientRoutes/index.js +3 -2
  136. package/dist/js/treeshaking/analyze/getClientRoutes/utils.js +19 -20
  137. package/dist/js/treeshaking/analyze/getFileSystemEntry.js +89 -86
  138. package/dist/js/treeshaking/analyze/getHtmlTemplate.js +298 -125
  139. package/dist/js/treeshaking/analyze/getServerRoutes.js +210 -147
  140. package/dist/js/treeshaking/analyze/index.js +571 -304
  141. package/dist/js/treeshaking/analyze/isDefaultExportFunction.js +45 -26
  142. package/dist/js/treeshaking/analyze/makeLegalIdentifier.js +13 -16
  143. package/dist/js/treeshaking/analyze/nestedRoutes.js +411 -200
  144. package/dist/js/treeshaking/analyze/templates.js +433 -236
  145. package/dist/js/treeshaking/analyze/utils.js +358 -153
  146. package/dist/js/treeshaking/builder/builderPlugins/compatModern.js +282 -200
  147. package/dist/js/treeshaking/builder/index.js +371 -165
  148. package/dist/js/treeshaking/builder/loaders/routerLoader.js +11 -12
  149. package/dist/js/treeshaking/builder/loaders/serverModuleLoader.js +3 -2
  150. package/dist/js/treeshaking/builder/share.js +38 -44
  151. package/dist/js/treeshaking/builder/webpackPlugins/htmlAsyncChunkPlugin.js +108 -44
  152. package/dist/js/treeshaking/builder/webpackPlugins/htmlBottomTemplate.js +70 -39
  153. package/dist/js/treeshaking/builder/webpackPlugins/routerPlugin.js +334 -112
  154. package/dist/js/treeshaking/commands/build.js +286 -88
  155. package/dist/js/treeshaking/commands/deploy.js +153 -25
  156. package/dist/js/treeshaking/commands/dev.js +318 -131
  157. package/dist/js/treeshaking/commands/index.js +1 -1
  158. package/dist/js/treeshaking/commands/inspect.js +147 -32
  159. package/dist/js/treeshaking/commands/start.js +190 -67
  160. package/dist/js/treeshaking/config/default.js +210 -198
  161. package/dist/js/treeshaking/config/index.js +3 -2
  162. package/dist/js/treeshaking/config/initial/createHtmlConfig.js +19 -31
  163. package/dist/js/treeshaking/config/initial/createOutputConfig.js +43 -70
  164. package/dist/js/treeshaking/config/initial/createSourceConfig.js +37 -40
  165. package/dist/js/treeshaking/config/initial/createToolsConfig.js +23 -38
  166. package/dist/js/treeshaking/config/initial/index.js +10 -9
  167. package/dist/js/treeshaking/config/initial/inits.js +205 -106
  168. package/dist/js/treeshaking/config/initial/transformNormalizedConfig.js +27 -34
  169. package/dist/js/treeshaking/defineConfig.js +60 -13
  170. package/dist/js/treeshaking/exports/server.js +2 -1
  171. package/dist/js/treeshaking/hooks.js +30 -25
  172. package/dist/js/treeshaking/index.js +681 -256
  173. package/dist/js/treeshaking/initialize/index.js +290 -112
  174. package/dist/js/treeshaking/locale/en.js +34 -33
  175. package/dist/js/treeshaking/locale/index.js +5 -5
  176. package/dist/js/treeshaking/locale/zh.js +34 -33
  177. package/dist/js/treeshaking/schema/Schema.js +267 -69
  178. package/dist/js/treeshaking/schema/index.js +165 -121
  179. package/dist/js/treeshaking/schema/legacy.js +323 -256
  180. package/dist/js/treeshaking/types/config/deploy.js +1 -0
  181. package/dist/js/treeshaking/types/config/dev.js +1 -0
  182. package/dist/js/treeshaking/types/config/experiments.js +1 -0
  183. package/dist/js/treeshaking/types/config/html.js +1 -0
  184. package/dist/js/treeshaking/types/config/index.js +0 -1
  185. package/dist/js/treeshaking/types/config/output.js +1 -0
  186. package/dist/js/treeshaking/types/config/performance.js +1 -0
  187. package/dist/js/treeshaking/types/config/security.js +1 -0
  188. package/dist/js/treeshaking/types/config/source.js +1 -0
  189. package/dist/js/treeshaking/types/config/tools.js +1 -0
  190. package/dist/js/treeshaking/types/hooks.js +1 -0
  191. package/dist/js/treeshaking/types/index.js +0 -1
  192. package/dist/js/treeshaking/types/legacyConfig/deploy.js +1 -0
  193. package/dist/js/treeshaking/types/legacyConfig/dev.js +1 -0
  194. package/dist/js/treeshaking/types/legacyConfig/index.js +1 -0
  195. package/dist/js/treeshaking/types/legacyConfig/output.js +1 -1
  196. package/dist/js/treeshaking/types/legacyConfig/source.js +1 -0
  197. package/dist/js/treeshaking/types/legacyConfig/tools.js +1 -0
  198. package/dist/js/treeshaking/utils/commands.js +6 -5
  199. package/dist/js/treeshaking/utils/config.js +295 -117
  200. package/dist/js/treeshaking/utils/createFileWatcher.js +278 -118
  201. package/dist/js/treeshaking/utils/createServer.js +252 -67
  202. package/dist/js/treeshaking/utils/getSpecifiedEntries.js +182 -55
  203. package/dist/js/treeshaking/utils/language.js +6 -5
  204. package/dist/js/treeshaking/utils/printInstructions.js +151 -29
  205. package/dist/js/treeshaking/utils/restart.js +184 -42
  206. package/dist/js/treeshaking/utils/routes.js +151 -27
  207. package/dist/js/treeshaking/utils/types.js +1 -0
  208. package/dist/types/analyze/Builder.d.ts +8 -0
  209. package/dist/types/analyze/index.d.ts +2 -0
  210. package/dist/types/analyze/templates.d.ts +3 -1
  211. package/dist/types/builder/builderPlugins/compatModern.d.ts +2 -1
  212. package/dist/types/builder/index.d.ts +3 -3
  213. package/dist/types/builder/webpackPlugins/routerPlugin.d.ts +1 -7
  214. package/dist/types/defineConfig.d.ts +1 -0
  215. package/dist/types/index.d.ts +6 -1
  216. package/dist/types/initialize/index.d.ts +2 -0
  217. package/dist/types/types/config/dev.d.ts +2 -2
  218. package/dist/types/types/config/index.d.ts +1 -0
  219. package/dist/types/types/config/output.d.ts +0 -1
  220. package/dist/types/types/config/source.d.ts +1 -0
  221. package/dist/types/types/config/tools.d.ts +2 -0
  222. package/dist/types/types/hooks.d.ts +5 -0
  223. package/dist/types/types/legacyConfig/dev.d.ts +1 -0
  224. package/dist/types/types/legacyConfig/output.d.ts +1 -1
  225. package/dist/types/types/legacyConfig/source.d.ts +1 -0
  226. package/dist/types/types/legacyConfig/tools.d.ts +1 -0
  227. package/dist/types/utils/config.d.ts +1 -0
  228. package/dist/types/utils/createServer.d.ts +1 -0
  229. package/dist/types/utils/restart.d.ts +1 -1
  230. package/package.json +23 -22
@@ -1,164 +1,369 @@
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
+ });
39
+ };
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: []
60
97
  };
61
- if (fileSystemRoutes.globalApp) {
62
- imports.push({
63
- specifiers: [{
64
- local: 'App'
65
- }],
66
- value: normalizeToPosixPath(fileSystemRoutes.globalApp.replace(srcDirectory, internalSrcAlias))
67
- });
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 } 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 isRouteComponentFile = 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 replaceWithAlias = function(base, filePath, alias) {
290
+ return normalizeToPosixPath(path.join(alias, path.relative(base, filePath)));
93
291
  };
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;
292
+ var parseModule = function() {
293
+ var _ref = _asyncToGenerator(function(param) {
294
+ var source, filename, content, result;
295
+ return __generator(this, function(_state) {
296
+ switch(_state.label){
297
+ case 0:
298
+ source = param.source, filename = param.filename;
299
+ content = source;
300
+ if (!(filename.endsWith(".tsx") || filename.endsWith(".jsx"))) return [
301
+ 3,
302
+ 2
303
+ ];
304
+ return [
305
+ 4,
306
+ transform(content, {
307
+ loader: path.extname(filename).slice(1),
308
+ format: "esm"
309
+ })
310
+ ];
311
+ case 1:
312
+ result = _state.sent();
313
+ content = result.code;
314
+ _state.label = 2;
315
+ case 2:
316
+ return [
317
+ 4,
318
+ parse(content)
319
+ ];
320
+ case 3:
321
+ return [
322
+ 2,
323
+ _state.sent()
324
+ ];
106
325
  }
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
- };
326
+ });
327
+ });
328
+ return function parseModule(_) {
329
+ return _ref.apply(this, arguments);
330
+ };
130
331
  }();
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
- }();
332
+ var hasLoader = function() {
333
+ var _ref = _asyncToGenerator(function(filename) {
334
+ var source, ref, moduleExports;
335
+ return __generator(this, function(_state) {
336
+ switch(_state.label){
337
+ case 0:
338
+ return [
339
+ 4,
340
+ fse.readFile(filename)
341
+ ];
342
+ case 1:
343
+ source = _state.sent();
344
+ return [
345
+ 4,
346
+ parseModule({
347
+ source: source.toString(),
348
+ filename: filename
349
+ })
350
+ ];
351
+ case 2:
352
+ ref = _slicedToArray.apply(void 0, [
353
+ _state.sent(),
354
+ 2
355
+ ]), moduleExports = ref[1];
356
+ return [
357
+ 2,
358
+ moduleExports.some(function(e) {
359
+ return e.n === LOADER_EXPORT_NAME;
360
+ })
361
+ ];
362
+ }
363
+ });
364
+ });
365
+ return function hasLoader(filename) {
366
+ return _ref.apply(this, arguments);
367
+ };
368
+ }();
369
+ export { getDefaultImports, hasLoader, isRouteComponentFile, parseModule, replaceWithAlias, walkDirectory };