@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
package/dist/esm/path.js CHANGED
@@ -2,29 +2,34 @@ import path from "path";
2
2
  import os from "os";
3
3
  import fs from "fs";
4
4
  import { nanoid, upath, lodash as _ } from "./compiled";
5
- const isPathString = (test) => path.posix.basename(test) !== test || path.win32.basename(test) !== test;
6
- const isRelativePath = (test) => /^\.\.?($|[\\/])/.test(test);
7
- const normalizeOutputPath = (s) => s.replace(/\\/g, "\\\\");
8
- const normalizeToPosixPath = (p) => upath.normalizeSafe(path.normalize(p || "")).replace(/^([a-zA-Z]+):/, (_2, m) => `/${m.toLowerCase()}`);
9
- const getTemplatePath = (prefix) => {
5
+ export const isPathString = (test) => path.posix.basename(test) !== test || path.win32.basename(test) !== test;
6
+ export const isRelativePath = (test) => /^\.\.?($|[\\/])/.test(test);
7
+ export const normalizeOutputPath = (s) => s.replace(/\\/g, "\\\\");
8
+ export const normalizeToPosixPath = (p) => upath.normalizeSafe(path.normalize(p || "")).replace(/^([a-zA-Z]+):/, (_2, m) => `/${m.toLowerCase()}`);
9
+ export const getTemplatePath = (prefix) => {
10
10
  const tmpRoot = fs.realpathSync(os.tmpdir());
11
- const parts = [tmpRoot];
11
+ const parts = [
12
+ tmpRoot
13
+ ];
12
14
  prefix && parts.push(prefix);
13
15
  parts.push(nanoid());
14
16
  return path.resolve(...parts);
15
17
  };
16
- function compilePathMatcherRegExp(match) {
18
+ export function compilePathMatcherRegExp(match) {
17
19
  if (typeof match !== "string") {
18
20
  return match;
19
21
  }
20
22
  const escaped = _.escapeRegExp(match);
21
23
  return new RegExp(`(?<=\\W|^)${escaped}(?=\\W|$)`);
22
24
  }
23
- const _joinPathParts = (_part, i, parts) => _(parts).filter((part) => !["/", "\\"].includes(part)).tap((parts2) => parts2.unshift("")).slice(0, i + 2).join("/");
24
- function upwardPaths(start) {
25
+ export const _joinPathParts = (_part, i, parts) => _(parts).filter((part) => ![
26
+ "/",
27
+ "\\"
28
+ ].includes(part)).tap((parts2) => parts2.unshift("")).slice(0, i + 2).join("/");
29
+ export function upwardPaths(start) {
25
30
  return _(start).split(/[/\\]/).filter(Boolean).map(_joinPathParts).reverse().push("/").value();
26
31
  }
27
- function getRealTemporaryDirectory() {
32
+ export function getRealTemporaryDirectory() {
28
33
  let ret = null;
29
34
  try {
30
35
  ret = os.tmpdir();
@@ -33,18 +38,6 @@ function getRealTemporaryDirectory() {
33
38
  }
34
39
  return ret;
35
40
  }
36
- function splitPathString(str) {
41
+ export function splitPathString(str) {
37
42
  return str.split(/[\\/]/);
38
43
  }
39
- export {
40
- _joinPathParts,
41
- compilePathMatcherRegExp,
42
- getRealTemporaryDirectory,
43
- getTemplatePath,
44
- isPathString,
45
- isRelativePath,
46
- normalizeOutputPath,
47
- normalizeToPosixPath,
48
- splitPathString,
49
- upwardPaths
50
- };
@@ -1,14 +1,11 @@
1
1
  import os from "os";
2
2
  import _ from "../compiled/lodash";
3
- import {
4
- compilePathMatcherRegExp,
5
- normalizeToPosixPath,
6
- getRealTemporaryDirectory,
7
- splitPathString,
8
- upwardPaths
9
- } from "./path";
10
- const matchUpwardPathsAsUnknown = (p) => _(upwardPaths(normalizeToPosixPath(p))).map((match) => ({ match, mark: "unknown" })).slice(1, -1).value();
11
- function applyPathMatcher(matcher, str, options = {}) {
3
+ import { compilePathMatcherRegExp, normalizeToPosixPath, getRealTemporaryDirectory, splitPathString, upwardPaths } from "./path";
4
+ export const matchUpwardPathsAsUnknown = (p) => _(upwardPaths(normalizeToPosixPath(p))).map((match) => ({
5
+ match,
6
+ mark: "unknown"
7
+ })).slice(1, -1).value();
8
+ export function applyPathMatcher(matcher, str, options = {}) {
12
9
  const regex = compilePathMatcherRegExp(matcher.match);
13
10
  const replacer = (substring, ...args) => {
14
11
  if (options.minPartials && splitPathString(substring).length < options.minPartials) {
@@ -19,28 +16,31 @@ function applyPathMatcher(matcher, str, options = {}) {
19
16
  };
20
17
  return str.replace(regex, replacer);
21
18
  }
22
- function applyMatcherReplacement(matchers, str, options = {}) {
19
+ export function applyMatcherReplacement(matchers, str, options = {}) {
23
20
  return matchers.reduce((ret, matcher) => {
24
21
  return applyPathMatcher(matcher, ret, options);
25
22
  }, str);
26
23
  }
27
- const createDefaultPathMatchers = (root) => {
24
+ export const createDefaultPathMatchers = (root) => {
28
25
  const ret = [
29
26
  {
30
- match: /(?<=\/)(\.pnpm\/.+?\/node_modules)(?=\/)/,
27
+ match: RegExp("(?<=\\/)(\\.pnpm\\/.+?\\/node_modules)(?=\\/)"),
31
28
  mark: "pnpmInner"
32
29
  }
33
30
  ];
34
31
  const tmpdir = getRealTemporaryDirectory();
35
- tmpdir && ret.push({ match: tmpdir, mark: "temp" });
36
- ret.push({ match: os.tmpdir(), mark: "temp" });
37
- ret.push({ match: os.homedir(), mark: "home" });
32
+ tmpdir && ret.push({
33
+ match: tmpdir,
34
+ mark: "temp"
35
+ });
36
+ ret.push({
37
+ match: os.tmpdir(),
38
+ mark: "temp"
39
+ });
40
+ ret.push({
41
+ match: os.homedir(),
42
+ mark: "home"
43
+ });
38
44
  ret.push(...matchUpwardPathsAsUnknown(root));
39
45
  return ret;
40
46
  };
41
- export {
42
- applyMatcherReplacement,
43
- applyPathMatcher,
44
- createDefaultPathMatchers,
45
- matchUpwardPathsAsUnknown
46
- };
@@ -1,6 +1,6 @@
1
1
  import { INTERNAL_CLI_PLUGINS } from "./constants";
2
2
  import { isDepExists } from "./is";
3
- function getInternalPlugins(appDirectory, internalPlugins = INTERNAL_CLI_PLUGINS) {
3
+ export function getInternalPlugins(appDirectory, internalPlugins = INTERNAL_CLI_PLUGINS) {
4
4
  return [
5
5
  ...Object.keys(internalPlugins).filter((name) => {
6
6
  const config = internalPlugins[name];
@@ -18,6 +18,3 @@ function getInternalPlugins(appDirectory, internalPlugins = INTERNAL_CLI_PLUGINS
18
18
  })
19
19
  ];
20
20
  }
21
- export {
22
- getInternalPlugins
23
- };
@@ -3,7 +3,7 @@ import { chalk } from "./compiled";
3
3
  import { isDev, isSingleEntry } from "./is";
4
4
  import { DEFAULT_DEV_HOST } from "./constants";
5
5
  const normalizeUrl = (url) => url.replace(/([^:]\/)\/+/g, "$1");
6
- const getIpv4Interfaces = () => {
6
+ export const getIpv4Interfaces = () => {
7
7
  const interfaces = os.networkInterfaces();
8
8
  const ipv4Interfaces = [];
9
9
  Object.keys(interfaces).forEach((key) => {
@@ -16,10 +16,12 @@ const getIpv4Interfaces = () => {
16
16
  });
17
17
  return ipv4Interfaces;
18
18
  };
19
- const getAddressUrls = (protocol = "http", port, host) => {
19
+ export const getAddressUrls = (protocol = "http", port, host) => {
20
20
  const LOCAL_LABEL = "Local: ";
21
21
  const NETWORK_LABEL = "Network: ";
22
- const isLocalhost = (url) => url == null ? void 0 : url.includes("localhost");
22
+ const isLocalhost = (url) => {
23
+ return url === null || url === void 0 ? void 0 : url.includes("localhost");
24
+ };
23
25
  if (host && host !== DEFAULT_DEV_HOST) {
24
26
  return [
25
27
  {
@@ -44,23 +46,15 @@ const getAddressUrls = (protocol = "http", port, host) => {
44
46
  return memo;
45
47
  }, []);
46
48
  };
47
- const prettyInstructions = (appContext, config) => {
48
- var _a;
49
+ export const prettyInstructions = (appContext, config) => {
50
+ var _config_dev;
49
51
  const { entrypoints, serverRoutes, port, apiOnly, checkedEntries } = appContext;
50
- const urls = getAddressUrls(
51
- config.dev.https && isDev() ? "https" : "http",
52
- port,
53
- (_a = config.dev) == null ? void 0 : _a.host
54
- );
52
+ const urls = getAddressUrls(config.dev.https && isDev() ? "https" : "http", port, (_config_dev = config.dev) === null || _config_dev === void 0 ? void 0 : _config_dev.host);
55
53
  const routes = !apiOnly ? serverRoutes.filter((route) => route.entryName) : serverRoutes;
56
54
  let message = "App running at:\n\n";
57
55
  if (isSingleEntry(entrypoints) || apiOnly) {
58
- message += urls.map(
59
- ({ label, url }) => ` ${chalk.bold(`> ${label.padEnd(10)}`)}${chalk.cyanBright(
60
- normalizeUrl(`${url}/${routes[0].urlPath}`)
61
- )}
62
- `
63
- ).join("");
56
+ message += urls.map(({ label, url }) => ` ${chalk.bold(`> ${label.padEnd(10)}`)}${chalk.cyanBright(normalizeUrl(`${url}/${routes[0].urlPath}`))}
57
+ `).join("");
64
58
  } else {
65
59
  const maxNameLength = Math.max(...routes.map((r) => r.entryName.length));
66
60
  urls.forEach(({ label, url }) => {
@@ -70,26 +64,13 @@ const prettyInstructions = (appContext, config) => {
70
64
  if (!checkedEntries.includes(entryName)) {
71
65
  return;
72
66
  }
73
- message += ` ${chalk.yellowBright(
74
- isSSR ? "λ" : "○"
75
- )} ${chalk.yellowBright(
76
- entryName.padEnd(maxNameLength + 8)
77
- )}${chalk.cyanBright(normalizeUrl(`${url}/${urlPath}`))}
67
+ message += ` ${chalk.yellowBright(isSSR ? "λ" : "○")} ${chalk.yellowBright(entryName.padEnd(maxNameLength + 8))}${chalk.cyanBright(normalizeUrl(`${url}/${urlPath}`))}
78
68
  `;
79
69
  });
80
70
  });
81
71
  message += "\n";
82
- message += chalk.cyanBright(
83
- " λ (Server) server-side renders at runtime\n"
84
- );
85
- message += chalk.cyanBright(
86
- " ○ (Static) client-side renders as static HTML\n"
87
- );
72
+ message += chalk.cyanBright(" λ (Server) server-side renders at runtime\n");
73
+ message += chalk.cyanBright(" (Static) client-side renders as static HTML\n");
88
74
  }
89
75
  return message;
90
76
  };
91
- export {
92
- getAddressUrls,
93
- getIpv4Interfaces,
94
- prettyInstructions
95
- };
@@ -1,6 +1,6 @@
1
1
  import { chalk } from "./compiled";
2
2
  import { logger } from "./logger";
3
- function printBuildError(err) {
3
+ export function printBuildError(err) {
4
4
  const message = err != null && err.message;
5
5
  const stack = err != null && err.stack;
6
6
  if (stack && typeof message === "string" && message.indexOf("from Terser") !== -1) {
@@ -12,14 +12,10 @@ function printBuildError(err) {
12
12
  const problemPath = matched[2];
13
13
  const line = matched[3];
14
14
  const column = matched[4];
15
- logger.error(
16
- `Failed to minify the code from this file:
15
+ logger.error(`Failed to minify the code from this file:
17
16
 
18
- ${chalk.yellow(
19
- ` ${problemPath}:${line}${column !== "0" ? ":" + column : ""}`
20
- )}
21
- `
22
- );
17
+ ${chalk.yellow(` ${problemPath}:${line}${column !== "0" ? ":" + column : ""}`)}
18
+ `);
23
19
  } catch (ignored) {
24
20
  logger.error(`Failed to minify the bundle. ${err}
25
21
  `);
@@ -29,6 +25,3 @@ function printBuildError(err) {
29
25
  }
30
26
  logger.log();
31
27
  }
32
- export {
33
- printBuildError
34
- };
package/dist/esm/react.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import path from "path";
2
2
  import { fs, semver } from ".";
3
- const isBeyondReact17 = (cwd) => {
3
+ export const isBeyondReact17 = (cwd) => {
4
4
  const pkgPath = path.join(cwd, "package.json");
5
5
  if (!fs.existsSync(pkgPath)) {
6
6
  return false;
@@ -15,6 +15,3 @@ const isBeyondReact17 = (cwd) => {
15
15
  }
16
16
  return semver.satisfies(semver.minVersion(deps.react), ">=17.0.0");
17
17
  };
18
- export {
19
- isBeyondReact17
20
- };
@@ -1,13 +1,9 @@
1
1
  import path from "path";
2
2
  import { fs, json5 } from "./compiled";
3
- const readTsConfig = (root) => {
3
+ export const readTsConfig = (root) => {
4
4
  return readTsConfigByFile(path.resolve(root, "./tsconfig.json"));
5
5
  };
6
- const readTsConfigByFile = (filename) => {
6
+ export const readTsConfigByFile = (filename) => {
7
7
  const content = fs.readFileSync(path.resolve(filename), "utf-8");
8
8
  return json5.parse(content);
9
9
  };
10
- export {
11
- readTsConfig,
12
- readTsConfigByFile
13
- };
@@ -1,8 +1,3 @@
1
- const removeLeadingSlash = (s) => s.replace(/^\/+/, "");
2
- const removeTailSlash = (s) => s.replace(/\/+$/, "");
3
- const removeSlash = (s) => removeLeadingSlash(removeTailSlash(s));
4
- export {
5
- removeLeadingSlash,
6
- removeSlash,
7
- removeTailSlash
8
- };
1
+ export const removeLeadingSlash = (s) => s.replace(/^\/+/, "");
2
+ export const removeTailSlash = (s) => s.replace(/\/+$/, "");
3
+ export const removeSlash = (s) => removeLeadingSlash(removeTailSlash(s));
@@ -1,8 +1,12 @@
1
1
  import { ensureArray } from "./ensureArray";
2
- const tryResolve = (name, resolvePath) => {
2
+ export const tryResolve = (name, resolvePath) => {
3
3
  let filePath = "";
4
4
  try {
5
- filePath = require.resolve(name, { paths: [resolvePath] });
5
+ filePath = require.resolve(name, {
6
+ paths: [
7
+ resolvePath
8
+ ]
9
+ });
6
10
  delete require.cache[filePath];
7
11
  } catch (err) {
8
12
  if (err.code === "MODULE_NOT_FOUND") {
@@ -12,18 +16,22 @@ const tryResolve = (name, resolvePath) => {
12
16
  }
13
17
  return filePath;
14
18
  };
15
- const isPackageInstalled = (name, resolvePaths) => {
19
+ export const isPackageInstalled = (name, resolvePaths) => {
16
20
  try {
17
- require.resolve(name, { paths: ensureArray(resolvePaths) });
21
+ require.resolve(name, {
22
+ paths: ensureArray(resolvePaths)
23
+ });
18
24
  return true;
19
25
  } catch (err) {
20
26
  return false;
21
27
  }
22
28
  };
23
- const getAntdMajorVersion = (appDirectory) => {
29
+ export const getAntdMajorVersion = (appDirectory) => {
24
30
  try {
25
31
  const pkgJsonPath = require.resolve("antd/package.json", {
26
- paths: [appDirectory]
32
+ paths: [
33
+ appDirectory
34
+ ]
27
35
  });
28
36
  const { version } = require(pkgJsonPath);
29
37
  return Number(version.split(".")[0]);
@@ -31,8 +39,3 @@ const getAntdMajorVersion = (appDirectory) => {
31
39
  return null;
32
40
  }
33
41
  };
34
- export {
35
- getAntdMajorVersion,
36
- isPackageInstalled,
37
- tryResolve
38
- };
@@ -1,14 +1,12 @@
1
1
  import path from "path";
2
2
  import { normalizeToPosixPath } from "./path";
3
3
  import { MAIN_ENTRY_NAME } from "./constants";
4
- const getPathWithoutExt = (filename) => {
4
+ export const getPathWithoutExt = (filename) => {
5
5
  const extname = path.extname(filename);
6
6
  return filename.slice(0, -extname.length);
7
7
  };
8
- const getRouteId = (componentPath, routesDir, entryName) => {
9
- const relativePath = normalizeToPosixPath(
10
- path.relative(routesDir, componentPath)
11
- );
8
+ export const getRouteId = (componentPath, routesDir, entryName) => {
9
+ const relativePath = normalizeToPosixPath(path.relative(routesDir, componentPath));
12
10
  const pathWithoutExt = getPathWithoutExt(relativePath);
13
11
  let id = ``;
14
12
  if (entryName === MAIN_ENTRY_NAME) {
@@ -16,9 +14,5 @@ const getRouteId = (componentPath, routesDir, entryName) => {
16
14
  } else {
17
15
  id = `${entryName}_${pathWithoutExt}`;
18
16
  }
19
- return id;
20
- };
21
- export {
22
- getPathWithoutExt,
23
- getRouteId
17
+ return id.replace(/\[(.*?)\]/g, "($1)");
24
18
  };
@@ -1,8 +1,8 @@
1
- const parsedJSONFromElement = (id) => {
1
+ export const parsedJSONFromElement = (id) => {
2
2
  const element = document.getElementById(id);
3
3
  if (element) {
4
4
  try {
5
- const parsed = JSON.parse(element.textContent || "");
5
+ const parsed = JSON.parse((element === null || element === void 0 ? void 0 : element.textContent) || "");
6
6
  return parsed;
7
7
  } catch (e) {
8
8
  console.error(`parse ${id} error`, e);
@@ -11,6 +11,3 @@ const parsedJSONFromElement = (id) => {
11
11
  }
12
12
  return void 0;
13
13
  };
14
- export {
15
- parsedJSONFromElement
16
- };
@@ -14,27 +14,22 @@ const memo = (fn) => {
14
14
  return res;
15
15
  };
16
16
  };
17
- const createRuntimeExportsUtils = memo(
18
- (pwd = "", namespace = "index") => {
19
- const entryExportFile = path.join(pwd, `.runtime-exports/${namespace}.js`);
20
- const addExport = (statement) => {
21
- statement = normalizeOutputPath(statement);
22
- try {
23
- fs.ensureFileSync(entryExportFile);
24
- if (!fs.readFileSync(entryExportFile, "utf8").includes(statement)) {
25
- fs.appendFileSync(entryExportFile, `${statement}
17
+ export const createRuntimeExportsUtils = memo((pwd = "", namespace = "index") => {
18
+ const entryExportFile = path.join(pwd, `.runtime-exports/${namespace}.js`);
19
+ const addExport = (statement) => {
20
+ statement = normalizeOutputPath(statement);
21
+ try {
22
+ fs.ensureFileSync(entryExportFile);
23
+ if (!fs.readFileSync(entryExportFile, "utf8").includes(statement)) {
24
+ fs.appendFileSync(entryExportFile, `${statement}
26
25
  `);
27
- }
28
- } catch {
29
26
  }
30
- };
31
- const getPath = () => entryExportFile;
32
- return {
33
- addExport,
34
- getPath
35
- };
36
- }
37
- );
38
- export {
39
- createRuntimeExportsUtils
40
- };
27
+ } catch {
28
+ }
29
+ };
30
+ const getPath = () => entryExportFile;
31
+ return {
32
+ addExport,
33
+ getPath
34
+ };
35
+ });
package/dist/esm/ssr.js CHANGED
@@ -1,6 +1,3 @@
1
1
  import { createStorage } from "./storage";
2
2
  const { run, useContext: useHeaders } = createStorage();
3
- export {
4
- run,
5
- useHeaders
6
- };
3
+ export { run, useHeaders };
@@ -26,9 +26,7 @@ const createStorage = () => {
26
26
  }
27
27
  const context = storage.getStore();
28
28
  if (!context) {
29
- throw new Error(
30
- `Can't call useContext out of scope, make sure @modern-js/utils is a single version in node_modules`
31
- );
29
+ throw new Error(`Can't call useContext out of scope, make sure @modern-js/utils is a single version in node_modules`);
32
30
  }
33
31
  return context;
34
32
  };
@@ -37,6 +35,4 @@ const createStorage = () => {
37
35
  useContext
38
36
  };
39
37
  };
40
- export {
41
- createStorage
42
- };
38
+ export { createStorage };
@@ -1,15 +1,9 @@
1
- const initSnapshotSerializer = (root) => {
1
+ export const initSnapshotSerializer = (root) => {
2
2
  expect.addSnapshotSerializer({
3
3
  test: (val) => typeof val === "string" && (val.includes("modern.js") || val.includes("node_modules") || val.includes(root)),
4
4
  print: (val) => (
5
5
  // eslint-disable-next-line no-nested-ternary
6
- typeof val === "string" ? (
7
- // eslint-disable-next-line no-nested-ternary
8
- val.includes("node_modules") ? `"${val.replace(/.+node_modules/, ``).replace(/\\/g, "/")}"` : val.includes("modern.js") ? `"${val.replace(/.+modern\.js/, ``).replace(/\\/g, "/")}"` : `"${val.replace(root, "").replace(/\\/g, "/")}"`
9
- ) : val
6
+ typeof val === "string" ? val.includes("node_modules") ? `"${val.replace(/.+node_modules/, ``).replace(/\\/g, "/")}"` : val.includes("modern.js") ? `"${val.replace(/.+modern\.js/, ``).replace(/\\/g, "/")}"` : `"${val.replace(root, "").replace(/\\/g, "/")}"` : val
10
7
  )
11
8
  });
12
9
  };
13
- export {
14
- initSnapshotSerializer
15
- };
package/dist/esm/types.js CHANGED
@@ -0,0 +1 @@
1
+ export {};
@@ -1,6 +1,2 @@
1
- const ROUTE_MANIFEST = `_MODERNJS_ROUTE_MANIFEST`;
2
- const HMR_SOCK_PATH = "/webpack-hmr";
3
- export {
4
- HMR_SOCK_PATH,
5
- ROUTE_MANIFEST
6
- };
1
+ export const ROUTE_MANIFEST = `_MODERNJS_ROUTE_MANIFEST`;
2
+ export const HMR_SOCK_PATH = "/webpack-hmr";
@@ -20,9 +20,7 @@ ${stats.stack}` : "";
20
20
  }
21
21
  lines = message.split("\n");
22
22
  lines = lines.map((line) => {
23
- const parsingError = /Line (\d+):(?:(\d+):)?\s*Parsing error: (.+)$/.exec(
24
- line
25
- );
23
+ const parsingError = /Line (\d+):(?:(\d+):)?\s*Parsing error: (.+)$/.exec(line);
26
24
  if (!parsingError) {
27
25
  return line;
28
26
  }
@@ -30,11 +28,8 @@ ${stats.stack}` : "";
30
28
  return `${friendlySyntaxErrorLabel} ${errorMessage} (${errorLine}:${errorColumn})`;
31
29
  });
32
30
  message = lines.join("\n");
33
- message = message.replace(
34
- /SyntaxError\s+\((\d+):(\d+)\)\s*(.+?)\n/g,
35
- `${friendlySyntaxErrorLabel} $3 ($1:$2)
36
- `
37
- );
31
+ message = message.replace(/SyntaxError\s+\((\d+):(\d+)\)\s*(.+?)\n/g, `${friendlySyntaxErrorLabel} $3 ($1:$2)
32
+ `);
38
33
  lines = message.split("\n");
39
34
  if (lines.length > 2 && lines[1].trim() === "") {
40
35
  lines.splice(1, 1);
@@ -44,27 +39,22 @@ ${stats.stack}` : "";
44
39
  lines[1] = lines[1].replace("Error: ", "");
45
40
  }
46
41
  message = lines.join("\n");
47
- message = message.replace(
48
- /^\s*at\s((?!webpack:).)*:\d+:\d+[\s)]*(\n|$)/gm,
49
- ""
50
- );
42
+ message = message.replace(/^\s*at\s((?!webpack:).)*:\d+:\d+[\s)]*(\n|$)/gm, "");
51
43
  message = message.replace(/^\s*at\s<anonymous>(\n|$)/gm, "");
52
44
  lines = message.split("\n");
53
- lines = lines.filter(
54
- (line, index, arr) => index === 0 || line.trim() !== "" || line.trim() !== arr[index - 1].trim()
55
- );
45
+ lines = lines.filter((line, index, arr) => index === 0 || line.trim() !== "" || line.trim() !== arr[index - 1].trim());
56
46
  message = lines.join("\n");
57
47
  return message.trim();
58
48
  }
59
49
  function formatWebpackMessages(json) {
60
- var _a, _b, _c;
61
- const formattedErrors = (_a = json == null ? void 0 : json.errors) == null ? void 0 : _a.map(formatMessage);
62
- const formattedWarnings = (_b = json == null ? void 0 : json.warnings) == null ? void 0 : _b.map(formatMessage);
50
+ var _json_errors, _json_warnings, _result_errors;
51
+ const formattedErrors = json === null || json === void 0 ? void 0 : (_json_errors = json.errors) === null || _json_errors === void 0 ? void 0 : _json_errors.map(formatMessage);
52
+ const formattedWarnings = json === null || json === void 0 ? void 0 : (_json_warnings = json.warnings) === null || _json_warnings === void 0 ? void 0 : _json_warnings.map(formatMessage);
63
53
  const result = {
64
54
  errors: formattedErrors || [],
65
55
  warnings: formattedWarnings || []
66
56
  };
67
- if ((_c = result.errors) == null ? void 0 : _c.some(isLikelyASyntaxError)) {
57
+ if ((_result_errors = result.errors) === null || _result_errors === void 0 ? void 0 : _result_errors.some(isLikelyASyntaxError)) {
68
58
  result.errors = result.errors.filter(isLikelyASyntaxError);
69
59
  }
70
60
  if (result.errors.length > 1) {
@@ -72,6 +62,4 @@ function formatWebpackMessages(json) {
72
62
  }
73
63
  return result;
74
64
  }
75
- export {
76
- formatWebpackMessages
77
- };
65
+ export { formatWebpackMessages };