@modern-js/utils 1.3.7 → 1.5.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 (317) hide show
  1. package/.eslintrc.js +9 -0
  2. package/CHANGELOG.md +31 -0
  3. package/compiled/browserslist/index.d.ts +178 -0
  4. package/compiled/browserslist/index.js +1 -0
  5. package/compiled/browserslist/license +20 -0
  6. package/compiled/browserslist/package.json +1 -0
  7. package/compiled/chalk/index.d.ts +415 -0
  8. package/compiled/chalk/index.js +1 -0
  9. package/compiled/chalk/license +9 -0
  10. package/compiled/chalk/package.json +1 -0
  11. package/compiled/chokidar/anymatch/index.d.ts +19 -0
  12. package/compiled/chokidar/fsevents.node +0 -0
  13. package/compiled/chokidar/index.js +40 -0
  14. package/compiled/chokidar/license +21 -0
  15. package/compiled/chokidar/package.json +1 -0
  16. package/compiled/chokidar/types/index.d.ts +188 -0
  17. package/compiled/commander/index.js +1 -0
  18. package/compiled/commander/license +22 -0
  19. package/compiled/commander/package.json +1 -0
  20. package/compiled/commander/typings/index.d.ts +774 -0
  21. package/compiled/debug/index.d.ts +54 -0
  22. package/compiled/debug/index.js +1 -0
  23. package/compiled/debug/license +20 -0
  24. package/compiled/debug/ms/index.d.ts +25 -0
  25. package/compiled/debug/package.json +1 -0
  26. package/compiled/execa/index.d.ts +564 -0
  27. package/compiled/execa/index.js +1 -0
  28. package/compiled/execa/license +9 -0
  29. package/compiled/execa/package.json +1 -0
  30. package/compiled/filesize/filesize.d.ts +131 -0
  31. package/compiled/filesize/index.js +9 -0
  32. package/compiled/filesize/license +28 -0
  33. package/compiled/filesize/package.json +1 -0
  34. package/compiled/fs-extra/index.d.ts +563 -0
  35. package/compiled/fs-extra/index.js +1 -0
  36. package/compiled/fs-extra/license +15 -0
  37. package/compiled/fs-extra/package.json +1 -0
  38. package/compiled/glob/index.d.ts +91 -0
  39. package/compiled/glob/index.js +1 -0
  40. package/compiled/glob/license +21 -0
  41. package/compiled/glob/minimatch/index.d.ts +204 -0
  42. package/compiled/glob/package.json +1 -0
  43. package/compiled/gzip-size/index.d.ts +96 -0
  44. package/compiled/gzip-size/index.js +1 -0
  45. package/compiled/gzip-size/license +9 -0
  46. package/compiled/gzip-size/package.json +1 -0
  47. package/compiled/import-lazy/index.d.ts +26 -0
  48. package/compiled/import-lazy/index.js +1 -0
  49. package/compiled/import-lazy/license +9 -0
  50. package/compiled/import-lazy/package.json +1 -0
  51. package/compiled/js-yaml/index.d.ts +154 -0
  52. package/compiled/js-yaml/index.js +1 -0
  53. package/compiled/js-yaml/license +21 -0
  54. package/compiled/js-yaml/package.json +1 -0
  55. package/compiled/lodash/common/array.d.ts +2126 -0
  56. package/compiled/lodash/common/collection.d.ts +1930 -0
  57. package/compiled/lodash/common/common.d.ts +280 -0
  58. package/compiled/lodash/common/date.d.ts +23 -0
  59. package/compiled/lodash/common/function.d.ts +1446 -0
  60. package/compiled/lodash/common/lang.d.ts +1693 -0
  61. package/compiled/lodash/common/math.d.ts +405 -0
  62. package/compiled/lodash/common/number.d.ts +131 -0
  63. package/compiled/lodash/common/object.d.ts +2519 -0
  64. package/compiled/lodash/common/seq.d.ts +210 -0
  65. package/compiled/lodash/common/string.d.ts +788 -0
  66. package/compiled/lodash/common/util.d.ts +1220 -0
  67. package/compiled/lodash/index.d.ts +46 -0
  68. package/compiled/lodash/index.js +9 -0
  69. package/compiled/lodash/license +47 -0
  70. package/compiled/lodash/package.json +1 -0
  71. package/compiled/pkg-up/index.d.ts +48 -0
  72. package/compiled/pkg-up/index.js +1 -0
  73. package/compiled/pkg-up/license +9 -0
  74. package/compiled/pkg-up/package.json +1 -0
  75. package/compiled/recursive-readdir/index.d.ts +21 -0
  76. package/compiled/recursive-readdir/index.js +1 -0
  77. package/compiled/recursive-readdir/license +21 -0
  78. package/compiled/recursive-readdir/package.json +1 -0
  79. package/compiled/signale/index.d.ts +162 -0
  80. package/compiled/signale/index.js +1 -0
  81. package/compiled/signale/package.json +1 -0
  82. package/compiled/strip-ansi/index.d.ts +17 -0
  83. package/compiled/strip-ansi/index.js +1 -0
  84. package/compiled/strip-ansi/license +9 -0
  85. package/compiled/strip-ansi/package.json +1 -0
  86. package/compiled/upath/index.js +1 -0
  87. package/compiled/upath/license +22 -0
  88. package/compiled/upath/package.json +1 -0
  89. package/compiled/upath/upath.d.ts +241 -0
  90. package/dist/{types/FileSizeReporter.d.ts → FileSizeReporter.d.ts} +5 -5
  91. package/dist/FileSizeReporter.js +151 -0
  92. package/dist/{types/alias.d.ts → alias.d.ts} +12 -14
  93. package/dist/alias.js +62 -0
  94. package/dist/analyzeProject.d.ts +1 -0
  95. package/dist/analyzeProject.js +44 -0
  96. package/dist/applyOptionsChain.d.ts +6 -0
  97. package/dist/applyOptionsChain.js +30 -0
  98. package/dist/clearConsole.d.ts +1 -0
  99. package/dist/clearConsole.js +9 -0
  100. package/dist/{types/compatRequire.d.ts → compatRequire.d.ts} +1 -1
  101. package/dist/compatRequire.js +28 -0
  102. package/dist/compiled.d.ts +21 -0
  103. package/dist/compiled.js +33 -0
  104. package/dist/constants.d.ts +222 -0
  105. package/dist/constants.js +277 -0
  106. package/dist/{js/modern/debug.js → debug.d.ts} +1 -3
  107. package/dist/debug.js +11 -0
  108. package/dist/emptyDir.d.ts +1 -0
  109. package/dist/emptyDir.js +19 -0
  110. package/dist/{types/ensureAbsolutePath.d.ts → ensureAbsolutePath.d.ts} +1 -1
  111. package/dist/ensureAbsolutePath.js +15 -0
  112. package/dist/{types/findExists.d.ts → findExists.d.ts} +1 -1
  113. package/dist/findExists.js +21 -0
  114. package/dist/{types/format.d.ts → format.d.ts} +3 -3
  115. package/dist/format.js +113 -0
  116. package/dist/{types/generateMetaTags.d.ts → generateMetaTags.d.ts} +3 -3
  117. package/dist/generateMetaTags.js +48 -0
  118. package/dist/{types/getBrowserslist.d.ts → getBrowserslist.d.ts} +1 -1
  119. package/dist/getBrowserslist.js +7 -0
  120. package/dist/{types/getCacheIdentifier.d.ts → getCacheIdentifier.d.ts} +3 -3
  121. package/dist/getCacheIdentifier.js +24 -0
  122. package/dist/{types/getEntryOptions.d.ts → getEntryOptions.d.ts} +1 -1
  123. package/dist/getEntryOptions.js +26 -0
  124. package/dist/{types/getPackageManager.d.ts → getPackageManager.d.ts} +1 -1
  125. package/dist/getPackageManager.js +47 -0
  126. package/dist/{types/getPort.d.ts → getPort.d.ts} +1 -1
  127. package/dist/getPort.js +62 -0
  128. package/dist/getServerConfig.d.ts +1 -0
  129. package/dist/getServerConfig.js +39 -0
  130. package/dist/{types/import.d.ts → import.d.ts} +2 -2
  131. package/dist/import.js +10 -0
  132. package/dist/{types/index.d.ts → index.d.ts} +5 -4
  133. package/dist/index.js +46 -0
  134. package/dist/{types/is → is}/index.d.ts +1 -4
  135. package/dist/is/index.js +82 -0
  136. package/dist/{types/is → is}/node-env.d.ts +1 -1
  137. package/dist/is/node-env.js +12 -0
  138. package/dist/is/platform.d.ts +2 -0
  139. package/dist/is/platform.js +10 -0
  140. package/dist/{types/is → is}/type.d.ts +1 -1
  141. package/dist/is/type.js +38 -0
  142. package/dist/logger.d.ts +63 -0
  143. package/dist/logger.js +128 -0
  144. package/dist/{types/monorepo.d.ts → monorepo.d.ts} +3 -3
  145. package/dist/monorepo.js +80 -0
  146. package/dist/{types/nodeEnv.d.ts → nodeEnv.d.ts} +1 -1
  147. package/dist/nodeEnv.js +49 -0
  148. package/dist/{types/path.d.ts → path.d.ts} +1 -1
  149. package/dist/path.js +14 -0
  150. package/dist/{types/prettyInstructions.d.ts → prettyInstructions.d.ts} +2 -2
  151. package/dist/prettyInstructions.js +64 -0
  152. package/dist/{types/printBuildError.d.ts → printBuildError.d.ts} +1 -1
  153. package/dist/printBuildError.js +43 -0
  154. package/dist/{types/readTsConfig.d.ts → readTsConfig.d.ts} +1 -1
  155. package/dist/readTsConfig.js +19 -0
  156. package/dist/{types/removeSlash.d.ts → removeSlash.d.ts} +1 -1
  157. package/dist/removeSlash.js +9 -0
  158. package/dist/{types/runtimeExports.d.ts → runtimeExports.d.ts} +3 -3
  159. package/dist/runtimeExports.js +53 -0
  160. package/dist/ssrHelpers.d.ts +4 -0
  161. package/dist/ssrHelpers.js +7 -0
  162. package/dist/storage.d.ts +5 -0
  163. package/dist/storage.js +61 -0
  164. package/dist/{types/wait.d.ts → wait.d.ts} +1 -1
  165. package/dist/wait.js +7 -0
  166. package/dist/{types/watch.d.ts → watch.d.ts} +4 -4
  167. package/dist/watch.js +64 -0
  168. package/package.json +55 -37
  169. package/tsconfig.json +3 -5
  170. package/dist/js/modern/FileSizeReporter.js +0 -156
  171. package/dist/js/modern/alias.js +0 -74
  172. package/dist/js/modern/applyOptionsChain.js +0 -27
  173. package/dist/js/modern/chalk.js +0 -2
  174. package/dist/js/modern/clearConsole.js +0 -5
  175. package/dist/js/modern/compatRequire.js +0 -26
  176. package/dist/js/modern/constants.js +0 -333
  177. package/dist/js/modern/emptyDir.js +0 -6
  178. package/dist/js/modern/ensureAbsolutePath.js +0 -9
  179. package/dist/js/modern/findExists.js +0 -16
  180. package/dist/js/modern/format.js +0 -137
  181. package/dist/js/modern/generateMetaTags.js +0 -49
  182. package/dist/js/modern/getBrowserslist.js +0 -5
  183. package/dist/js/modern/getCacheIdentifier.js +0 -20
  184. package/dist/js/modern/getEntryOptions.js +0 -24
  185. package/dist/js/modern/getPackageManager.js +0 -37
  186. package/dist/js/modern/getPort.js +0 -52
  187. package/dist/js/modern/import.js +0 -11
  188. package/dist/js/modern/index.js +0 -34
  189. package/dist/js/modern/is/index.js +0 -77
  190. package/dist/js/modern/is/node-env.js +0 -5
  191. package/dist/js/modern/is/platform.js +0 -2
  192. package/dist/js/modern/is/type.js +0 -25
  193. package/dist/js/modern/logger.js +0 -152
  194. package/dist/js/modern/monorepo.js +0 -84
  195. package/dist/js/modern/nodeEnv.js +0 -31
  196. package/dist/js/modern/path.js +0 -5
  197. package/dist/js/modern/pkgUp.js +0 -2
  198. package/dist/js/modern/prettyInstructions.js +0 -79
  199. package/dist/js/modern/printBuildError.js +0 -40
  200. package/dist/js/modern/readTsConfig.js +0 -13
  201. package/dist/js/modern/removeSlash.js +0 -3
  202. package/dist/js/modern/runtimeExports.js +0 -52
  203. package/dist/js/modern/wait.js +0 -5
  204. package/dist/js/modern/watch.js +0 -43
  205. package/dist/js/node/FileSizeReporter.js +0 -175
  206. package/dist/js/node/alias.js +0 -97
  207. package/dist/js/node/applyOptionsChain.js +0 -37
  208. package/dist/js/node/chalk.js +0 -15
  209. package/dist/js/node/clearConsole.js +0 -14
  210. package/dist/js/node/compatRequire.js +0 -41
  211. package/dist/js/node/constants.js +0 -353
  212. package/dist/js/node/debug.js +0 -19
  213. package/dist/js/node/emptyDir.js +0 -18
  214. package/dist/js/node/ensureAbsolutePath.js +0 -20
  215. package/dist/js/node/findExists.js +0 -27
  216. package/dist/js/node/format.js +0 -141
  217. package/dist/js/node/generateMetaTags.js +0 -58
  218. package/dist/js/node/getBrowserslist.js +0 -17
  219. package/dist/js/node/getCacheIdentifier.js +0 -27
  220. package/dist/js/node/getEntryOptions.js +0 -35
  221. package/dist/js/node/getPackageManager.js +0 -51
  222. package/dist/js/node/getPort.js +0 -67
  223. package/dist/js/node/import.js +0 -19
  224. package/dist/js/node/index.js +0 -465
  225. package/dist/js/node/is/index.js +0 -150
  226. package/dist/js/node/is/node-env.js +0 -23
  227. package/dist/js/node/is/platform.js +0 -14
  228. package/dist/js/node/is/type.js +0 -46
  229. package/dist/js/node/logger.js +0 -162
  230. package/dist/js/node/monorepo.js +0 -118
  231. package/dist/js/node/nodeEnv.js +0 -45
  232. package/dist/js/node/path.js +0 -24
  233. package/dist/js/node/pkgUp.js +0 -15
  234. package/dist/js/node/prettyInstructions.js +0 -95
  235. package/dist/js/node/printBuildError.js +0 -52
  236. package/dist/js/node/readTsConfig.js +0 -28
  237. package/dist/js/node/removeSlash.js +0 -18
  238. package/dist/js/node/runtimeExports.js +0 -68
  239. package/dist/js/node/wait.js +0 -12
  240. package/dist/js/node/watch.js +0 -61
  241. package/dist/js/treeshaking/FileSizeReporter.js +0 -185
  242. package/dist/js/treeshaking/alias.js +0 -72
  243. package/dist/js/treeshaking/applyOptionsChain.js +0 -31
  244. package/dist/js/treeshaking/chalk.js +0 -2
  245. package/dist/js/treeshaking/clearConsole.js +0 -5
  246. package/dist/js/treeshaking/compatRequire.js +0 -29
  247. package/dist/js/treeshaking/constants.js +0 -333
  248. package/dist/js/treeshaking/debug.js +0 -10
  249. package/dist/js/treeshaking/emptyDir.js +0 -37
  250. package/dist/js/treeshaking/ensureAbsolutePath.js +0 -11
  251. package/dist/js/treeshaking/findExists.js +0 -33
  252. package/dist/js/treeshaking/format.js +0 -167
  253. package/dist/js/treeshaking/generateMetaTags.js +0 -55
  254. package/dist/js/treeshaking/getBrowserslist.js +0 -7
  255. package/dist/js/treeshaking/getCacheIdentifier.js +0 -35
  256. package/dist/js/treeshaking/getEntryOptions.js +0 -26
  257. package/dist/js/treeshaking/getPackageManager.js +0 -101
  258. package/dist/js/treeshaking/getPort.js +0 -103
  259. package/dist/js/treeshaking/import.js +0 -11
  260. package/dist/js/treeshaking/index.js +0 -34
  261. package/dist/js/treeshaking/is/index.js +0 -81
  262. package/dist/js/treeshaking/is/node-env.js +0 -13
  263. package/dist/js/treeshaking/is/platform.js +0 -6
  264. package/dist/js/treeshaking/is/type.js +0 -27
  265. package/dist/js/treeshaking/logger.js +0 -188
  266. package/dist/js/treeshaking/monorepo.js +0 -95
  267. package/dist/js/treeshaking/nodeEnv.js +0 -108
  268. package/dist/js/treeshaking/path.js +0 -11
  269. package/dist/js/treeshaking/pkgUp.js +0 -2
  270. package/dist/js/treeshaking/prettyInstructions.js +0 -100
  271. package/dist/js/treeshaking/printBuildError.js +0 -40
  272. package/dist/js/treeshaking/readTsConfig.js +0 -13
  273. package/dist/js/treeshaking/removeSlash.js +0 -9
  274. package/dist/js/treeshaking/runtimeExports.js +0 -61
  275. package/dist/js/treeshaking/wait.js +0 -8
  276. package/dist/js/treeshaking/watch.js +0 -112
  277. package/dist/types/applyOptionsChain.d.ts +0 -6
  278. package/dist/types/chalk.d.ts +0 -2
  279. package/dist/types/clearConsole.d.ts +0 -1
  280. package/dist/types/constants.d.ts +0 -219
  281. package/dist/types/debug.d.ts +0 -8
  282. package/dist/types/emptyDir.d.ts +0 -1
  283. package/dist/types/is/platform.d.ts +0 -2
  284. package/dist/types/logger.d.ts +0 -63
  285. package/dist/types/pkgUp.d.ts +0 -2
  286. package/tests/.eslintrc.js +0 -6
  287. package/tests/__snapshots__/prettyInstructions.test.ts.snap +0 -19
  288. package/tests/applyOptionsChain.test.ts +0 -100
  289. package/tests/compatRequire.test.ts +0 -32
  290. package/tests/debug.test.ts +0 -25
  291. package/tests/ensureAbsolutePath.test.ts +0 -16
  292. package/tests/findExists.test.ts +0 -22
  293. package/tests/fixtures/browserlist/develop/package.json +0 -11
  294. package/tests/fixtures/browserlist/dotfile/.browserslistrc +0 -3
  295. package/tests/fixtures/browserlist/pkg/package.json +0 -7
  296. package/tests/fixtures/compat-require/cjs.js +0 -1
  297. package/tests/fixtures/compat-require/empty.js +0 -1
  298. package/tests/fixtures/compat-require/esm.js +0 -5
  299. package/tests/fixtures/compat-require/foo.js +0 -3
  300. package/tests/fixtures/file-exists/a.ejs +0 -0
  301. package/tests/fixtures/file-exists/a.js/.gitkeep +0 -0
  302. package/tests/fixtures/file-exists/a.mjs +0 -0
  303. package/tests/fixtures/file-exists/a.ts +0 -0
  304. package/tests/format.test.ts +0 -60
  305. package/tests/generateMetaTags.test.ts +0 -19
  306. package/tests/getBrowserslist.test.ts +0 -32
  307. package/tests/getCacheIdentifier.test.ts +0 -37
  308. package/tests/getEntryOptions.test.ts +0 -53
  309. package/tests/index.test.ts +0 -18
  310. package/tests/is.test.ts +0 -27
  311. package/tests/isPlatform.test.ts +0 -19
  312. package/tests/isType.test.ts +0 -85
  313. package/tests/logger.test.ts +0 -53
  314. package/tests/prettyInstructions.test.ts +0 -139
  315. package/tests/removeSlash.test.ts +0 -19
  316. package/tests/tsconfig.json +0 -11
  317. package/tests/wait.ts +0 -38
package/package.json CHANGED
@@ -11,71 +11,88 @@
11
11
  "modern",
12
12
  "modern.js"
13
13
  ],
14
- "version": "1.3.7",
14
+ "version": "1.5.0",
15
15
  "jsnext:source": "./src/index.ts",
16
- "types": "./dist/types/index.d.ts",
17
- "main": "./dist/js/node/index.js",
18
- "module": "./dist/js/treeshaking/index.js",
19
- "jsnext:modern": "./dist/js/modern/index.js",
16
+ "types": "./dist/index.d.ts",
17
+ "main": "./dist/index.js",
18
+ "module": "./dist/index.js",
19
+ "jsnext:modern": "./dist/index.js",
20
20
  "exports": {
21
21
  ".": {
22
- "node": {
23
- "jsnext:source": "./src/index.ts",
24
- "import": "./dist/js/modern/index.js",
25
- "require": "./dist/js/node/index.js"
26
- },
27
- "default": "./dist/js/treeshaking/index.js"
22
+ "jsnext:source": "./src/index.ts",
23
+ "default": "./dist/index.js"
28
24
  },
29
25
  "./format": {
30
26
  "jsnext:source": "./src/format.ts",
31
- "default": "./dist/js/treeshaking/format.js"
27
+ "default": "./dist/format.js"
32
28
  },
33
29
  "./constants": {
34
30
  "jsnext:source": "./src/constants.ts",
35
- "default": "./dist/js/treeshaking/constants.js"
31
+ "default": "./dist/constants.js"
32
+ },
33
+ "./lodash": {
34
+ "jsnext:source": "./compiled/lodash/index.js",
35
+ "default": "./compiled/lodash/index.js"
36
+ },
37
+ "./strip-ansi": {
38
+ "jsnext:source": "./compiled/strip-ansi/index.js",
39
+ "default": "./compiled/strip-ansi/index.js"
36
40
  }
37
41
  },
38
42
  "typesVersions": {
39
43
  "*": {
40
44
  "format": [
41
- "./dist/types/format.d.ts"
45
+ "./dist/format.d.ts"
42
46
  ],
43
47
  "constants": [
44
- "./dist/types/constants.d.ts"
48
+ "./dist/constants.d.ts"
49
+ ],
50
+ "lodash": [
51
+ "./compiled/lodash/index.d.ts"
52
+ ],
53
+ "strip-ansi": [
54
+ "./compiled/strip-ansi/index.d.ts"
45
55
  ]
46
56
  }
47
57
  },
48
58
  "dependencies": {
49
59
  "@babel/runtime": "^7",
50
- "@types/fs-extra": "^9.0.12",
51
- "browserslist": "^4.16.7",
52
- "chalk": "^4.1.2",
53
- "chokidar": "^3.5.2",
54
- "debug": "^4.3.2",
55
- "execa": "5",
56
- "filesize": "^7.0.0",
57
- "fs-extra": "^10.0.0",
58
- "glob": "^7.1.7",
59
- "gzip-size": "^6.0.0",
60
- "import-lazy": "^4.0.0",
61
- "pkg-up": "^3.1.0",
62
- "recursive-readdir": "^2.2.2",
63
- "strip-ansi": "6.0.0",
64
- "typescript": "^4",
65
- "upath": "^2.0.1",
66
- "yaml": "^1.10.2"
60
+ "minimist": "^1.2.0",
61
+ "typescript": "^4"
67
62
  },
68
63
  "devDependencies": {
69
- "@modern-js/types": "^1.3.6",
64
+ "@modern-js/types": "^1.5.0",
70
65
  "@scripts/build": "0.0.0",
71
66
  "@scripts/jest-config": "0.0.0",
72
- "@types/debug": "^4.1.7",
73
- "@types/fs-extra": "^9.0.12",
67
+ "@types/debug": "4.1.7",
68
+ "@types/fs-extra": "9.0.13",
74
69
  "@types/glob": "^7.1.4",
75
70
  "@types/jest": "^26",
71
+ "@types/js-yaml": "4.0.5",
72
+ "@types/lodash": "4.14.181",
73
+ "@types/minimist": "^1.2.2",
76
74
  "@types/node": "^14",
77
- "@types/recursive-readdir": "^2.2.0",
75
+ "@types/recursive-readdir": "2.2.0",
76
+ "@types/signale": "1.4.4",
77
+ "browserslist": "4.20.2",
78
+ "chalk": "4.1.2",
79
+ "chokidar": "3.5.3",
80
+ "commander": "8.3.0",
81
+ "debug": "4.3.4",
82
+ "execa": "5.1.1",
83
+ "filesize": "8.0.7",
84
+ "fs-extra": "10.0.1",
85
+ "glob": "7.2.0",
86
+ "gzip-size": "6.0.0",
87
+ "import-lazy": "4.0.0",
78
88
  "jest": "^27",
89
+ "js-yaml": "4.1.0",
90
+ "lodash": "4.17.21",
91
+ "pkg-up": "3.1.0",
92
+ "recursive-readdir": "2.2.2",
93
+ "signale": "1.4.0",
94
+ "strip-ansi": "6.0.1",
95
+ "upath": "2.0.1",
79
96
  "webpack": "^5.71.0"
80
97
  },
81
98
  "sideEffects": false,
@@ -85,7 +102,8 @@
85
102
  },
86
103
  "scripts": {
87
104
  "new": "modern new",
88
- "build": "modern build",
105
+ "dev": "tsc --watch",
106
+ "build": "tsc",
89
107
  "test": "jest --passWithNoTests"
90
108
  },
91
109
  "readme": "\n<p align=\"center\">\n <a href=\"https://modernjs.dev\" target=\"blank\"><img src=\"https://lf3-static.bytednsdoc.com/obj/eden-cn/ylaelkeh7nuhfnuhf/modernjs-cover.png\" width=\"300\" alt=\"Modern.js Logo\" /></a>\n</p>\n<p align=\"center\">\n现代 Web 工程体系\n <br/>\n <a href=\"https://modernjs.dev\" target=\"blank\">\n modernjs.dev\n </a>\n</p>\n<p align=\"center\">\n The meta-framework suite designed from scratch for frontend-focused modern web development\n</p>\n\n# Introduction\n\n> The doc site ([modernjs.dev](https://modernjs.dev)) and articles are only available in Chinese for now, we are planning to add English versions soon.\n\n- [Modern.js: Hello, World!](https://zhuanlan.zhihu.com/p/426707646)\n\n## Getting Started\n\n- [Quick Start](https://modernjs.dev/docs/start)\n- [Guides](https://modernjs.dev/docs/guides)\n- [API References](https://modernjs.dev/docs/apis)\n\n## Contributing\n\n- [Contributing Guide](https://github.com/modern-js-dev/modern.js/blob/main/CONTRIBUTING.md)\n"
package/tsconfig.json CHANGED
@@ -1,12 +1,10 @@
1
1
  {
2
2
  "extends": "@modern-js/tsconfig/base",
3
3
  "compilerOptions": {
4
- "declaration": false,
5
- "allowJs": true,
6
- "jsx": "preserve",
4
+ "declaration": true,
5
+ "outDir": "./dist",
7
6
  "baseUrl": "./",
8
- "isolatedModules": true,
9
- "paths": {}
7
+ "isolatedModules": true
10
8
  },
11
9
  "include": ["src"]
12
10
  }
@@ -1,156 +0,0 @@
1
- /* eslint-disable eslint-comments/no-unlimited-disable */
2
-
3
- /* eslint-disable */
4
-
5
- /**
6
- * Copyright (c) 2015-present, Facebook, Inc.
7
- *
8
- * This source code is licensed under the MIT license found in the
9
- * LICENSE file at
10
- * https://github.com/facebook/create-react-app/blob/master/LICENSE
11
- */
12
- // Modified by Chao Xu (xuchaobei)
13
- 'use strict';
14
-
15
- import fs from 'fs';
16
- import path from 'path';
17
- import chalk from 'chalk';
18
- import filesize from 'filesize';
19
- import recursive from 'recursive-readdir';
20
- import stripAnsi from 'strip-ansi';
21
- import gzipSize from 'gzip-size';
22
- import { logger } from "./logger";
23
-
24
- function canReadAsset(asset) {
25
- return /\.(js|css)$/.test(asset) && !/service-worker\.js/.test(asset) && !/precache-manifest\.[0-9a-f]+\.js/.test(asset);
26
- } // Prints a detailed summary of build files.
27
-
28
-
29
- function printFileSizesAfterBuild(webpackStats, previousSizeMap, buildFolder, maxBundleGzipSize, maxChunkGzipSize) {
30
- var root = previousSizeMap.root;
31
- var sizes = previousSizeMap.sizes;
32
- var assets = (webpackStats.stats || [webpackStats]).map(stats => stats.toJson({
33
- all: false,
34
- assets: true
35
- }).assets.filter(asset => canReadAsset(asset.name)).map(asset => {
36
- var fileContents = fs.readFileSync(path.join(root, asset.name));
37
- var size = fileContents.length;
38
- var gzippedSize = gzipSize.sync(fileContents);
39
- var [previousSize, previousGzipSize] = sizes[removeFileNameHash(root, asset.name)] || [];
40
- var sizeDifference = getDifferenceLabel(size, previousSize);
41
- var gzipSizeDifference = getDifferenceLabel(gzippedSize, previousGzipSize);
42
- return {
43
- folder: path.join(path.basename(buildFolder), path.dirname(asset.name)),
44
- name: path.basename(asset.name),
45
- gzippedSize: gzippedSize,
46
- sizeLabel: filesize(size) + (sizeDifference ? ' (' + sizeDifference + ')' : ''),
47
- gzipSizeLabel: filesize(gzippedSize) + (gzipSizeDifference ? ' (' + gzipSizeDifference + ')' : '')
48
- };
49
- })).reduce((single, all) => all.concat(single), []);
50
- assets.sort((a, b) => b.size - a.size);
51
- var longestSizeLabelLength = Math.max.apply(null, assets.map(a => stripAnsi(a.sizeLabel).length));
52
- var longestFileNameLength = Math.max.apply(null, assets.map(a => stripAnsi(a.folder + path.sep + a.name).length));
53
- printFileSizesHeader(longestFileNameLength, longestSizeLabelLength);
54
- var suggestBundleSplitting = false;
55
- assets.forEach(asset => {
56
- var {
57
- folder,
58
- name,
59
- sizeLabel,
60
- gzipSizeLabel,
61
- gzippedSize
62
- } = asset;
63
- var fileNameLength = stripAnsi(folder + path.sep + name).length;
64
- var sizeLength = stripAnsi(sizeLabel).length;
65
-
66
- if (sizeLength < longestSizeLabelLength) {
67
- var rightPadding = ' '.repeat(longestSizeLabelLength - sizeLength);
68
- sizeLabel += rightPadding;
69
- }
70
-
71
- var fileNameLabel = chalk.dim(asset.folder + path.sep) + chalk.cyan(asset.name);
72
-
73
- if (fileNameLength < longestFileNameLength) {
74
- var rightPadding = ' '.repeat(longestFileNameLength - fileNameLength);
75
- fileNameLabel += rightPadding;
76
- }
77
-
78
- var isMainBundle = asset.name.indexOf('main.') === 0;
79
- var maxRecommendedSize = isMainBundle ? maxBundleGzipSize : maxChunkGzipSize;
80
- var isLarge = maxRecommendedSize && gzippedSize > maxRecommendedSize;
81
-
82
- if (isLarge && path.extname(asset.name) === '.js') {
83
- suggestBundleSplitting = true;
84
- }
85
-
86
- logger.log(' ' + fileNameLabel + ' ' + sizeLabel + ' ' + (isLarge ? chalk.yellow(gzipSizeLabel) : gzipSizeLabel));
87
- });
88
-
89
- if (suggestBundleSplitting) {
90
- logger.log();
91
- logger.warn('The bundle size is significantly larger than recommended.');
92
- }
93
- }
94
-
95
- function printFileSizesHeader(longestFileNameLength, longestSizeLabelLength) {
96
- const longestLengths = [longestFileNameLength, longestSizeLabelLength];
97
- const headerRow = ['File', 'Size', 'Gzipped'].reduce((prev, cur, index) => {
98
- const length = longestLengths[index];
99
- let curLabel = cur;
100
-
101
- if (length) {
102
- curLabel = cur.length < length ? cur + ' '.repeat(length - cur.length) : cur;
103
- }
104
-
105
- return prev + curLabel + ' ';
106
- }, ' ');
107
- logger.log(chalk.bold(chalk.blue(headerRow)));
108
- }
109
-
110
- function removeFileNameHash(buildFolder, fileName) {
111
- return fileName.replace(buildFolder, '').replace(/\\/g, '/').replace(/\/?(.*)(\.[0-9a-f]+)(\.chunk)?(\.js|\.css)/, (match, p1, p2, p3, p4) => p1 + p4);
112
- } // Input: 1024, 2048
113
- // Output: "(+1 KB)"
114
-
115
-
116
- function getDifferenceLabel(currentSize, previousSize) {
117
- var FIFTY_KILOBYTES = 1024 * 50;
118
- var difference = currentSize - previousSize;
119
- var fileSize = !Number.isNaN(difference) ? filesize(difference) : 0;
120
-
121
- if (difference >= FIFTY_KILOBYTES) {
122
- return chalk.red('+' + fileSize);
123
- } else if (difference < FIFTY_KILOBYTES && difference > 0) {
124
- return chalk.yellow('+' + fileSize);
125
- } else if (difference < 0) {
126
- return chalk.green(fileSize);
127
- } else {
128
- return '';
129
- }
130
- }
131
-
132
- function measureFileSizesBeforeBuild(buildFolder) {
133
- return new Promise(resolve => {
134
- recursive(buildFolder, (err, fileNames) => {
135
- var sizes;
136
-
137
- if (!err && fileNames) {
138
- sizes = fileNames.filter(canReadAsset).reduce((memo, fileName) => {
139
- var contents = fs.readFileSync(fileName);
140
- var key = removeFileNameHash(buildFolder, fileName); // save both the original size and gzip size
141
-
142
- memo[key] = [contents.length, gzipSize.sync(contents)];
143
- return memo;
144
- }, {});
145
- }
146
-
147
- resolve({
148
- root: buildFolder,
149
- sizes: sizes || {}
150
- });
151
- });
152
- });
153
- }
154
-
155
- export { measureFileSizesBeforeBuild, printFileSizesAfterBuild };
156
- /* eslint-enable */
@@ -1,74 +0,0 @@
1
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
2
-
3
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
4
-
5
- function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
6
-
7
- import fs from 'fs';
8
- import path from 'path';
9
- import chalk from 'chalk';
10
- import { readTsConfigByFile } from "./readTsConfig";
11
- import { applyOptionsChain } from "./applyOptionsChain";
12
- export const validAlias = (modernConfig, {
13
- tsconfigPath
14
- }) => {
15
- const {
16
- source: {
17
- alias
18
- }
19
- } = modernConfig;
20
-
21
- if (!alias) {
22
- return null;
23
- }
24
-
25
- const isTsProject = fs.existsSync(tsconfigPath);
26
-
27
- if (!isTsProject) {
28
- return null;
29
- }
30
-
31
- const userAlias = getUserAlias(alias);
32
-
33
- if (Object.keys(userAlias).length > 0) {
34
- return chalk.red('Note: Please use `compilerOptions.paths` in "tsconfig.json" file replace `source.alias` config in "modern.config.js/ts" when project is typescript');
35
- }
36
-
37
- return null;
38
- };
39
- export const getAlias = (aliasOption, option) => {
40
- const isTsProject = fs.existsSync(option.tsconfigPath);
41
- let aliasConfig;
42
-
43
- if (!isTsProject) {
44
- aliasConfig = {
45
- absoluteBaseUrl: option.appDirectory,
46
- paths: applyOptionsChain({
47
- '@': ['./src']
48
- }, aliasOption),
49
- isTsPath: false,
50
- isTsProject
51
- };
52
- } else {
53
- var _tsconfig$compilerOpt, _tsconfig$compilerOpt2;
54
-
55
- const tsconfig = readTsConfigByFile(option.tsconfigPath);
56
- const baseUrl = tsconfig === null || tsconfig === void 0 ? void 0 : (_tsconfig$compilerOpt = tsconfig.compilerOptions) === null || _tsconfig$compilerOpt === void 0 ? void 0 : _tsconfig$compilerOpt.baseUrl;
57
- aliasConfig = {
58
- absoluteBaseUrl: baseUrl ? path.join(option.appDirectory, baseUrl) : option.appDirectory,
59
- paths: _objectSpread(_objectSpread({}, aliasOption || {}), tsconfig === null || tsconfig === void 0 ? void 0 : (_tsconfig$compilerOpt2 = tsconfig.compilerOptions) === null || _tsconfig$compilerOpt2 === void 0 ? void 0 : _tsconfig$compilerOpt2.paths),
60
- isTsPath: true,
61
- isTsProject
62
- };
63
- }
64
-
65
- return aliasConfig;
66
- }; // filter invalid ts paths that are not array
67
-
68
- export const getUserAlias = (alias = {}) => Object.keys(alias).reduce((o, k) => {
69
- if (Array.isArray(alias[k])) {
70
- o[k] = alias[k];
71
- }
72
-
73
- return o;
74
- }, {});
@@ -1,27 +0,0 @@
1
- // eslint-disable-next-line import/no-useless-path-segments
2
- import { isFunction, logger, isPlainObject } from "./index";
3
- export const applyOptionsChain = (defaults, options, utils, mergeFn = Object.assign) => {
4
- if (!options) {
5
- return defaults;
6
- }
7
-
8
- if (isPlainObject(options)) {
9
- return mergeFn(defaults, options);
10
- } else if (isFunction(options)) {
11
- const ret = options(defaults, utils);
12
-
13
- if (ret) {
14
- if (!isPlainObject(ret)) {
15
- logger.warn(`${options.name}: Function should mutate the config and return nothing, Or return a cloned or merged version of config object.`);
16
- }
17
-
18
- return ret;
19
- }
20
- } else if (Array.isArray(options)) {
21
- return options.reduce((memo, cur) => applyOptionsChain(memo, cur, utils, mergeFn), defaults);
22
- } else {
23
- throw new Error(`applyOptionsChain error:\ndefault options is: ${JSON.stringify(defaults)}`);
24
- }
25
-
26
- return defaults;
27
- };
@@ -1,2 +0,0 @@
1
- import chalk from 'chalk';
2
- export { chalk };
@@ -1,5 +0,0 @@
1
- export const clearConsole = () => {
2
- if (process.stdout.isTTY && !process.env.DEBUG) {
3
- process.stdout.write('\x1B[H\x1B[2J');
4
- }
5
- };
@@ -1,26 +0,0 @@
1
- import { findExists } from "./findExists";
2
- /**
3
- * Require function compatible with esm and cjs module.
4
- * @param filePath - File to required.
5
- * @returns module export object.
6
- */
7
-
8
- export const compatRequire = filePath => {
9
- const mod = require(filePath);
10
-
11
- return mod !== null && mod !== void 0 && mod.__esModule ? mod.default : mod;
12
- };
13
- export const requireExistModule = (filename, extensions = ['.ts', '.js']) => {
14
- const exist = findExists(extensions.map(ext => `${filename}${ext}`));
15
-
16
- if (!exist) {
17
- return null;
18
- }
19
-
20
- return compatRequire(exist);
21
- };
22
- export const cleanRequireCache = filelist => {
23
- filelist.forEach(filepath => {
24
- delete require.cache[filepath];
25
- });
26
- };