@modern-js/utils 1.3.7 → 1.5.0

Sign up to get free protection for your applications and to get access to all the features.
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
@@ -1,5 +0,0 @@
1
- const wait = (time = 0) => new Promise(resolve => {
2
- setTimeout(resolve, time);
3
- });
4
-
5
- export { wait };
@@ -1,43 +0,0 @@
1
- import * as path from 'path';
2
- import { Import } from "./import";
3
- const chokidar = Import.lazy('chokidar', require);
4
- export const WatchChangeType = {
5
- ADD: 'add',
6
- UNLINK: 'unlink',
7
- CHANGE: 'change'
8
- };
9
- export const watch = (watchDir, runTask, ignored = []) => {
10
- let ready = false;
11
- const watcher = chokidar.watch(watchDir, {
12
- ignored
13
- });
14
- watcher.on('ready', () => ready = true);
15
- watcher.on('change', async filePath => {
16
- const changedFilePath = path.resolve(filePath);
17
- await runTask({
18
- changedFilePath,
19
- changeType: WatchChangeType.CHANGE
20
- });
21
- });
22
- watcher.on('add', async filePath => {
23
- const changedFilePath = path.resolve(filePath);
24
-
25
- if (ready) {
26
- await runTask({
27
- changedFilePath,
28
- changeType: WatchChangeType.ADD
29
- });
30
- }
31
- });
32
- watcher.on('unlink', async filePath => {
33
- const changedFilePath = path.resolve(filePath);
34
- await runTask({
35
- changedFilePath,
36
- changeType: WatchChangeType.UNLINK
37
- });
38
- });
39
- watcher.on('error', err => {
40
- throw err;
41
- });
42
- return watcher;
43
- };
@@ -1,175 +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
- Object.defineProperty(exports, "__esModule", {
16
- value: true
17
- });
18
- exports.measureFileSizesBeforeBuild = measureFileSizesBeforeBuild;
19
- exports.printFileSizesAfterBuild = printFileSizesAfterBuild;
20
-
21
- var _fs = _interopRequireDefault(require("fs"));
22
-
23
- var _path = _interopRequireDefault(require("path"));
24
-
25
- var _chalk = _interopRequireDefault(require("chalk"));
26
-
27
- var _filesize = _interopRequireDefault(require("filesize"));
28
-
29
- var _recursiveReaddir = _interopRequireDefault(require("recursive-readdir"));
30
-
31
- var _stripAnsi = _interopRequireDefault(require("strip-ansi"));
32
-
33
- var _gzipSize = _interopRequireDefault(require("gzip-size"));
34
-
35
- var _logger = require("./logger");
36
-
37
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
38
-
39
- function canReadAsset(asset) {
40
- return /\.(js|css)$/.test(asset) && !/service-worker\.js/.test(asset) && !/precache-manifest\.[0-9a-f]+\.js/.test(asset);
41
- } // Prints a detailed summary of build files.
42
-
43
-
44
- function printFileSizesAfterBuild(webpackStats, previousSizeMap, buildFolder, maxBundleGzipSize, maxChunkGzipSize) {
45
- var root = previousSizeMap.root;
46
- var sizes = previousSizeMap.sizes;
47
- var assets = (webpackStats.stats || [webpackStats]).map(stats => stats.toJson({
48
- all: false,
49
- assets: true
50
- }).assets.filter(asset => canReadAsset(asset.name)).map(asset => {
51
- var fileContents = _fs.default.readFileSync(_path.default.join(root, asset.name));
52
-
53
- var size = fileContents.length;
54
-
55
- var gzippedSize = _gzipSize.default.sync(fileContents);
56
-
57
- var [previousSize, previousGzipSize] = sizes[removeFileNameHash(root, asset.name)] || [];
58
- var sizeDifference = getDifferenceLabel(size, previousSize);
59
- var gzipSizeDifference = getDifferenceLabel(gzippedSize, previousGzipSize);
60
- return {
61
- folder: _path.default.join(_path.default.basename(buildFolder), _path.default.dirname(asset.name)),
62
- name: _path.default.basename(asset.name),
63
- gzippedSize: gzippedSize,
64
- sizeLabel: (0, _filesize.default)(size) + (sizeDifference ? ' (' + sizeDifference + ')' : ''),
65
- gzipSizeLabel: (0, _filesize.default)(gzippedSize) + (gzipSizeDifference ? ' (' + gzipSizeDifference + ')' : '')
66
- };
67
- })).reduce((single, all) => all.concat(single), []);
68
- assets.sort((a, b) => b.size - a.size);
69
- var longestSizeLabelLength = Math.max.apply(null, assets.map(a => (0, _stripAnsi.default)(a.sizeLabel).length));
70
- var longestFileNameLength = Math.max.apply(null, assets.map(a => (0, _stripAnsi.default)(a.folder + _path.default.sep + a.name).length));
71
- printFileSizesHeader(longestFileNameLength, longestSizeLabelLength);
72
- var suggestBundleSplitting = false;
73
- assets.forEach(asset => {
74
- var {
75
- folder,
76
- name,
77
- sizeLabel,
78
- gzipSizeLabel,
79
- gzippedSize
80
- } = asset;
81
- var fileNameLength = (0, _stripAnsi.default)(folder + _path.default.sep + name).length;
82
- var sizeLength = (0, _stripAnsi.default)(sizeLabel).length;
83
-
84
- if (sizeLength < longestSizeLabelLength) {
85
- var rightPadding = ' '.repeat(longestSizeLabelLength - sizeLength);
86
- sizeLabel += rightPadding;
87
- }
88
-
89
- var fileNameLabel = _chalk.default.dim(asset.folder + _path.default.sep) + _chalk.default.cyan(asset.name);
90
-
91
- if (fileNameLength < longestFileNameLength) {
92
- var rightPadding = ' '.repeat(longestFileNameLength - fileNameLength);
93
- fileNameLabel += rightPadding;
94
- }
95
-
96
- var isMainBundle = asset.name.indexOf('main.') === 0;
97
- var maxRecommendedSize = isMainBundle ? maxBundleGzipSize : maxChunkGzipSize;
98
- var isLarge = maxRecommendedSize && gzippedSize > maxRecommendedSize;
99
-
100
- if (isLarge && _path.default.extname(asset.name) === '.js') {
101
- suggestBundleSplitting = true;
102
- }
103
-
104
- _logger.logger.log(' ' + fileNameLabel + ' ' + sizeLabel + ' ' + (isLarge ? _chalk.default.yellow(gzipSizeLabel) : gzipSizeLabel));
105
- });
106
-
107
- if (suggestBundleSplitting) {
108
- _logger.logger.log();
109
-
110
- _logger.logger.warn('The bundle size is significantly larger than recommended.');
111
- }
112
- }
113
-
114
- function printFileSizesHeader(longestFileNameLength, longestSizeLabelLength) {
115
- const longestLengths = [longestFileNameLength, longestSizeLabelLength];
116
- const headerRow = ['File', 'Size', 'Gzipped'].reduce((prev, cur, index) => {
117
- const length = longestLengths[index];
118
- let curLabel = cur;
119
-
120
- if (length) {
121
- curLabel = cur.length < length ? cur + ' '.repeat(length - cur.length) : cur;
122
- }
123
-
124
- return prev + curLabel + ' ';
125
- }, ' ');
126
-
127
- _logger.logger.log(_chalk.default.bold(_chalk.default.blue(headerRow)));
128
- }
129
-
130
- function removeFileNameHash(buildFolder, fileName) {
131
- return fileName.replace(buildFolder, '').replace(/\\/g, '/').replace(/\/?(.*)(\.[0-9a-f]+)(\.chunk)?(\.js|\.css)/, (match, p1, p2, p3, p4) => p1 + p4);
132
- } // Input: 1024, 2048
133
- // Output: "(+1 KB)"
134
-
135
-
136
- function getDifferenceLabel(currentSize, previousSize) {
137
- var FIFTY_KILOBYTES = 1024 * 50;
138
- var difference = currentSize - previousSize;
139
- var fileSize = !Number.isNaN(difference) ? (0, _filesize.default)(difference) : 0;
140
-
141
- if (difference >= FIFTY_KILOBYTES) {
142
- return _chalk.default.red('+' + fileSize);
143
- } else if (difference < FIFTY_KILOBYTES && difference > 0) {
144
- return _chalk.default.yellow('+' + fileSize);
145
- } else if (difference < 0) {
146
- return _chalk.default.green(fileSize);
147
- } else {
148
- return '';
149
- }
150
- }
151
-
152
- function measureFileSizesBeforeBuild(buildFolder) {
153
- return new Promise(resolve => {
154
- (0, _recursiveReaddir.default)(buildFolder, (err, fileNames) => {
155
- var sizes;
156
-
157
- if (!err && fileNames) {
158
- sizes = fileNames.filter(canReadAsset).reduce((memo, fileName) => {
159
- var contents = _fs.default.readFileSync(fileName);
160
-
161
- var key = removeFileNameHash(buildFolder, fileName); // save both the original size and gzip size
162
-
163
- memo[key] = [contents.length, _gzipSize.default.sync(contents)];
164
- return memo;
165
- }, {});
166
- }
167
-
168
- resolve({
169
- root: buildFolder,
170
- sizes: sizes || {}
171
- });
172
- });
173
- });
174
- }
175
- /* eslint-enable */
@@ -1,97 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.validAlias = exports.getUserAlias = exports.getAlias = void 0;
7
-
8
- var _fs = _interopRequireDefault(require("fs"));
9
-
10
- var _path = _interopRequireDefault(require("path"));
11
-
12
- var _chalk = _interopRequireDefault(require("chalk"));
13
-
14
- var _readTsConfig = require("./readTsConfig");
15
-
16
- var _applyOptionsChain = require("./applyOptionsChain");
17
-
18
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
19
-
20
- 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; }
21
-
22
- 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; }
23
-
24
- 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; }
25
-
26
- const validAlias = (modernConfig, {
27
- tsconfigPath
28
- }) => {
29
- const {
30
- source: {
31
- alias
32
- }
33
- } = modernConfig;
34
-
35
- if (!alias) {
36
- return null;
37
- }
38
-
39
- const isTsProject = _fs.default.existsSync(tsconfigPath);
40
-
41
- if (!isTsProject) {
42
- return null;
43
- }
44
-
45
- const userAlias = getUserAlias(alias);
46
-
47
- if (Object.keys(userAlias).length > 0) {
48
- return _chalk.default.red('Note: Please use `compilerOptions.paths` in "tsconfig.json" file replace `source.alias` config in "modern.config.js/ts" when project is typescript');
49
- }
50
-
51
- return null;
52
- };
53
-
54
- exports.validAlias = validAlias;
55
-
56
- const getAlias = (aliasOption, option) => {
57
- const isTsProject = _fs.default.existsSync(option.tsconfigPath);
58
-
59
- let aliasConfig;
60
-
61
- if (!isTsProject) {
62
- aliasConfig = {
63
- absoluteBaseUrl: option.appDirectory,
64
- paths: (0, _applyOptionsChain.applyOptionsChain)({
65
- '@': ['./src']
66
- }, aliasOption),
67
- isTsPath: false,
68
- isTsProject
69
- };
70
- } else {
71
- var _tsconfig$compilerOpt, _tsconfig$compilerOpt2;
72
-
73
- const tsconfig = (0, _readTsConfig.readTsConfigByFile)(option.tsconfigPath);
74
- const baseUrl = tsconfig === null || tsconfig === void 0 ? void 0 : (_tsconfig$compilerOpt = tsconfig.compilerOptions) === null || _tsconfig$compilerOpt === void 0 ? void 0 : _tsconfig$compilerOpt.baseUrl;
75
- aliasConfig = {
76
- absoluteBaseUrl: baseUrl ? _path.default.join(option.appDirectory, baseUrl) : option.appDirectory,
77
- 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),
78
- isTsPath: true,
79
- isTsProject
80
- };
81
- }
82
-
83
- return aliasConfig;
84
- }; // filter invalid ts paths that are not array
85
-
86
-
87
- exports.getAlias = getAlias;
88
-
89
- const getUserAlias = (alias = {}) => Object.keys(alias).reduce((o, k) => {
90
- if (Array.isArray(alias[k])) {
91
- o[k] = alias[k];
92
- }
93
-
94
- return o;
95
- }, {});
96
-
97
- exports.getUserAlias = getUserAlias;
@@ -1,37 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.applyOptionsChain = void 0;
7
-
8
- var _index = require("./index");
9
-
10
- // eslint-disable-next-line import/no-useless-path-segments
11
- const applyOptionsChain = (defaults, options, utils, mergeFn = Object.assign) => {
12
- if (!options) {
13
- return defaults;
14
- }
15
-
16
- if ((0, _index.isPlainObject)(options)) {
17
- return mergeFn(defaults, options);
18
- } else if ((0, _index.isFunction)(options)) {
19
- const ret = options(defaults, utils);
20
-
21
- if (ret) {
22
- if (!(0, _index.isPlainObject)(ret)) {
23
- _index.logger.warn(`${options.name}: Function should mutate the config and return nothing, Or return a cloned or merged version of config object.`);
24
- }
25
-
26
- return ret;
27
- }
28
- } else if (Array.isArray(options)) {
29
- return options.reduce((memo, cur) => applyOptionsChain(memo, cur, utils, mergeFn), defaults);
30
- } else {
31
- throw new Error(`applyOptionsChain error:\ndefault options is: ${JSON.stringify(defaults)}`);
32
- }
33
-
34
- return defaults;
35
- };
36
-
37
- exports.applyOptionsChain = applyOptionsChain;
@@ -1,15 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- Object.defineProperty(exports, "chalk", {
7
- enumerable: true,
8
- get: function () {
9
- return _chalk.default;
10
- }
11
- });
12
-
13
- var _chalk = _interopRequireDefault(require("chalk"));
14
-
15
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
@@ -1,14 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.clearConsole = void 0;
7
-
8
- const clearConsole = () => {
9
- if (process.stdout.isTTY && !process.env.DEBUG) {
10
- process.stdout.write('\x1B[H\x1B[2J');
11
- }
12
- };
13
-
14
- exports.clearConsole = clearConsole;
@@ -1,41 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.requireExistModule = exports.compatRequire = exports.cleanRequireCache = void 0;
7
-
8
- var _findExists = require("./findExists");
9
-
10
- /**
11
- * Require function compatible with esm and cjs module.
12
- * @param filePath - File to required.
13
- * @returns module export object.
14
- */
15
- const compatRequire = filePath => {
16
- const mod = require(filePath);
17
-
18
- return mod !== null && mod !== void 0 && mod.__esModule ? mod.default : mod;
19
- };
20
-
21
- exports.compatRequire = compatRequire;
22
-
23
- const requireExistModule = (filename, extensions = ['.ts', '.js']) => {
24
- const exist = (0, _findExists.findExists)(extensions.map(ext => `${filename}${ext}`));
25
-
26
- if (!exist) {
27
- return null;
28
- }
29
-
30
- return compatRequire(exist);
31
- };
32
-
33
- exports.requireExistModule = requireExistModule;
34
-
35
- const cleanRequireCache = filelist => {
36
- filelist.forEach(filepath => {
37
- delete require.cache[filepath];
38
- });
39
- };
40
-
41
- exports.cleanRequireCache = cleanRequireCache;