@modern-js/utils 2.15.0 → 2.16.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 (118) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/dist/cjs/FileSizeReporter.js +69 -92
  3. package/dist/cjs/alias.js +34 -58
  4. package/dist/cjs/analyzeProject.js +58 -41
  5. package/dist/cjs/applyOptionsChain.js +15 -42
  6. package/dist/cjs/babel.js +28 -39
  7. package/dist/cjs/chainId.js +7 -25
  8. package/dist/cjs/clearConsole.js +7 -25
  9. package/dist/cjs/commands.js +14 -29
  10. package/dist/cjs/compatRequire.js +22 -38
  11. package/dist/cjs/compiled.js +120 -139
  12. package/dist/cjs/constants.js +143 -98
  13. package/dist/cjs/debug.js +8 -26
  14. package/dist/cjs/emptyDir.js +10 -28
  15. package/dist/cjs/ensureAbsolutePath.js +13 -36
  16. package/dist/cjs/ensureArray.js +10 -26
  17. package/dist/cjs/findExists.js +14 -37
  18. package/dist/cjs/generateMetaTags.js +12 -31
  19. package/dist/cjs/getBrowserslist.js +20 -27
  20. package/dist/cjs/getCoreJsVersion.js +49 -37
  21. package/dist/cjs/getEntryOptions.js +14 -29
  22. package/dist/cjs/getPackageManager.js +23 -46
  23. package/dist/cjs/getPort.js +26 -61
  24. package/dist/cjs/getServerConfig.js +51 -43
  25. package/dist/cjs/getTargetDir.js +50 -38
  26. package/dist/cjs/import.js +16 -27
  27. package/dist/cjs/index.js +61 -60
  28. package/dist/cjs/is/index.js +53 -68
  29. package/dist/cjs/is/nodeEnv.js +13 -29
  30. package/dist/cjs/is/platform.js +13 -26
  31. package/dist/cjs/is/type.js +14 -33
  32. package/dist/cjs/logger.js +54 -50
  33. package/dist/cjs/monorepo.js +47 -78
  34. package/dist/cjs/nodeEnv.js +29 -31
  35. package/dist/cjs/path.js +42 -63
  36. package/dist/cjs/pathSerializer.js +43 -51
  37. package/dist/cjs/plugin.js +11 -29
  38. package/dist/cjs/prettyInstructions.js +35 -68
  39. package/dist/cjs/printBuildError.js +15 -37
  40. package/dist/cjs/react.js +18 -41
  41. package/dist/cjs/readTsConfig.js +21 -39
  42. package/dist/cjs/removeSlash.js +13 -27
  43. package/dist/cjs/resolve.js +25 -31
  44. package/dist/cjs/routes.js +23 -43
  45. package/dist/cjs/runtime/index.js +18 -17
  46. package/dist/cjs/runtime/parsed.js +8 -26
  47. package/dist/cjs/runtimeExports.js +31 -56
  48. package/dist/cjs/ssr.js +13 -26
  49. package/dist/cjs/storage.js +51 -41
  50. package/dist/cjs/testUtils.js +8 -29
  51. package/dist/cjs/types.js +4 -15
  52. package/dist/cjs/universal/constants.js +13 -26
  53. package/dist/cjs/universal/formatWebpack.js +16 -44
  54. package/dist/cjs/universal/nestedRoutes.js +94 -46
  55. package/dist/cjs/universal/pluginDagSort.js +58 -0
  56. package/dist/cjs/universal/remixRouter.js +18 -17
  57. package/dist/cjs/universal/serialize.js +16 -37
  58. package/dist/cjs/version.js +25 -41
  59. package/dist/cjs/wait.js +7 -25
  60. package/dist/cjs/watch.js +69 -43
  61. package/dist/esm/FileSizeReporter.js +40 -52
  62. package/dist/esm/alias.js +9 -19
  63. package/dist/esm/analyzeProject.js +3 -7
  64. package/dist/esm/applyOptionsChain.js +5 -17
  65. package/dist/esm/babel.js +6 -8
  66. package/dist/esm/chainId.js +1 -4
  67. package/dist/esm/clearConsole.js +1 -4
  68. package/dist/esm/commands.js +6 -12
  69. package/dist/esm/compatRequire.js +10 -17
  70. package/dist/esm/compiled.js +32 -76
  71. package/dist/esm/constants.js +143 -89
  72. package/dist/esm/debug.js +1 -4
  73. package/dist/esm/emptyDir.js +1 -4
  74. package/dist/esm/ensureAbsolutePath.js +1 -4
  75. package/dist/esm/ensureArray.js +4 -5
  76. package/dist/esm/findExists.js +1 -4
  77. package/dist/esm/generateMetaTags.js +6 -10
  78. package/dist/esm/getBrowserslist.js +8 -6
  79. package/dist/esm/getCoreJsVersion.js +1 -4
  80. package/dist/esm/getEntryOptions.js +5 -5
  81. package/dist/esm/getPackageManager.js +1 -4
  82. package/dist/esm/getPort.js +10 -25
  83. package/dist/esm/getServerConfig.js +2 -9
  84. package/dist/esm/getTargetDir.js +1 -4
  85. package/dist/esm/import.js +3 -4
  86. package/dist/esm/is/index.js +18 -30
  87. package/dist/esm/is/nodeEnv.js +5 -12
  88. package/dist/esm/is/platform.js +2 -6
  89. package/dist/esm/is/type.js +8 -18
  90. package/dist/esm/logger.js +37 -17
  91. package/dist/esm/monorepo.js +21 -38
  92. package/dist/esm/nodeEnv.js +18 -11
  93. package/dist/esm/path.js +16 -23
  94. package/dist/esm/pathSerializer.js +21 -21
  95. package/dist/esm/plugin.js +1 -4
  96. package/dist/esm/prettyInstructions.js +13 -32
  97. package/dist/esm/printBuildError.js +4 -11
  98. package/dist/esm/react.js +1 -4
  99. package/dist/esm/readTsConfig.js +2 -6
  100. package/dist/esm/removeSlash.js +3 -8
  101. package/dist/esm/resolve.js +14 -11
  102. package/dist/esm/routes.js +4 -10
  103. package/dist/esm/runtime/parsed.js +2 -5
  104. package/dist/esm/runtimeExports.js +17 -22
  105. package/dist/esm/ssr.js +1 -4
  106. package/dist/esm/storage.js +2 -6
  107. package/dist/esm/testUtils.js +2 -8
  108. package/dist/esm/types.js +1 -0
  109. package/dist/esm/universal/constants.js +2 -6
  110. package/dist/esm/universal/formatWebpack.js +10 -22
  111. package/dist/esm/universal/nestedRoutes.js +41 -27
  112. package/dist/esm/universal/pluginDagSort.js +50 -0
  113. package/dist/esm/universal/serialize.js +4 -5
  114. package/dist/esm/version.js +5 -7
  115. package/dist/esm/wait.js +1 -3
  116. package/dist/esm/watch.js +14 -9
  117. package/dist/types/universal/pluginDagSort.d.ts +1 -0
  118. package/package.json +17 -5
@@ -1,5 +1,2 @@
1
1
  import path from "path";
2
- const ensureAbsolutePath = (base, filePath) => path.isAbsolute(filePath) ? filePath : path.resolve(base, filePath);
3
- export {
4
- ensureAbsolutePath
5
- };
2
+ export const ensureAbsolutePath = (base, filePath) => path.isAbsolute(filePath) ? filePath : path.resolve(base, filePath);
@@ -1,9 +1,8 @@
1
- const ensureArray = (params) => {
1
+ export const ensureArray = (params) => {
2
2
  if (Array.isArray(params)) {
3
3
  return params;
4
4
  }
5
- return [params];
6
- };
7
- export {
8
- ensureArray
5
+ return [
6
+ params
7
+ ];
9
8
  };
@@ -1,5 +1,5 @@
1
1
  import fs from "fs";
2
- const findExists = (files) => {
2
+ export const findExists = (files) => {
3
3
  for (const file of files) {
4
4
  if (fs.existsSync(file) && fs.statSync(file).isFile()) {
5
5
  return file;
@@ -7,6 +7,3 @@ const findExists = (files) => {
7
7
  }
8
8
  return false;
9
9
  };
10
- export {
11
- findExists
12
- };
@@ -5,9 +5,11 @@ const tagObjectToString = (tagDefinition) => {
5
5
  }
6
6
  return `${attributeName}="${tagDefinition.attributes[attributeName]}"`;
7
7
  });
8
- return `<${[tagDefinition.tagName].concat(attributes).join(" ")}>${tagDefinition.innerHTML || ""}${tagDefinition.voidTag ? "" : `</${tagDefinition.tagName}>`}`;
8
+ return `<${[
9
+ tagDefinition.tagName
10
+ ].concat(attributes).join(" ")}>${tagDefinition.innerHTML || ""}${tagDefinition.voidTag ? "" : `</${tagDefinition.tagName}>`}`;
9
11
  };
10
- const generateMetaTags = (metaOptions) => {
12
+ export const generateMetaTags = (metaOptions) => {
11
13
  if (!metaOptions) {
12
14
  return "";
13
15
  }
@@ -27,12 +29,6 @@ const generateMetaTags = (metaOptions) => {
27
29
  voidTag: true,
28
30
  attributes: metaTagAttributes
29
31
  };
30
- }).reduce(
31
- (memo, tagObject) => `${memo}
32
- ${tagObjectToString(tagObject)}`,
33
- ""
34
- );
35
- };
36
- export {
37
- generateMetaTags
32
+ }).reduce((memo, tagObject) => `${memo}
33
+ ${tagObjectToString(tagObject)}`, "");
38
34
  };
@@ -1,7 +1,9 @@
1
1
  import { browserslist } from "./compiled";
2
- const defaults = ["> 0.01%", "not dead", "not op_mini all"];
3
- const getBrowserslist = (appDirectory) => browserslist.loadConfig({ path: appDirectory }) || defaults;
4
- export {
5
- defaults,
6
- getBrowserslist
7
- };
2
+ export const defaults = [
3
+ "> 0.01%",
4
+ "not dead",
5
+ "not op_mini all"
6
+ ];
7
+ export const getBrowserslist = (appDirectory) => browserslist.loadConfig({
8
+ path: appDirectory
9
+ }) || defaults;
@@ -1,5 +1,5 @@
1
1
  import * as fs from "../compiled/fs-extra";
2
- const getCoreJsVersion = (corejsPkgPath) => {
2
+ export const getCoreJsVersion = (corejsPkgPath) => {
3
3
  try {
4
4
  const { version } = fs.readJSONSync(corejsPkgPath);
5
5
  const [major, minor] = version.split(".");
@@ -8,6 +8,3 @@ const getCoreJsVersion = (corejsPkgPath) => {
8
8
  return "3";
9
9
  }
10
10
  };
11
- export {
12
- getCoreJsVersion
13
- };
@@ -1,17 +1,17 @@
1
1
  import { isPlainObject } from "./is";
2
2
  import { MAIN_ENTRY_NAME } from "./constants";
3
- const getEntryOptions = (name, baseOptions, optionsByEntries, packageName) => {
3
+ export const getEntryOptions = (name, baseOptions, optionsByEntries, packageName) => {
4
4
  if (optionsByEntries) {
5
5
  let optionsByEntry = getOptionsByEntryName(name, optionsByEntries);
6
6
  if (optionsByEntry === void 0 && name === MAIN_ENTRY_NAME && packageName) {
7
7
  optionsByEntry = getOptionsByEntryName(packageName, optionsByEntries);
8
8
  }
9
- return optionsByEntry !== void 0 ? isPlainObject(optionsByEntry) && isPlainObject(baseOptions) ? { ...baseOptions, ...optionsByEntry } : optionsByEntry : baseOptions;
9
+ return optionsByEntry !== void 0 ? isPlainObject(optionsByEntry) && isPlainObject(baseOptions) ? {
10
+ ...baseOptions,
11
+ ...optionsByEntry
12
+ } : optionsByEntry : baseOptions;
10
13
  } else {
11
14
  return baseOptions;
12
15
  }
13
16
  };
14
17
  const getOptionsByEntryName = (name, optionsByEntries) => optionsByEntries.hasOwnProperty(name) ? optionsByEntries[name] : void 0;
15
- export {
16
- getEntryOptions
17
- };
@@ -3,7 +3,7 @@ import path from "path";
3
3
  import { fs } from "./compiled";
4
4
  import { canUsePnpm, canUseYarn } from "./nodeEnv";
5
5
  const MAX_TIMES = 5;
6
- async function getPackageManager(cwd = process.cwd()) {
6
+ export async function getPackageManager(cwd = process.cwd()) {
7
7
  let appDirectory = cwd;
8
8
  let times = 0;
9
9
  while (os.homedir() !== appDirectory && times < MAX_TIMES) {
@@ -27,6 +27,3 @@ async function getPackageManager(cwd = process.cwd()) {
27
27
  }
28
28
  return "npm";
29
29
  }
30
- export {
31
- getPackageManager
32
- };
@@ -1,10 +1,7 @@
1
1
  import net from "net";
2
2
  import { chalk } from "./compiled";
3
3
  import { logger } from "./logger";
4
- const getPort = async (port, {
5
- tryLimits = 20,
6
- strictPort = false
7
- } = {}) => {
4
+ export const getPort = async (port, { tryLimits = 20, strictPort = false } = {}) => {
8
5
  if (typeof port === "string") {
9
6
  port = parseInt(port, 10);
10
7
  }
@@ -20,16 +17,13 @@ const getPort = async (port, {
20
17
  const server = net.createServer();
21
18
  server.unref();
22
19
  server.on("error", reject);
23
- server.listen(
24
- {
25
- port,
26
- host: "0.0.0.0"
27
- },
28
- () => {
29
- found = true;
30
- server.close(resolve);
31
- }
32
- );
20
+ server.listen({
21
+ port,
22
+ host: "0.0.0.0"
23
+ }, () => {
24
+ found = true;
25
+ server.close(resolve);
26
+ });
33
27
  });
34
28
  } catch (e) {
35
29
  if (e.code !== "EADDRINUSE") {
@@ -41,19 +35,10 @@ const getPort = async (port, {
41
35
  }
42
36
  if (port !== original) {
43
37
  if (strictPort) {
44
- throw new Error(
45
- `Port "${original}" is occupied, please choose another one.`
46
- );
38
+ throw new Error(`Port "${original}" is occupied, please choose another one.`);
47
39
  } else {
48
- logger.info(
49
- `Something is already running on port ${original}. ${chalk.yellow(
50
- `Use port ${port} instead.`
51
- )}`
52
- );
40
+ logger.info(`Something is already running on port ${original}. ${chalk.yellow(`Use port ${port} instead.`)}`);
53
41
  }
54
42
  }
55
43
  return port;
56
44
  };
57
- export {
58
- getPort
59
- };
@@ -1,14 +1,7 @@
1
1
  import * as path from "path";
2
2
  import { CONFIG_FILE_EXTENSIONS } from "./constants";
3
3
  import { findExists } from "./findExists";
4
- const getServerConfig = async (appDirectory, configFile) => {
5
- const configFilePath = findExists(
6
- CONFIG_FILE_EXTENSIONS.map(
7
- (extension) => path.resolve(appDirectory, `${configFile}${extension}`)
8
- )
9
- );
4
+ export const getServerConfig = async (appDirectory, configFile) => {
5
+ const configFilePath = findExists(CONFIG_FILE_EXTENSIONS.map((extension) => path.resolve(appDirectory, `${configFile}${extension}`)));
10
6
  return configFilePath;
11
7
  };
12
- export {
13
- getServerConfig
14
- };
@@ -1,8 +1,5 @@
1
1
  import * as path from "path";
2
- const getTargetDir = (from, baseDir, targetBaseDir) => {
2
+ export const getTargetDir = (from, baseDir, targetBaseDir) => {
3
3
  const relativePath = path.relative(baseDir, from);
4
4
  return path.resolve(targetBaseDir, relativePath);
5
5
  };
6
- export {
7
- getTargetDir
8
- };
@@ -2,8 +2,7 @@ const lazy = (moduleName, requireFn) => {
2
2
  const importLazyLocal = require("../compiled/import-lazy")(requireFn);
3
3
  return importLazyLocal(moduleName);
4
4
  };
5
- const Import = { lazy };
6
- export {
7
- Import,
8
- lazy as lazyImport
5
+ export { lazy as lazyImport };
6
+ export const Import = {
7
+ lazy
9
8
  };
@@ -3,7 +3,7 @@ import path from "path";
3
3
  import { createDebugger } from "../debug";
4
4
  import { isDev } from "./nodeEnv";
5
5
  const debug = createDebugger("judge-depExists");
6
- const isDepExists = (appDirectory, name) => {
6
+ export const isDepExists = (appDirectory, name) => {
7
7
  const pkgPath = path.resolve(appDirectory, "./package.json");
8
8
  if (!fs.existsSync(pkgPath)) {
9
9
  debug(`can't find package.json under: %s`, appDirectory);
@@ -13,14 +13,14 @@ const isDepExists = (appDirectory, name) => {
13
13
  const { dependencies = {}, devDependencies = {} } = json;
14
14
  return dependencies.hasOwnProperty(name) || devDependencies.hasOwnProperty(name);
15
15
  };
16
- const isTypescript = (root) => fs.existsSync(path.resolve(root, "./tsconfig.json"));
17
- const isEmpty = (o) => Object.entries(o).length === 0 && o.constructor === Object;
18
- const isSSR = (config) => {
16
+ export const isTypescript = (root) => fs.existsSync(path.resolve(root, "./tsconfig.json"));
17
+ export const isEmpty = (o) => Object.entries(o).length === 0 && o.constructor === Object;
18
+ export const isSSR = (config) => {
19
19
  const { server } = config;
20
- if (server == null ? void 0 : server.ssr) {
20
+ if (server === null || server === void 0 ? void 0 : server.ssr) {
21
21
  return true;
22
22
  }
23
- if ((server == null ? void 0 : server.ssrByEntries) && !isEmpty(server.ssrByEntries)) {
23
+ if ((server === null || server === void 0 ? void 0 : server.ssrByEntries) && !isEmpty(server.ssrByEntries)) {
24
24
  for (const name of Object.keys(server.ssrByEntries)) {
25
25
  if (server.ssrByEntries[name]) {
26
26
  return true;
@@ -29,44 +29,32 @@ const isSSR = (config) => {
29
29
  }
30
30
  return false;
31
31
  };
32
- const isUseSSRBundle = (config) => {
32
+ export const isUseSSRBundle = (config) => {
33
33
  const { output } = config;
34
- if (output == null ? void 0 : output.ssg) {
34
+ if (output === null || output === void 0 ? void 0 : output.ssg) {
35
35
  return true;
36
36
  }
37
37
  return isSSR(config);
38
38
  };
39
- const isServiceWorker = (config) => {
40
- var _a;
39
+ export const isServiceWorker = (config) => {
40
+ var _deploy_worker;
41
41
  const { output, deploy } = config;
42
- if (((_a = deploy == null ? void 0 : deploy.worker) == null ? void 0 : _a.ssr) && ((output == null ? void 0 : output.ssg) || isSSR(config))) {
42
+ if ((deploy === null || deploy === void 0 ? void 0 : (_deploy_worker = deploy.worker) === null || _deploy_worker === void 0 ? void 0 : _deploy_worker.ssr) && ((output === null || output === void 0 ? void 0 : output.ssg) || isSSR(config))) {
43
43
  return true;
44
44
  }
45
45
  return false;
46
46
  };
47
- const isFastRefresh = () => isDev() && process.env.FAST_REFRESH !== "false";
48
- const isRouterV5 = (config) => {
49
- var _a, _b, _c;
50
- return typeof ((_a = config.runtime) == null ? void 0 : _a.router) !== "boolean" && ((_c = (_b = config == null ? void 0 : config.runtime) == null ? void 0 : _b.router) == null ? void 0 : _c.mode) === "react-router-5";
47
+ export const isFastRefresh = () => isDev() && process.env.FAST_REFRESH !== "false";
48
+ export const isRouterV5 = (config) => {
49
+ var _config_runtime, _config_runtime1, _config_runtime_router;
50
+ return typeof ((_config_runtime = config.runtime) === null || _config_runtime === void 0 ? void 0 : _config_runtime.router) !== "boolean" && (config === null || config === void 0 ? void 0 : (_config_runtime1 = config.runtime) === null || _config_runtime1 === void 0 ? void 0 : (_config_runtime_router = _config_runtime1.router) === null || _config_runtime_router === void 0 ? void 0 : _config_runtime_router.mode) === "react-router-5";
51
51
  };
52
- const isSSGEntry = (config, entryName, entrypoints) => {
52
+ export const isSSGEntry = (config, entryName, entrypoints) => {
53
53
  const ssgConfig = config.output.ssg;
54
- const useSSG = isSingleEntry(entrypoints) ? Boolean(ssgConfig) : ssgConfig === true || typeof (ssgConfig == null ? void 0 : ssgConfig[0]) === "function" || Boolean(ssgConfig == null ? void 0 : ssgConfig[entryName]);
54
+ const useSSG = isSingleEntry(entrypoints) ? Boolean(ssgConfig) : ssgConfig === true || typeof (ssgConfig === null || ssgConfig === void 0 ? void 0 : ssgConfig[0]) === "function" || Boolean(ssgConfig === null || ssgConfig === void 0 ? void 0 : ssgConfig[entryName]);
55
55
  return useSSG;
56
56
  };
57
- const isSingleEntry = (entrypoints) => entrypoints.length === 1 && entrypoints[0].entryName === "main";
57
+ export const isSingleEntry = (entrypoints) => entrypoints.length === 1 && entrypoints[0].entryName === "main";
58
58
  export * from "./nodeEnv";
59
59
  export * from "./platform";
60
60
  export * from "./type";
61
- export {
62
- isDepExists,
63
- isEmpty,
64
- isFastRefresh,
65
- isRouterV5,
66
- isSSGEntry,
67
- isSSR,
68
- isServiceWorker,
69
- isSingleEntry,
70
- isTypescript,
71
- isUseSSRBundle
72
- };
@@ -1,12 +1,5 @@
1
- const getNodeEnv = () => process.env.NODE_ENV || "development";
2
- const isDev = () => getNodeEnv() === "development";
3
- const isProd = () => getNodeEnv() === "production";
4
- const isTest = () => getNodeEnv() === "test";
5
- const isProdProfile = () => isProd() && process.argv.includes("--profile");
6
- export {
7
- getNodeEnv,
8
- isDev,
9
- isProd,
10
- isProdProfile,
11
- isTest
12
- };
1
+ export const getNodeEnv = () => process.env.NODE_ENV || "development";
2
+ export const isDev = () => getNodeEnv() === "development";
3
+ export const isProd = () => getNodeEnv() === "production";
4
+ export const isTest = () => getNodeEnv() === "test";
5
+ export const isProdProfile = () => isProd() && process.argv.includes("--profile");
@@ -1,6 +1,2 @@
1
- const isNodeJS = () => typeof process !== "undefined" && process.versions != null && process.versions.node != null && process.versions.electron == null;
2
- const isBrowser = () => typeof window !== "undefined";
3
- export {
4
- isBrowser,
5
- isNodeJS
6
- };
1
+ export const isNodeJS = () => typeof process !== "undefined" && process.versions != null && process.versions.node != null && process.versions.electron == null;
2
+ export const isBrowser = () => typeof window !== "undefined";
@@ -1,34 +1,24 @@
1
- function isString(str) {
1
+ export function isString(str) {
2
2
  return typeof str === "string";
3
3
  }
4
- function isUndefined(obj) {
4
+ export function isUndefined(obj) {
5
5
  return typeof obj === "undefined";
6
6
  }
7
- function isArray(obj) {
7
+ export function isArray(obj) {
8
8
  return Array.isArray(obj);
9
9
  }
10
- function isFunction(func) {
10
+ export function isFunction(func) {
11
11
  return typeof func === "function";
12
12
  }
13
- function isObject(obj) {
13
+ export function isObject(obj) {
14
14
  return obj !== null && typeof obj === "object";
15
15
  }
16
- function isPlainObject(obj) {
16
+ export function isPlainObject(obj) {
17
17
  return isObject(obj) && Object.prototype.toString.call(obj) === "[object Object]";
18
18
  }
19
- function isPromise(obj) {
19
+ export function isPromise(obj) {
20
20
  return Boolean(obj) && (typeof obj === "object" || typeof obj === "function") && typeof obj.then === "function";
21
21
  }
22
- function isRegExp(obj) {
22
+ export function isRegExp(obj) {
23
23
  return Object.prototype.toString.call(obj) === "[object RegExp]";
24
24
  }
25
- export {
26
- isArray,
27
- isFunction,
28
- isObject,
29
- isPlainObject,
30
- isPromise,
31
- isRegExp,
32
- isString,
33
- isUndefined
34
- };
@@ -1,3 +1,16 @@
1
+ function _define_property(obj, key, value) {
2
+ if (key in obj) {
3
+ Object.defineProperty(obj, key, {
4
+ value,
5
+ enumerable: true,
6
+ configurable: true,
7
+ writable: true
8
+ });
9
+ } else {
10
+ obj[key] = value;
11
+ }
12
+ return obj;
13
+ }
1
14
  import chalk from "../compiled/chalk";
2
15
  const LOG_LEVEL = {
3
16
  error: 0,
@@ -32,25 +45,15 @@ const LOG_TYPES = {
32
45
  label: "debug",
33
46
  level: "debug"
34
47
  },
35
- log: { level: "log" }
48
+ log: {
49
+ level: "log"
50
+ }
36
51
  };
37
52
  const DEFAULT_CONFIG = {
38
53
  displayLabel: true,
39
54
  uppercaseLabel: false
40
55
  };
41
56
  class Logger {
42
- constructor(options = {}) {
43
- this.level = options.level || LOG_TYPES.log.level;
44
- this.config = { ...DEFAULT_CONFIG, ...options.config || {} };
45
- this.types = {
46
- ...LOG_TYPES,
47
- ...options.types || {}
48
- };
49
- this.longestLabel = this.getLongestLabel();
50
- Object.keys(this.types).forEach((type) => {
51
- this[type] = this._log.bind(this, type);
52
- });
53
- }
54
57
  _log(type, message, ...args) {
55
58
  if (message === void 0 || message === null) {
56
59
  console.log();
@@ -91,10 +94,27 @@ ${chalk.grey(rest.join("\n"))}`;
91
94
  });
92
95
  return longestLabel;
93
96
  }
97
+ constructor(options = {}) {
98
+ _define_property(this, "level", void 0);
99
+ _define_property(this, "config", void 0);
100
+ _define_property(this, "types", void 0);
101
+ _define_property(this, "longestLabel", void 0);
102
+ this.level = options.level || LOG_TYPES.log.level;
103
+ this.config = {
104
+ ...DEFAULT_CONFIG,
105
+ ...options.config || {}
106
+ };
107
+ this.types = {
108
+ ...LOG_TYPES,
109
+ ...options.types || {}
110
+ };
111
+ this.longestLabel = this.getLongestLabel();
112
+ Object.keys(this.types).forEach((type) => {
113
+ this[type] = this._log.bind(this, type);
114
+ });
115
+ }
94
116
  }
95
117
  const logger = new Logger();
96
118
  logger.Logger = Logger;
97
- export {
98
- Logger,
99
- logger
100
- };
119
+ export { Logger };
120
+ export { logger };
@@ -7,19 +7,19 @@ const WORKSPACE_FILES = {
7
7
  PNPM: "pnpm-workspace.yaml",
8
8
  LERNA: "lerna.json"
9
9
  };
10
- const isLerna = (root) => fs.existsSync(path.join(root, WORKSPACE_FILES.LERNA));
11
- const isYarnWorkspaces = (root) => {
12
- var _a;
10
+ export const isLerna = (root) => fs.existsSync(path.join(root, WORKSPACE_FILES.LERNA));
11
+ export const isYarnWorkspaces = (root) => {
12
+ var _json_workspaces;
13
13
  const pkg = path.join(root, WORKSPACE_FILES.YARN);
14
14
  if (!fs.existsSync(pkg)) {
15
15
  return false;
16
16
  }
17
17
  const json = JSON.parse(fs.readFileSync(pkg, "utf8"));
18
- return Boolean((_a = json.workspaces) == null ? void 0 : _a.packages);
18
+ return Boolean((_json_workspaces = json.workspaces) === null || _json_workspaces === void 0 ? void 0 : _json_workspaces.packages);
19
19
  };
20
- const isPnpmWorkspaces = (root) => fs.existsSync(path.join(root, WORKSPACE_FILES.PNPM));
21
- const isMonorepo = (root) => isLerna(root) || isYarnWorkspaces(root) || isPnpmWorkspaces(root);
22
- const isModernjsMonorepo = (root) => {
20
+ export const isPnpmWorkspaces = (root) => fs.existsSync(path.join(root, WORKSPACE_FILES.PNPM));
21
+ export const isMonorepo = (root) => isLerna(root) || isYarnWorkspaces(root) || isPnpmWorkspaces(root);
22
+ export const isModernjsMonorepo = (root) => {
23
23
  const pkgJsonPath = path.join(root, "package.json");
24
24
  if (!fs.existsSync(pkgJsonPath)) {
25
25
  return false;
@@ -31,7 +31,7 @@ const isModernjsMonorepo = (root) => {
31
31
  };
32
32
  return Boolean(deps["@modern-js/monorepo-tools"]);
33
33
  };
34
- const findMonorepoRoot = (appDirectory, maxDepth = PACKAGE_MAX_DEPTH) => {
34
+ export const findMonorepoRoot = (appDirectory, maxDepth = PACKAGE_MAX_DEPTH) => {
35
35
  let inMonorepo = false;
36
36
  for (let depth = 0; depth < maxDepth; depth++) {
37
37
  if (isMonorepo(appDirectory)) {
@@ -42,46 +42,29 @@ const findMonorepoRoot = (appDirectory, maxDepth = PACKAGE_MAX_DEPTH) => {
42
42
  }
43
43
  return inMonorepo ? appDirectory : void 0;
44
44
  };
45
- const getMonorepoPackages = (root) => {
45
+ export const getMonorepoPackages = (root) => {
46
46
  let packages = [];
47
47
  if (isYarnWorkspaces(root)) {
48
- const json = JSON.parse(
49
- fs.readFileSync(path.join(root, "package.json"), "utf8")
50
- );
48
+ const json = JSON.parse(fs.readFileSync(path.join(root, "package.json"), "utf8"));
51
49
  ({ packages } = json.workspaces);
52
50
  } else if (isLerna(root)) {
53
- const json = JSON.parse(
54
- fs.readFileSync(path.resolve(root, "lerna.json"), "utf8")
55
- );
51
+ const json = JSON.parse(fs.readFileSync(path.resolve(root, "lerna.json"), "utf8"));
56
52
  ({ packages } = json);
57
53
  } else {
58
- ({ packages } = yaml.load(
59
- fs.readFileSync(path.join(root, WORKSPACE_FILES.PNPM), "utf8")
60
- ));
54
+ ({ packages } = yaml.load(fs.readFileSync(path.join(root, WORKSPACE_FILES.PNPM), "utf8")));
61
55
  }
62
56
  if (packages) {
63
- return packages.map(
64
- (name) => (
65
- // The trailing / ensures only dirs are picked up
66
- glob.sync(path.join(root, `${name}/`), {
67
- ignore: ["**/node_modules/**"]
68
- })
69
- )
70
- ).reduce((acc, val) => acc.concat(val), []).filter((filepath) => fs.existsSync(path.resolve(filepath, "package.json"))).map((filepath) => ({
57
+ return packages.map((name) => (
58
+ // The trailing / ensures only dirs are picked up
59
+ glob.sync(path.join(root, `${name}/`), {
60
+ ignore: [
61
+ "**/node_modules/**"
62
+ ]
63
+ })
64
+ )).reduce((acc, val) => acc.concat(val), []).filter((filepath) => fs.existsSync(path.resolve(filepath, "package.json"))).map((filepath) => ({
71
65
  path: filepath,
72
- name: JSON.parse(
73
- fs.readFileSync(path.resolve(filepath, "package.json"), "utf8")
74
- ).name
66
+ name: JSON.parse(fs.readFileSync(path.resolve(filepath, "package.json"), "utf8")).name
75
67
  }));
76
68
  }
77
69
  return [];
78
70
  };
79
- export {
80
- findMonorepoRoot,
81
- getMonorepoPackages,
82
- isLerna,
83
- isModernjsMonorepo,
84
- isMonorepo,
85
- isPnpmWorkspaces,
86
- isYarnWorkspaces
87
- };
@@ -1,30 +1,37 @@
1
1
  import { execa } from "./compiled";
2
- async function canUseNpm() {
2
+ export async function canUseNpm() {
3
3
  try {
4
- await execa("npm", ["--version"], { env: process.env });
4
+ await execa("npm", [
5
+ "--version"
6
+ ], {
7
+ env: process.env
8
+ });
5
9
  return true;
6
10
  } catch (e) {
7
11
  return false;
8
12
  }
9
13
  }
10
- async function canUseYarn() {
14
+ export async function canUseYarn() {
11
15
  try {
12
- await execa("yarn", ["--version"], { env: process.env });
16
+ await execa("yarn", [
17
+ "--version"
18
+ ], {
19
+ env: process.env
20
+ });
13
21
  return true;
14
22
  } catch (e) {
15
23
  return false;
16
24
  }
17
25
  }
18
- async function canUsePnpm() {
26
+ export async function canUsePnpm() {
19
27
  try {
20
- await execa("pnpm", ["--version"], { env: process.env });
28
+ await execa("pnpm", [
29
+ "--version"
30
+ ], {
31
+ env: process.env
32
+ });
21
33
  return true;
22
34
  } catch (e) {
23
35
  return false;
24
36
  }
25
37
  }
26
- export {
27
- canUseNpm,
28
- canUsePnpm,
29
- canUseYarn
30
- };