@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
@@ -0,0 +1,80 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.getMonorepoPackages = exports.findMonorepoRoot = exports.isModernjsMonorepo = exports.isMonorepo = exports.isPnpmWorkspaces = exports.isYarnWorkspaces = exports.isLerna = void 0;
7
+ const fs_1 = __importDefault(require("fs"));
8
+ const path_1 = __importDefault(require("path"));
9
+ const compiled_1 = require("./compiled");
10
+ const PACKAGE_MAX_DEPTH = 5;
11
+ const WOKRSPACES_FILES = {
12
+ YARN: 'package.json',
13
+ PNPM: 'pnpm-workspaces.yaml',
14
+ LERNA: 'lerna.json',
15
+ };
16
+ const isLerna = (root) => fs_1.default.existsSync(path_1.default.join(root, WOKRSPACES_FILES.LERNA));
17
+ exports.isLerna = isLerna;
18
+ const isYarnWorkspaces = (root) => {
19
+ var _a;
20
+ const pkg = path_1.default.join(root, WOKRSPACES_FILES.YARN);
21
+ if (!fs_1.default.existsSync(pkg)) {
22
+ return false;
23
+ }
24
+ const json = JSON.parse(fs_1.default.readFileSync(pkg, 'utf8'));
25
+ return Boolean((_a = json.workspaces) === null || _a === void 0 ? void 0 : _a.packages);
26
+ };
27
+ exports.isYarnWorkspaces = isYarnWorkspaces;
28
+ const isPnpmWorkspaces = (root) => fs_1.default.existsSync(path_1.default.join(root, WOKRSPACES_FILES.PNPM));
29
+ exports.isPnpmWorkspaces = isPnpmWorkspaces;
30
+ const isMonorepo = (root) => (0, exports.isLerna)(root) || (0, exports.isYarnWorkspaces)(root) || (0, exports.isPnpmWorkspaces)(root);
31
+ exports.isMonorepo = isMonorepo;
32
+ const isModernjsMonorepo = (root) => {
33
+ const json = JSON.parse(fs_1.default.readFileSync(path_1.default.join(root, 'package.json'), 'utf8'));
34
+ const deps = Object.assign(Object.assign({}, (json.dependencies || {})), (json.devDependencies || {}));
35
+ return Boolean(deps['@modern-js/monorepo-tools']);
36
+ };
37
+ exports.isModernjsMonorepo = isModernjsMonorepo;
38
+ const findMonorepoRoot = (appDirectory, maxDepth = PACKAGE_MAX_DEPTH) => {
39
+ let inMonorepo = false;
40
+ for (let depth = 0; depth < maxDepth; depth++) {
41
+ if ((0, exports.isMonorepo)(appDirectory)) {
42
+ inMonorepo = true;
43
+ break;
44
+ }
45
+ // eslint-disable-next-line no-param-reassign
46
+ appDirectory = path_1.default.dirname(appDirectory);
47
+ }
48
+ return inMonorepo ? appDirectory : undefined;
49
+ };
50
+ exports.findMonorepoRoot = findMonorepoRoot;
51
+ const getMonorepoPackages = (root) => {
52
+ let packages = [];
53
+ if ((0, exports.isYarnWorkspaces)(root)) {
54
+ const json = JSON.parse(fs_1.default.readFileSync(path_1.default.join(root, 'package.json'), 'utf8'));
55
+ ({ packages } = json.workspaces);
56
+ }
57
+ else if ((0, exports.isLerna)(root)) {
58
+ const json = JSON.parse(fs_1.default.readFileSync(path_1.default.resolve(root, 'lerna.json'), 'utf8'));
59
+ ({ packages } = json);
60
+ }
61
+ else {
62
+ ({ packages } = compiled_1.yaml.load(fs_1.default.readFileSync(path_1.default.join(root, WOKRSPACES_FILES.PNPM), 'utf8')));
63
+ }
64
+ if (packages) {
65
+ return packages
66
+ .map(name =>
67
+ // The trailing / ensures only dirs are picked up
68
+ compiled_1.glob.sync(path_1.default.join(root, `${name}/`), {
69
+ ignore: ['**/node_modules/**'],
70
+ }))
71
+ .reduce((acc, val) => acc.concat(val), [])
72
+ .filter(filepath => fs_1.default.existsSync(path_1.default.resolve(filepath, 'package.json')))
73
+ .map(filepath => ({
74
+ path: filepath,
75
+ name: JSON.parse(fs_1.default.readFileSync(path_1.default.resolve(filepath, 'package.json'), 'utf8')).name,
76
+ }));
77
+ }
78
+ return [];
79
+ };
80
+ exports.getMonorepoPackages = getMonorepoPackages;
@@ -1,3 +1,3 @@
1
1
  export declare function canUseNpm(): Promise<boolean>;
2
2
  export declare function canUseYarn(): Promise<boolean>;
3
- export declare function canUsePnpm(): Promise<boolean>;
3
+ export declare function canUsePnpm(): Promise<boolean>;
@@ -0,0 +1,49 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.canUsePnpm = exports.canUseYarn = exports.canUseNpm = void 0;
13
+ const compiled_1 = require("./compiled");
14
+ function canUseNpm() {
15
+ return __awaiter(this, void 0, void 0, function* () {
16
+ try {
17
+ yield (0, compiled_1.execa)('npm', ['--version'], { env: process.env });
18
+ return true;
19
+ }
20
+ catch (e) {
21
+ return false;
22
+ }
23
+ });
24
+ }
25
+ exports.canUseNpm = canUseNpm;
26
+ function canUseYarn() {
27
+ return __awaiter(this, void 0, void 0, function* () {
28
+ try {
29
+ yield (0, compiled_1.execa)('yarn', ['--version'], { env: process.env });
30
+ return true;
31
+ }
32
+ catch (e) {
33
+ return false;
34
+ }
35
+ });
36
+ }
37
+ exports.canUseYarn = canUseYarn;
38
+ function canUsePnpm() {
39
+ return __awaiter(this, void 0, void 0, function* () {
40
+ try {
41
+ yield (0, compiled_1.execa)('pnpm', ['--version'], { env: process.env });
42
+ return true;
43
+ }
44
+ catch (e) {
45
+ return false;
46
+ }
47
+ });
48
+ }
49
+ exports.canUsePnpm = canUsePnpm;
@@ -1,3 +1,3 @@
1
1
  export declare const isRelativePath: (test: string) => boolean;
2
2
  export declare const normalizeOutputPath: (s: string) => string;
3
- export declare const normalizeToPosixPath: (p: string) => string;
3
+ export declare const normalizeToPosixPath: (p: string) => string;
package/dist/path.js ADDED
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.normalizeToPosixPath = exports.normalizeOutputPath = exports.isRelativePath = void 0;
7
+ const path_1 = __importDefault(require("path"));
8
+ const compiled_1 = require("./compiled");
9
+ const isRelativePath = (test) => /^\.\.?($|[\\/])/.test(test);
10
+ exports.isRelativePath = isRelativePath;
11
+ const normalizeOutputPath = (s) => s.replace(/\\/g, '\\\\');
12
+ exports.normalizeOutputPath = normalizeOutputPath;
13
+ const normalizeToPosixPath = (p) => compiled_1.upath.normalizeSafe(path_1.default.normalize(p));
14
+ exports.normalizeToPosixPath = normalizeToPosixPath;
@@ -1,6 +1,6 @@
1
1
  interface EntryPoint {
2
- entryName: string;
2
+ entryName: string;
3
3
  }
4
4
  export declare const isSingleEntry: (entrypoints: EntryPoint[]) => boolean;
5
5
  export declare const prettyInstructions: (appContext: any, config: any) => string;
6
- export {};
6
+ export {};
@@ -0,0 +1,64 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.prettyInstructions = exports.isSingleEntry = void 0;
7
+ const os_1 = __importDefault(require("os"));
8
+ const compiled_1 = require("./compiled");
9
+ const is_1 = require("./is");
10
+ // TODO: remove hard code 'main'
11
+ const isSingleEntry = (entrypoints) => entrypoints.length === 1 && entrypoints[0].entryName === 'main';
12
+ exports.isSingleEntry = isSingleEntry;
13
+ const normalizeUrl = (url) => url.replace(/([^:]\/)\/+/g, '$1');
14
+ const getAddressUrls = (protocol = 'http', port) => {
15
+ const interfaces = os_1.default.networkInterfaces();
16
+ const ipv4Interfaces = [];
17
+ Object.keys(interfaces).forEach(key => {
18
+ interfaces[key].forEach(detail => {
19
+ if (detail.family === 'IPv4') {
20
+ ipv4Interfaces.push(detail);
21
+ }
22
+ });
23
+ });
24
+ return ipv4Interfaces.reduce((memo, detail) => {
25
+ let type = 'Network: ';
26
+ let url = `${protocol}://${detail.address}:${port}`;
27
+ if (detail.address.includes(`localhost`)) {
28
+ type = 'Local: ';
29
+ url = `${protocol}://localhost:${port}`;
30
+ }
31
+ memo.push({ type, url });
32
+ return memo;
33
+ }, []);
34
+ };
35
+ const prettyInstructions = (appContext, config) => {
36
+ const { entrypoints, serverRoutes, port, apiOnly, checkedEntries } = appContext;
37
+ const urls = getAddressUrls(config.dev.https && (0, is_1.isDev)() ? 'https' : 'http', port);
38
+ const routes = !apiOnly
39
+ ? serverRoutes.filter(route => route.entryName)
40
+ : serverRoutes;
41
+ let message = 'App running at:\n\n';
42
+ if ((0, exports.isSingleEntry)(entrypoints) || apiOnly) {
43
+ message += urls
44
+ .map(({ type, url }) => ` ${compiled_1.chalk.bold(`> ${type.padEnd(10)}`)}${compiled_1.chalk.cyanBright(normalizeUrl(`${url}/${routes[0].urlPath}`))}\n`)
45
+ .join('');
46
+ }
47
+ else {
48
+ const maxNameLength = Math.max(...routes.map(r => r.entryName.length));
49
+ urls.forEach(({ type, url }) => {
50
+ message += ` ${compiled_1.chalk.bold(`> ${type}`)}\n`;
51
+ routes.forEach(({ entryName, urlPath, isSSR }) => {
52
+ if (!checkedEntries.includes(entryName)) {
53
+ return;
54
+ }
55
+ message += ` ${compiled_1.chalk.yellowBright(isSSR ? 'λ' : '○')} ${compiled_1.chalk.yellowBright(entryName.padEnd(maxNameLength + 8))}${compiled_1.chalk.cyanBright(normalizeUrl(`${url}/${urlPath}`))}\n`;
56
+ });
57
+ });
58
+ message += '\n';
59
+ message += compiled_1.chalk.cyanBright(' λ (Server) server-side renders at runtime\n');
60
+ message += compiled_1.chalk.cyanBright(' ○ (Static) client-side rendered as static HTML\n');
61
+ }
62
+ return message;
63
+ };
64
+ exports.prettyInstructions = prettyInstructions;
@@ -5,4 +5,4 @@
5
5
  * LICENSE file at
6
6
  * https://github.com/facebook/create-react-app/blob/master/LICENSE
7
7
  */
8
- export declare function printBuildError(err: Error): void;
8
+ export declare function printBuildError(err: Error): void;
@@ -0,0 +1,43 @@
1
+ "use strict";
2
+ /* eslint-disable eslint-comments/no-unlimited-disable */
3
+ /* eslint-disable */
4
+ /**
5
+ * Copyright (c) 2015-present, Facebook, Inc.
6
+ *
7
+ * This source code is licensed under the MIT license found in the
8
+ * LICENSE file at
9
+ * https://github.com/facebook/create-react-app/blob/master/LICENSE
10
+ */
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.printBuildError = void 0;
13
+ // Modified by Chao Xu (xuchaobei)
14
+ const compiled_1 = require("./compiled");
15
+ const logger_1 = require("./logger");
16
+ function printBuildError(err) {
17
+ const message = err != null && err.message;
18
+ const stack = err != null && err.stack;
19
+ // Add more helpful message for Terser error
20
+ if (stack &&
21
+ typeof message === 'string' &&
22
+ message.indexOf('from Terser') !== -1) {
23
+ try {
24
+ const matched = /(.+)\[(.+):(.+),(.+)\]\[.+\]/.exec(stack);
25
+ if (!matched) {
26
+ throw new Error('Using errors for control flow is bad.');
27
+ }
28
+ const problemPath = matched[2];
29
+ const line = matched[3];
30
+ const column = matched[4];
31
+ logger_1.logger.error(`Failed to minify the code from this file: \n\n ${compiled_1.chalk.yellow(`\t${problemPath}:${line}${column !== '0' ? ':' + column : ''}`)}\n`);
32
+ }
33
+ catch (ignored) {
34
+ logger_1.logger.error(`Failed to minify the bundle. ${err}\n`);
35
+ }
36
+ }
37
+ else {
38
+ logger_1.logger.error((message || err) + '\n');
39
+ }
40
+ logger_1.logger.log();
41
+ }
42
+ exports.printBuildError = printBuildError;
43
+ /* eslint-enable */
@@ -1,2 +1,2 @@
1
1
  export declare const readTsConfig: (root: string) => any;
2
- export declare const readTsConfigByFile: (filename: string) => any;
2
+ export declare const readTsConfigByFile: (filename: string) => any;
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.readTsConfigByFile = exports.readTsConfig = void 0;
7
+ const path_1 = __importDefault(require("path"));
8
+ const readTsConfig = (root) => {
9
+ // import typescript from 'typescript' cause eslint fromat error.
10
+ const typescript = require('typescript');
11
+ return typescript.readConfigFile(path_1.default.resolve(root, './tsconfig.json'), typescript.sys.readFile).config;
12
+ };
13
+ exports.readTsConfig = readTsConfig;
14
+ const readTsConfigByFile = (filename) => {
15
+ // import typescript from 'typescript' cause eslint fromat error.
16
+ const typescript = require('typescript');
17
+ return typescript.readConfigFile(path_1.default.resolve(filename), typescript.sys.readFile).config;
18
+ };
19
+ exports.readTsConfigByFile = readTsConfigByFile;
@@ -1,3 +1,3 @@
1
1
  export declare const removeLeadingSlash: (s: string) => string;
2
2
  export declare const removeTailSlash: (s: string) => string;
3
- export declare const removeSlash: (s: string) => string;
3
+ export declare const removeSlash: (s: string) => string;
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.removeSlash = exports.removeTailSlash = exports.removeLeadingSlash = void 0;
4
+ const removeLeadingSlash = (s) => s.replace(/^\/+/, '');
5
+ exports.removeLeadingSlash = removeLeadingSlash;
6
+ const removeTailSlash = (s) => s.replace(/\/+$/, '');
7
+ exports.removeTailSlash = removeTailSlash;
8
+ const removeSlash = (s) => (0, exports.removeLeadingSlash)((0, exports.removeTailSlash)(s));
9
+ exports.removeSlash = removeSlash;
@@ -1,4 +1,4 @@
1
1
  export declare const createRuntimeExportsUtils: (pwd: any, namespace: string, ts?: any) => {
2
- addExport: (statement: string) => void;
3
- getPath: () => string;
4
- };
2
+ addExport: (statement: string) => void;
3
+ getPath: () => string;
4
+ };
@@ -0,0 +1,53 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.createRuntimeExportsUtils = void 0;
7
+ const path_1 = __importDefault(require("path"));
8
+ const compiled_1 = require("./compiled");
9
+ const path_2 = require("./path");
10
+ const memo = (fn) => {
11
+ const cache = new Map();
12
+ return (...params) => {
13
+ const stringifiedParams = JSON.stringify(params);
14
+ const cachedResult = cache.get(stringifiedParams);
15
+ if (cachedResult) {
16
+ return cachedResult;
17
+ }
18
+ const res = fn(...params);
19
+ cache.set(stringifiedParams, res);
20
+ return res;
21
+ };
22
+ };
23
+ exports.createRuntimeExportsUtils = memo((pwd = '', namespace, ts = false) => {
24
+ const entryExportFile = path_1.default.join(pwd, `.runtime-exports/${namespace ? `${namespace}.js` : 'index.js'}`);
25
+ const entryExportTsFile = path_1.default.join(pwd, `.runtime-exports/${namespace ? `${namespace}.d.ts` : 'index.d.ts'}`);
26
+ // const ensure = () => {
27
+ // if (!fs.existsSync(entryExportFile)) {
28
+ // fs.outputFileSync(entryExportFile, '');
29
+ // }
30
+ // fs.ensureFileSync(entryExportFile);
31
+ // };
32
+ const addExport = (statement) => {
33
+ // eslint-disable-next-line no-param-reassign
34
+ statement = (0, path_2.normalizeOutputPath)(statement);
35
+ try {
36
+ compiled_1.fs.ensureFileSync(entryExportFile);
37
+ compiled_1.fs.ensureFileSync(entryExportTsFile);
38
+ if (!compiled_1.fs.readFileSync(entryExportFile, 'utf8').includes(statement)) {
39
+ compiled_1.fs.appendFileSync(entryExportFile, `${statement}\n`);
40
+ ts &&
41
+ compiled_1.fs.appendFileSync(entryExportTsFile, `${statement.replace('.js', '.d')}\n`);
42
+ }
43
+ }
44
+ catch (_a) {
45
+ // FIXME:
46
+ }
47
+ };
48
+ const getPath = () => entryExportFile;
49
+ return {
50
+ addExport,
51
+ getPath,
52
+ };
53
+ });
@@ -0,0 +1,4 @@
1
+ /// <reference types="node" />
2
+ import type { IncomingHttpHeaders } from 'http';
3
+ declare const run: <O>(context: IncomingHttpHeaders, cb: () => O | Promise<O>) => Promise<O>, useHeaders: () => IncomingHttpHeaders;
4
+ export { run, useHeaders };
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.useHeaders = exports.run = void 0;
4
+ const storage_1 = require("./storage");
5
+ const { run, useContext: useHeaders } = (0, storage_1.createStorage)();
6
+ exports.run = run;
7
+ exports.useHeaders = useHeaders;
@@ -0,0 +1,5 @@
1
+ declare const createStorage: <T>() => {
2
+ run: <O>(context: T, cb: () => O | Promise<O>) => Promise<O>;
3
+ useContext: () => T;
4
+ };
5
+ export { createStorage };
@@ -0,0 +1,61 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
+ }) : (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ o[k2] = m[k];
8
+ }));
9
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
10
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
11
+ }) : function(o, v) {
12
+ o["default"] = v;
13
+ });
14
+ var __importStar = (this && this.__importStar) || function (mod) {
15
+ if (mod && mod.__esModule) return mod;
16
+ var result = {};
17
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
18
+ __setModuleDefault(result, mod);
19
+ return result;
20
+ };
21
+ Object.defineProperty(exports, "__esModule", { value: true });
22
+ exports.createStorage = void 0;
23
+ const ah = __importStar(require("async_hooks"));
24
+ const createStorage = () => {
25
+ let storage;
26
+ if (typeof ah.AsyncLocalStorage !== 'undefined') {
27
+ storage = new ah.AsyncLocalStorage();
28
+ }
29
+ const run = (context, cb) => {
30
+ if (!storage) {
31
+ throw new Error(`Unable to use async_hook, please confirm the node version >= 12.17
32
+ `);
33
+ }
34
+ return new Promise((resolve, reject) => {
35
+ storage.run(context, () => {
36
+ try {
37
+ return resolve(cb());
38
+ }
39
+ catch (error) {
40
+ return reject(error);
41
+ }
42
+ });
43
+ });
44
+ };
45
+ const useContext = () => {
46
+ if (!storage) {
47
+ throw new Error(`Unable to use async_hook, please confirm the node version >= 12.17
48
+ `);
49
+ }
50
+ const context = storage.getStore();
51
+ if (!context) {
52
+ throw new Error(`Can't call useContext out of scope, make sure @modern-js/utils is a single version in node_modules`);
53
+ }
54
+ return context;
55
+ };
56
+ return {
57
+ run,
58
+ useContext,
59
+ };
60
+ };
61
+ exports.createStorage = createStorage;
@@ -1,2 +1,2 @@
1
1
  declare const wait: (time?: number) => Promise<unknown>;
2
- export { wait };
2
+ export { wait };
package/dist/wait.js ADDED
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.wait = void 0;
4
+ const wait = (time = 0) => new Promise(resolve => {
5
+ setTimeout(resolve, time);
6
+ });
7
+ exports.wait = wait;
@@ -1,8 +1,8 @@
1
1
  export declare type WatchChangeTypeValueT = 'add' | 'unlink' | 'change';
2
2
  export declare const WatchChangeType: Record<'ADD' | 'UNLINK' | 'CHANGE', WatchChangeTypeValueT>;
3
3
  declare type RunTaskType = (option: {
4
- changedFilePath: string;
5
- changeType: WatchChangeTypeValueT;
4
+ changedFilePath: string;
5
+ changeType: WatchChangeTypeValueT;
6
6
  }) => void | Promise<void>;
7
- export declare const watch: (watchDir: string | string[], runTask: RunTaskType, ignored?: string[]) => import("chokidar").FSWatcher;
8
- export {};
7
+ export declare const watch: (watchDir: string | string[], runTask: RunTaskType, ignored?: string[]) => import("./compiled").FSWatcher;
8
+ export {};
package/dist/watch.js ADDED
@@ -0,0 +1,64 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
+ }) : (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ o[k2] = m[k];
8
+ }));
9
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
10
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
11
+ }) : function(o, v) {
12
+ o["default"] = v;
13
+ });
14
+ var __importStar = (this && this.__importStar) || function (mod) {
15
+ if (mod && mod.__esModule) return mod;
16
+ var result = {};
17
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
18
+ __setModuleDefault(result, mod);
19
+ return result;
20
+ };
21
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
22
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
23
+ return new (P || (P = Promise))(function (resolve, reject) {
24
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
25
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
26
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
27
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
28
+ });
29
+ };
30
+ Object.defineProperty(exports, "__esModule", { value: true });
31
+ exports.watch = exports.WatchChangeType = void 0;
32
+ const path = __importStar(require("path"));
33
+ const compiled_1 = require("./compiled");
34
+ exports.WatchChangeType = {
35
+ ADD: 'add',
36
+ UNLINK: 'unlink',
37
+ CHANGE: 'change',
38
+ };
39
+ const watch = (watchDir, runTask, ignored = []) => {
40
+ let ready = false;
41
+ const watcher = compiled_1.chokidar.watch(watchDir, {
42
+ ignored,
43
+ });
44
+ watcher.on('ready', () => (ready = true));
45
+ watcher.on('change', (filePath) => __awaiter(void 0, void 0, void 0, function* () {
46
+ const changedFilePath = path.resolve(filePath);
47
+ yield runTask({ changedFilePath, changeType: exports.WatchChangeType.CHANGE });
48
+ }));
49
+ watcher.on('add', (filePath) => __awaiter(void 0, void 0, void 0, function* () {
50
+ const changedFilePath = path.resolve(filePath);
51
+ if (ready) {
52
+ yield runTask({ changedFilePath, changeType: exports.WatchChangeType.ADD });
53
+ }
54
+ }));
55
+ watcher.on('unlink', (filePath) => __awaiter(void 0, void 0, void 0, function* () {
56
+ const changedFilePath = path.resolve(filePath);
57
+ yield runTask({ changedFilePath, changeType: exports.WatchChangeType.UNLINK });
58
+ }));
59
+ watcher.on('error', err => {
60
+ throw err;
61
+ });
62
+ return watcher;
63
+ };
64
+ exports.watch = watch;