@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
@@ -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;