@modern-js/utils 2.12.0 → 2.12.1-alpha.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.
- package/dist/{alias.js → cjs/alias.js} +4 -15
- package/dist/{analyzeProject.js → cjs/analyzeProject.js} +5 -25
- package/dist/{babel.js → cjs/babel.js} +9 -16
- package/dist/{compatRequire.js → cjs/compatRequire.js} +4 -17
- package/dist/cjs/emptyDir.js +32 -0
- package/dist/{getEntryOptions.js → cjs/getEntryOptions.js} +1 -15
- package/dist/{getPackageManager.js → cjs/getPackageManager.js} +19 -41
- package/dist/{getPort.js → cjs/getPort.js} +4 -24
- package/dist/{getServerConfig.js → cjs/getServerConfig.js} +2 -22
- package/dist/{logger.js → cjs/logger.js} +5 -16
- package/dist/{monorepo.js → cjs/monorepo.js} +4 -15
- package/dist/cjs/nodeEnv.js +55 -0
- package/dist/{path.js → cjs/path.js} +1 -1
- package/dist/{pathSerializer.js → cjs/pathSerializer.js} +1 -1
- package/dist/{react.js → cjs/react.js} +4 -15
- package/dist/{runtimeExports.js → cjs/runtimeExports.js} +1 -1
- package/dist/{universal → cjs/universal}/nestedRoutes.js +2 -19
- package/dist/cjs/version.js +59 -0
- package/dist/{watch.js → cjs/watch.js} +9 -29
- package/dist/esm/FileSizeReporter.js +180 -0
- package/dist/esm/alias.js +83 -0
- package/dist/esm/analyzeProject.js +168 -0
- package/dist/esm/applyOptionsChain.js +26 -0
- package/dist/esm/babel.js +169 -0
- package/dist/esm/chainId.js +92 -0
- package/dist/esm/clearConsole.js +6 -0
- package/dist/esm/commands.js +17 -0
- package/dist/esm/compatRequire.js +68 -0
- package/dist/esm/compiled.js +34 -0
- package/dist/esm/constants.js +317 -0
- package/dist/esm/debug.js +5 -0
- package/dist/esm/emptyDir.js +158 -0
- package/dist/esm/ensureAbsolutePath.js +5 -0
- package/dist/esm/ensureArray.js +9 -0
- package/dist/esm/findExists.js +27 -0
- package/dist/esm/generateMetaTags.js +40 -0
- package/dist/esm/getBrowserslist.js +12 -0
- package/dist/esm/getCoreJsVersion.js +57 -0
- package/dist/esm/getEntryOptions.js +45 -0
- package/dist/esm/getPackageManager.js +187 -0
- package/dist/esm/getPort.js +215 -0
- package/dist/esm/getServerConfig.js +145 -0
- package/dist/esm/getTargetDir.js +6 -0
- package/dist/esm/import.js +8 -0
- package/dist/esm/index.js +44 -0
- package/dist/esm/is/index.js +85 -0
- package/dist/esm/is/nodeEnv.js +16 -0
- package/dist/esm/is/platform.js +7 -0
- package/dist/esm/is/type.js +25 -0
- package/dist/esm/logger.js +207 -0
- package/dist/esm/monorepo.js +109 -0
- package/dist/esm/nodeEnv.js +258 -0
- package/dist/esm/path.js +85 -0
- package/dist/esm/pathSerializer.js +85 -0
- package/dist/esm/plugin.js +45 -0
- package/dist/esm/prettyInstructions.js +96 -0
- package/dist/esm/printBuildError.js +24 -0
- package/dist/esm/react.js +43 -0
- package/dist/esm/readTsConfig.js +10 -0
- package/dist/esm/removeSlash.js +10 -0
- package/dist/esm/resolve.js +42 -0
- package/dist/esm/routes.js +19 -0
- package/dist/esm/runtimeExports.js +65 -0
- package/dist/esm/ssr.js +3 -0
- package/dist/esm/storage.js +36 -0
- package/dist/esm/testUtils.js +13 -0
- package/dist/esm/types.js +1 -0
- package/dist/esm/universal/constants.js +3 -0
- package/dist/esm/universal/formatWebpack.js +108 -0
- package/dist/esm/universal/nestedRoutes.js +174 -0
- package/dist/esm/universal/remixRouter.js +1 -0
- package/dist/esm/universal/serialize.js +7 -0
- package/dist/esm/version.js +193 -0
- package/dist/esm/wait.js +7 -0
- package/dist/esm/watch.js +230 -0
- package/dist/esm-node/FileSizeReporter.js +133 -0
- package/dist/esm-node/alias.js +61 -0
- package/dist/esm-node/analyzeProject.js +17 -0
- package/dist/esm-node/applyOptionsChain.js +35 -0
- package/dist/esm-node/babel.js +105 -0
- package/dist/esm-node/chainId.js +173 -0
- package/dist/esm-node/clearConsole.js +8 -0
- package/dist/esm-node/commands.js +22 -0
- package/dist/esm-node/compatRequire.js +42 -0
- package/dist/esm-node/compiled.js +77 -0
- package/dist/esm-node/constants.js +264 -0
- package/dist/esm-node/debug.js +5 -0
- package/dist/esm-node/emptyDir.js +9 -0
- package/dist/esm-node/ensureAbsolutePath.js +5 -0
- package/dist/esm-node/ensureArray.js +9 -0
- package/dist/esm-node/findExists.js +12 -0
- package/dist/esm-node/generateMetaTags.js +38 -0
- package/dist/esm-node/getBrowserslist.js +7 -0
- package/dist/esm-node/getCoreJsVersion.js +13 -0
- package/dist/esm-node/getEntryOptions.js +17 -0
- package/dist/esm-node/getPackageManager.js +32 -0
- package/dist/esm-node/getPort.js +59 -0
- package/dist/esm-node/getServerConfig.js +14 -0
- package/dist/esm-node/getTargetDir.js +8 -0
- package/dist/esm-node/import.js +9 -0
- package/dist/esm-node/index.js +44 -0
- package/dist/esm-node/is/index.js +71 -0
- package/dist/esm-node/is/nodeEnv.js +12 -0
- package/dist/esm-node/is/platform.js +6 -0
- package/dist/esm-node/is/type.js +34 -0
- package/dist/esm-node/logger.js +100 -0
- package/dist/esm-node/monorepo.js +87 -0
- package/dist/esm-node/nodeEnv.js +30 -0
- package/dist/esm-node/path.js +50 -0
- package/dist/esm-node/pathSerializer.js +46 -0
- package/dist/esm-node/plugin.js +23 -0
- package/dist/esm-node/prettyInstructions.js +77 -0
- package/dist/esm-node/printBuildError.js +34 -0
- package/dist/esm-node/react.js +20 -0
- package/dist/esm-node/readTsConfig.js +13 -0
- package/dist/esm-node/removeSlash.js +8 -0
- package/dist/esm-node/resolve.js +38 -0
- package/dist/esm-node/routes.js +24 -0
- package/dist/esm-node/runtimeExports.js +40 -0
- package/dist/esm-node/ssr.js +6 -0
- package/dist/esm-node/storage.js +42 -0
- package/dist/esm-node/testUtils.js +15 -0
- package/dist/esm-node/types.js +0 -0
- package/dist/esm-node/universal/constants.js +6 -0
- package/dist/esm-node/universal/formatWebpack.js +77 -0
- package/dist/esm-node/universal/nestedRoutes.js +93 -0
- package/dist/esm-node/universal/remixRouter.js +1 -0
- package/dist/esm-node/universal/serialize.js +7 -0
- package/dist/esm-node/version.js +25 -0
- package/dist/esm-node/wait.js +6 -0
- package/dist/esm-node/watch.js +36 -0
- package/package.json +2 -2
- package/dist/emptyDir.js +0 -52
- package/dist/nodeEnv.js +0 -81
- package/dist/version.js +0 -92
- /package/dist/{FileSizeReporter.js → cjs/FileSizeReporter.js} +0 -0
- /package/dist/{applyOptionsChain.js → cjs/applyOptionsChain.js} +0 -0
- /package/dist/{chainId.js → cjs/chainId.js} +0 -0
- /package/dist/{clearConsole.js → cjs/clearConsole.js} +0 -0
- /package/dist/{commands.js → cjs/commands.js} +0 -0
- /package/dist/{compiled.js → cjs/compiled.js} +0 -0
- /package/dist/{constants.js → cjs/constants.js} +0 -0
- /package/dist/{debug.js → cjs/debug.js} +0 -0
- /package/dist/{ensureAbsolutePath.js → cjs/ensureAbsolutePath.js} +0 -0
- /package/dist/{ensureArray.js → cjs/ensureArray.js} +0 -0
- /package/dist/{findExists.js → cjs/findExists.js} +0 -0
- /package/dist/{generateMetaTags.js → cjs/generateMetaTags.js} +0 -0
- /package/dist/{getBrowserslist.js → cjs/getBrowserslist.js} +0 -0
- /package/dist/{getCoreJsVersion.js → cjs/getCoreJsVersion.js} +0 -0
- /package/dist/{getTargetDir.js → cjs/getTargetDir.js} +0 -0
- /package/dist/{import.js → cjs/import.js} +0 -0
- /package/dist/{index.js → cjs/index.js} +0 -0
- /package/dist/{is → cjs/is}/index.js +0 -0
- /package/dist/{is → cjs/is}/nodeEnv.js +0 -0
- /package/dist/{is → cjs/is}/platform.js +0 -0
- /package/dist/{is → cjs/is}/type.js +0 -0
- /package/dist/{plugin.js → cjs/plugin.js} +0 -0
- /package/dist/{prettyInstructions.js → cjs/prettyInstructions.js} +0 -0
- /package/dist/{printBuildError.js → cjs/printBuildError.js} +0 -0
- /package/dist/{readTsConfig.js → cjs/readTsConfig.js} +0 -0
- /package/dist/{removeSlash.js → cjs/removeSlash.js} +0 -0
- /package/dist/{resolve.js → cjs/resolve.js} +0 -0
- /package/dist/{routes.js → cjs/routes.js} +0 -0
- /package/dist/{ssr.js → cjs/ssr.js} +0 -0
- /package/dist/{storage.js → cjs/storage.js} +0 -0
- /package/dist/{testUtils.js → cjs/testUtils.js} +0 -0
- /package/dist/{types.js → cjs/types.js} +0 -0
- /package/dist/{universal → cjs/universal}/constants.js +0 -0
- /package/dist/{universal → cjs/universal}/formatWebpack.js +0 -0
- /package/dist/{universal → cjs/universal}/remixRouter.js +0 -0
- /package/dist/{universal → cjs/universal}/serialize.js +0 -0
- /package/dist/{wait.js → cjs/wait.js} +0 -0
- /package/dist/{FileSizeReporter.d.ts → types/FileSizeReporter.d.ts} +0 -0
- /package/dist/{alias.d.ts → types/alias.d.ts} +0 -0
- /package/dist/{analyzeProject.d.ts → types/analyzeProject.d.ts} +0 -0
- /package/dist/{applyOptionsChain.d.ts → types/applyOptionsChain.d.ts} +0 -0
- /package/dist/{babel.d.ts → types/babel.d.ts} +0 -0
- /package/dist/{chainId.d.ts → types/chainId.d.ts} +0 -0
- /package/dist/{clearConsole.d.ts → types/clearConsole.d.ts} +0 -0
- /package/dist/{commands.d.ts → types/commands.d.ts} +0 -0
- /package/dist/{compatRequire.d.ts → types/compatRequire.d.ts} +0 -0
- /package/dist/{compiled.d.ts → types/compiled.d.ts} +0 -0
- /package/dist/{constants.d.ts → types/constants.d.ts} +0 -0
- /package/dist/{debug.d.ts → types/debug.d.ts} +0 -0
- /package/dist/{emptyDir.d.ts → types/emptyDir.d.ts} +0 -0
- /package/dist/{ensureAbsolutePath.d.ts → types/ensureAbsolutePath.d.ts} +0 -0
- /package/dist/{ensureArray.d.ts → types/ensureArray.d.ts} +0 -0
- /package/dist/{findExists.d.ts → types/findExists.d.ts} +0 -0
- /package/dist/{generateMetaTags.d.ts → types/generateMetaTags.d.ts} +0 -0
- /package/dist/{getBrowserslist.d.ts → types/getBrowserslist.d.ts} +0 -0
- /package/dist/{getCoreJsVersion.d.ts → types/getCoreJsVersion.d.ts} +0 -0
- /package/dist/{getEntryOptions.d.ts → types/getEntryOptions.d.ts} +0 -0
- /package/dist/{getPackageManager.d.ts → types/getPackageManager.d.ts} +0 -0
- /package/dist/{getPort.d.ts → types/getPort.d.ts} +0 -0
- /package/dist/{getServerConfig.d.ts → types/getServerConfig.d.ts} +0 -0
- /package/dist/{getTargetDir.d.ts → types/getTargetDir.d.ts} +0 -0
- /package/dist/{import.d.ts → types/import.d.ts} +0 -0
- /package/dist/{index.d.ts → types/index.d.ts} +0 -0
- /package/dist/{is → types/is}/index.d.ts +0 -0
- /package/dist/{is → types/is}/nodeEnv.d.ts +0 -0
- /package/dist/{is → types/is}/platform.d.ts +0 -0
- /package/dist/{is → types/is}/type.d.ts +0 -0
- /package/dist/{logger.d.ts → types/logger.d.ts} +0 -0
- /package/dist/{monorepo.d.ts → types/monorepo.d.ts} +0 -0
- /package/dist/{nodeEnv.d.ts → types/nodeEnv.d.ts} +0 -0
- /package/dist/{path.d.ts → types/path.d.ts} +0 -0
- /package/dist/{pathSerializer.d.ts → types/pathSerializer.d.ts} +0 -0
- /package/dist/{plugin.d.ts → types/plugin.d.ts} +0 -0
- /package/dist/{prettyInstructions.d.ts → types/prettyInstructions.d.ts} +0 -0
- /package/dist/{printBuildError.d.ts → types/printBuildError.d.ts} +0 -0
- /package/dist/{react.d.ts → types/react.d.ts} +0 -0
- /package/dist/{readTsConfig.d.ts → types/readTsConfig.d.ts} +0 -0
- /package/dist/{removeSlash.d.ts → types/removeSlash.d.ts} +0 -0
- /package/dist/{resolve.d.ts → types/resolve.d.ts} +0 -0
- /package/dist/{routes.d.ts → types/routes.d.ts} +0 -0
- /package/dist/{runtimeExports.d.ts → types/runtimeExports.d.ts} +0 -0
- /package/dist/{ssr.d.ts → types/ssr.d.ts} +0 -0
- /package/dist/{storage.d.ts → types/storage.d.ts} +0 -0
- /package/dist/{testUtils.d.ts → types/testUtils.d.ts} +0 -0
- /package/dist/{types.d.ts → types/types.d.ts} +0 -0
- /package/dist/{universal → types/universal}/constants.d.ts +0 -0
- /package/dist/{universal → types/universal}/formatWebpack.d.ts +0 -0
- /package/dist/{universal → types/universal}/nestedRoutes.d.ts +0 -0
- /package/dist/{universal → types/universal}/remixRouter.d.ts +0 -0
- /package/dist/{universal → types/universal}/serialize.d.ts +0 -0
- /package/dist/{version.d.ts → types/version.d.ts} +0 -0
- /package/dist/{wait.d.ts → types/wait.d.ts} +0 -0
- /package/dist/{watch.d.ts → types/watch.d.ts} +0 -0
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
var __create = Object.create;
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
6
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
|
+
var __export = (target, all) => {
|
|
8
|
+
for (var name in all)
|
|
9
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
10
|
+
};
|
|
11
|
+
var __copyProps = (to, from, except, desc) => {
|
|
12
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
13
|
+
for (let key of __getOwnPropNames(from))
|
|
14
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
15
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
16
|
+
}
|
|
17
|
+
return to;
|
|
18
|
+
};
|
|
19
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
20
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
21
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
22
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
23
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
24
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
25
|
+
mod
|
|
26
|
+
));
|
|
27
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
28
|
+
var version_exports = {};
|
|
29
|
+
__export(version_exports, {
|
|
30
|
+
getPnpmVersion: () => getPnpmVersion,
|
|
31
|
+
isReact18: () => isReact18
|
|
32
|
+
});
|
|
33
|
+
module.exports = __toCommonJS(version_exports);
|
|
34
|
+
var import_path = __toESM(require("path"));
|
|
35
|
+
var import_compiled = require("./compiled");
|
|
36
|
+
async function getPnpmVersion() {
|
|
37
|
+
const { stdout } = await (0, import_compiled.execa)("pnpm", ["--version"]);
|
|
38
|
+
return stdout;
|
|
39
|
+
}
|
|
40
|
+
const isReact18 = (cwd) => {
|
|
41
|
+
const pkgPath = import_path.default.join(cwd, "package.json");
|
|
42
|
+
if (!import_compiled.fs.existsSync(pkgPath)) {
|
|
43
|
+
return false;
|
|
44
|
+
}
|
|
45
|
+
const pkgInfo = JSON.parse(import_compiled.fs.readFileSync(pkgPath, "utf8"));
|
|
46
|
+
const deps = {
|
|
47
|
+
...pkgInfo.devDependencies,
|
|
48
|
+
...pkgInfo.dependencies
|
|
49
|
+
};
|
|
50
|
+
if (typeof deps.react !== "string") {
|
|
51
|
+
return false;
|
|
52
|
+
}
|
|
53
|
+
return import_compiled.semver.satisfies(import_compiled.semver.minVersion(deps.react), ">=18.0.0");
|
|
54
|
+
};
|
|
55
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
56
|
+
0 && (module.exports = {
|
|
57
|
+
getPnpmVersion,
|
|
58
|
+
isReact18
|
|
59
|
+
});
|
|
@@ -25,26 +25,6 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
|
|
|
25
25
|
mod
|
|
26
26
|
));
|
|
27
27
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
28
|
-
var __async = (__this, __arguments, generator) => {
|
|
29
|
-
return new Promise((resolve, reject) => {
|
|
30
|
-
var fulfilled = (value) => {
|
|
31
|
-
try {
|
|
32
|
-
step(generator.next(value));
|
|
33
|
-
} catch (e) {
|
|
34
|
-
reject(e);
|
|
35
|
-
}
|
|
36
|
-
};
|
|
37
|
-
var rejected = (value) => {
|
|
38
|
-
try {
|
|
39
|
-
step(generator.throw(value));
|
|
40
|
-
} catch (e) {
|
|
41
|
-
reject(e);
|
|
42
|
-
}
|
|
43
|
-
};
|
|
44
|
-
var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
|
|
45
|
-
step((generator = generator.apply(__this, __arguments)).next());
|
|
46
|
-
});
|
|
47
|
-
};
|
|
48
28
|
var watch_exports = {};
|
|
49
29
|
__export(watch_exports, {
|
|
50
30
|
WatchChangeType: () => WatchChangeType,
|
|
@@ -64,20 +44,20 @@ const watch = (watchDir, runTask, ignored = []) => {
|
|
|
64
44
|
ignored
|
|
65
45
|
});
|
|
66
46
|
watcher.on("ready", () => ready = true);
|
|
67
|
-
watcher.on("change", (filePath) =>
|
|
47
|
+
watcher.on("change", async (filePath) => {
|
|
68
48
|
const changedFilePath = path.resolve(filePath);
|
|
69
|
-
|
|
70
|
-
})
|
|
71
|
-
watcher.on("add", (filePath) =>
|
|
49
|
+
await runTask({ changedFilePath, changeType: WatchChangeType.CHANGE });
|
|
50
|
+
});
|
|
51
|
+
watcher.on("add", async (filePath) => {
|
|
72
52
|
const changedFilePath = path.resolve(filePath);
|
|
73
53
|
if (ready) {
|
|
74
|
-
|
|
54
|
+
await runTask({ changedFilePath, changeType: WatchChangeType.ADD });
|
|
75
55
|
}
|
|
76
|
-
})
|
|
77
|
-
watcher.on("unlink", (filePath) =>
|
|
56
|
+
});
|
|
57
|
+
watcher.on("unlink", async (filePath) => {
|
|
78
58
|
const changedFilePath = path.resolve(filePath);
|
|
79
|
-
|
|
80
|
-
})
|
|
59
|
+
await runTask({ changedFilePath, changeType: WatchChangeType.UNLINK });
|
|
60
|
+
});
|
|
81
61
|
watcher.on("error", (err) => {
|
|
82
62
|
throw err;
|
|
83
63
|
});
|
|
@@ -0,0 +1,180 @@
|
|
|
1
|
+
function _arrayLikeToArray(arr, len) {
|
|
2
|
+
if (len == null || len > arr.length) len = arr.length;
|
|
3
|
+
for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
|
|
4
|
+
return arr2;
|
|
5
|
+
}
|
|
6
|
+
function _arrayWithHoles(arr) {
|
|
7
|
+
if (Array.isArray(arr)) return arr;
|
|
8
|
+
}
|
|
9
|
+
function _iterableToArrayLimit(arr, i) {
|
|
10
|
+
var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"];
|
|
11
|
+
if (_i == null) return;
|
|
12
|
+
var _arr = [];
|
|
13
|
+
var _n = true;
|
|
14
|
+
var _d = false;
|
|
15
|
+
var _s, _e;
|
|
16
|
+
try {
|
|
17
|
+
for(_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true){
|
|
18
|
+
_arr.push(_s.value);
|
|
19
|
+
if (i && _arr.length === i) break;
|
|
20
|
+
}
|
|
21
|
+
} catch (err) {
|
|
22
|
+
_d = true;
|
|
23
|
+
_e = err;
|
|
24
|
+
} finally{
|
|
25
|
+
try {
|
|
26
|
+
if (!_n && _i["return"] != null) _i["return"]();
|
|
27
|
+
} finally{
|
|
28
|
+
if (_d) throw _e;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
return _arr;
|
|
32
|
+
}
|
|
33
|
+
function _nonIterableRest() {
|
|
34
|
+
throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
|
|
35
|
+
}
|
|
36
|
+
function _slicedToArray(arr, i) {
|
|
37
|
+
return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();
|
|
38
|
+
}
|
|
39
|
+
function _unsupportedIterableToArray(o, minLen) {
|
|
40
|
+
if (!o) return;
|
|
41
|
+
if (typeof o === "string") return _arrayLikeToArray(o, minLen);
|
|
42
|
+
var n = Object.prototype.toString.call(o).slice(8, -1);
|
|
43
|
+
if (n === "Object" && o.constructor) n = o.constructor.name;
|
|
44
|
+
if (n === "Map" || n === "Set") return Array.from(n);
|
|
45
|
+
if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);
|
|
46
|
+
}
|
|
47
|
+
import fs from "fs";
|
|
48
|
+
import path from "path";
|
|
49
|
+
import { chalk, filesize, stripAnsi, gzipSize, recursiveReaddir } from "./compiled";
|
|
50
|
+
import { logger } from "./logger";
|
|
51
|
+
function canReadAsset(asset) {
|
|
52
|
+
return /\.(js|css)$/.test(asset) && !/service-worker\.js/.test(asset) && !/precache-manifest\.[0-9a-f]+\.js/.test(asset);
|
|
53
|
+
}
|
|
54
|
+
function printFileSizesAfterBuild(webpackStats, previousSizeMap, buildFolder, maxBundleGzipSize, maxChunkGzipSize) {
|
|
55
|
+
var root = previousSizeMap.root;
|
|
56
|
+
var sizes = previousSizeMap.sizes;
|
|
57
|
+
var assets = (webpackStats.stats || [
|
|
58
|
+
webpackStats
|
|
59
|
+
]).map(function(stats) {
|
|
60
|
+
return stats.toJson({
|
|
61
|
+
all: false,
|
|
62
|
+
assets: true
|
|
63
|
+
}).assets.filter(function(asset) {
|
|
64
|
+
return canReadAsset(asset.name);
|
|
65
|
+
}).map(function(asset) {
|
|
66
|
+
var fileContents = fs.readFileSync(path.join(root, asset.name));
|
|
67
|
+
var size = fileContents.length;
|
|
68
|
+
var gzippedSize = gzipSize.sync(fileContents);
|
|
69
|
+
var _ref = _slicedToArray(sizes[removeFileNameHash(root, asset.name)] || [], 2), previousSize = _ref[0], previousGzipSize = _ref[1];
|
|
70
|
+
var sizeDifference = getDifferenceLabel(size, previousSize);
|
|
71
|
+
var gzipSizeDifference = getDifferenceLabel(gzippedSize, previousGzipSize);
|
|
72
|
+
return {
|
|
73
|
+
folder: path.join(path.basename(buildFolder), path.dirname(asset.name)),
|
|
74
|
+
name: path.basename(asset.name),
|
|
75
|
+
gzippedSize: gzippedSize,
|
|
76
|
+
sizeLabel: filesize(size) + (sizeDifference ? " (" + sizeDifference + ")" : ""),
|
|
77
|
+
gzipSizeLabel: filesize(gzippedSize) + (gzipSizeDifference ? " (" + gzipSizeDifference + ")" : "")
|
|
78
|
+
};
|
|
79
|
+
});
|
|
80
|
+
}).reduce(function(single, all) {
|
|
81
|
+
return all.concat(single);
|
|
82
|
+
}, []);
|
|
83
|
+
assets.sort(function(a, b) {
|
|
84
|
+
return b.size - a.size;
|
|
85
|
+
});
|
|
86
|
+
var longestSizeLabelLength = Math.max.apply(null, assets.map(function(a) {
|
|
87
|
+
return stripAnsi(a.sizeLabel).length;
|
|
88
|
+
}));
|
|
89
|
+
var longestFileNameLength = Math.max.apply(null, assets.map(function(a) {
|
|
90
|
+
return stripAnsi(a.folder + path.sep + a.name).length;
|
|
91
|
+
}));
|
|
92
|
+
printFileSizesHeader(longestFileNameLength, longestSizeLabelLength);
|
|
93
|
+
var suggestBundleSplitting = false;
|
|
94
|
+
assets.forEach(function(asset) {
|
|
95
|
+
var folder = asset.folder, name = asset.name, sizeLabel = asset.sizeLabel, gzipSizeLabel = asset.gzipSizeLabel, gzippedSize = asset.gzippedSize;
|
|
96
|
+
var fileNameLength = stripAnsi(folder + path.sep + name).length;
|
|
97
|
+
var sizeLength = stripAnsi(sizeLabel).length;
|
|
98
|
+
if (sizeLength < longestSizeLabelLength) {
|
|
99
|
+
var rightPadding = " ".repeat(longestSizeLabelLength - sizeLength);
|
|
100
|
+
sizeLabel += rightPadding;
|
|
101
|
+
}
|
|
102
|
+
var fileNameLabel = chalk.dim(asset.folder + path.sep) + chalk.cyan(asset.name);
|
|
103
|
+
if (fileNameLength < longestFileNameLength) {
|
|
104
|
+
var rightPadding = " ".repeat(longestFileNameLength - fileNameLength);
|
|
105
|
+
fileNameLabel += rightPadding;
|
|
106
|
+
}
|
|
107
|
+
var isMainBundle = asset.name.indexOf("main.") === 0;
|
|
108
|
+
var maxRecommendedSize = isMainBundle ? maxBundleGzipSize : maxChunkGzipSize;
|
|
109
|
+
var isLarge = maxRecommendedSize && gzippedSize > maxRecommendedSize;
|
|
110
|
+
if (isLarge && path.extname(asset.name) === ".js") {
|
|
111
|
+
suggestBundleSplitting = true;
|
|
112
|
+
}
|
|
113
|
+
logger.log(" " + fileNameLabel + " " + sizeLabel + " " + (isLarge ? chalk.yellow(gzipSizeLabel) : gzipSizeLabel));
|
|
114
|
+
});
|
|
115
|
+
if (suggestBundleSplitting) {
|
|
116
|
+
logger.log();
|
|
117
|
+
logger.warn("The bundle size is significantly larger than recommended.");
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
function printFileSizesHeader(longestFileNameLength, longestSizeLabelLength) {
|
|
121
|
+
var longestLengths = [
|
|
122
|
+
longestFileNameLength,
|
|
123
|
+
longestSizeLabelLength
|
|
124
|
+
];
|
|
125
|
+
var headerRow = [
|
|
126
|
+
"File",
|
|
127
|
+
"Size",
|
|
128
|
+
"Gzipped"
|
|
129
|
+
].reduce(function(prev, cur, index) {
|
|
130
|
+
var length = longestLengths[index];
|
|
131
|
+
var curLabel = cur;
|
|
132
|
+
if (length) {
|
|
133
|
+
curLabel = cur.length < length ? cur + " ".repeat(length - cur.length) : cur;
|
|
134
|
+
}
|
|
135
|
+
return prev + curLabel + " ";
|
|
136
|
+
}, " ");
|
|
137
|
+
logger.log(chalk.bold(chalk.blue(headerRow)));
|
|
138
|
+
}
|
|
139
|
+
function removeFileNameHash(buildFolder, fileName) {
|
|
140
|
+
return fileName.replace(buildFolder, "").replace(/\\/g, "/").replace(/\/?(.*)(\.[0-9a-f]+)(\.chunk)?(\.js|\.css)/, function(match, p1, p2, p3, p4) {
|
|
141
|
+
return p1 + p4;
|
|
142
|
+
});
|
|
143
|
+
}
|
|
144
|
+
function getDifferenceLabel(currentSize, previousSize) {
|
|
145
|
+
var FIFTY_KILOBYTES = 1024 * 50;
|
|
146
|
+
var difference = currentSize - previousSize;
|
|
147
|
+
var fileSize = !Number.isNaN(difference) ? filesize(difference) : 0;
|
|
148
|
+
if (difference >= FIFTY_KILOBYTES) {
|
|
149
|
+
return chalk.red("+" + fileSize);
|
|
150
|
+
} else if (difference < FIFTY_KILOBYTES && difference > 0) {
|
|
151
|
+
return chalk.yellow("+" + fileSize);
|
|
152
|
+
} else if (difference < 0) {
|
|
153
|
+
return chalk.green(fileSize);
|
|
154
|
+
} else {
|
|
155
|
+
return "";
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
function measureFileSizesBeforeBuild(buildFolder) {
|
|
159
|
+
return new Promise(function(resolve) {
|
|
160
|
+
recursiveReaddir(buildFolder, function(err, fileNames) {
|
|
161
|
+
var sizes;
|
|
162
|
+
if (!err && fileNames) {
|
|
163
|
+
sizes = fileNames.filter(canReadAsset).reduce(function(memo, fileName) {
|
|
164
|
+
var contents = fs.readFileSync(fileName);
|
|
165
|
+
var key = removeFileNameHash(buildFolder, fileName);
|
|
166
|
+
memo[key] = [
|
|
167
|
+
contents.length,
|
|
168
|
+
gzipSize.sync(contents)
|
|
169
|
+
];
|
|
170
|
+
return memo;
|
|
171
|
+
}, {});
|
|
172
|
+
}
|
|
173
|
+
resolve({
|
|
174
|
+
root: buildFolder,
|
|
175
|
+
sizes: sizes || {}
|
|
176
|
+
});
|
|
177
|
+
});
|
|
178
|
+
});
|
|
179
|
+
}
|
|
180
|
+
export { measureFileSizesBeforeBuild, printFileSizesAfterBuild };
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
function _defineProperty(obj, key, value) {
|
|
2
|
+
if (key in obj) {
|
|
3
|
+
Object.defineProperty(obj, key, {
|
|
4
|
+
value: value,
|
|
5
|
+
enumerable: true,
|
|
6
|
+
configurable: true,
|
|
7
|
+
writable: true
|
|
8
|
+
});
|
|
9
|
+
} else {
|
|
10
|
+
obj[key] = value;
|
|
11
|
+
}
|
|
12
|
+
return obj;
|
|
13
|
+
}
|
|
14
|
+
function _objectSpread(target) {
|
|
15
|
+
for(var i = 1; i < arguments.length; i++){
|
|
16
|
+
var source = arguments[i] != null ? arguments[i] : {};
|
|
17
|
+
var ownKeys = Object.keys(source);
|
|
18
|
+
if (typeof Object.getOwnPropertySymbols === "function") {
|
|
19
|
+
ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym) {
|
|
20
|
+
return Object.getOwnPropertyDescriptor(source, sym).enumerable;
|
|
21
|
+
}));
|
|
22
|
+
}
|
|
23
|
+
ownKeys.forEach(function(key) {
|
|
24
|
+
_defineProperty(target, key, source[key]);
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
return target;
|
|
28
|
+
}
|
|
29
|
+
import fs from "fs";
|
|
30
|
+
import path from "path";
|
|
31
|
+
import { chalk } from "./compiled";
|
|
32
|
+
import { readTsConfigByFile } from "./readTsConfig";
|
|
33
|
+
import { applyOptionsChain } from "./applyOptionsChain";
|
|
34
|
+
var validAlias = function(modernConfig, param) {
|
|
35
|
+
var tsconfigPath = param.tsconfigPath;
|
|
36
|
+
var alias = modernConfig.source.alias;
|
|
37
|
+
if (!alias) {
|
|
38
|
+
return null;
|
|
39
|
+
}
|
|
40
|
+
var isTsProject = fs.existsSync(tsconfigPath);
|
|
41
|
+
if (!isTsProject) {
|
|
42
|
+
return null;
|
|
43
|
+
}
|
|
44
|
+
var userAlias = getUserAlias(alias);
|
|
45
|
+
if (Object.keys(userAlias).length > 0) {
|
|
46
|
+
return chalk.red('Note: Please use `compilerOptions.paths` in "tsconfig.json" file replace `source.alias` config in "modern.config.js/ts" when project is typescript');
|
|
47
|
+
}
|
|
48
|
+
return null;
|
|
49
|
+
};
|
|
50
|
+
var mergeAlias = function(alias) {
|
|
51
|
+
return applyOptionsChain({}, alias);
|
|
52
|
+
};
|
|
53
|
+
var getAliasConfig = function(aliasOption, option) {
|
|
54
|
+
var _tsconfig_compilerOptions, _tsconfig_compilerOptions1;
|
|
55
|
+
var isTsProject = fs.existsSync(option.tsconfigPath);
|
|
56
|
+
var alias = mergeAlias(aliasOption);
|
|
57
|
+
if (!isTsProject) {
|
|
58
|
+
return {
|
|
59
|
+
absoluteBaseUrl: option.appDirectory,
|
|
60
|
+
paths: alias,
|
|
61
|
+
isTsPath: false,
|
|
62
|
+
isTsProject: isTsProject
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
var tsconfig = readTsConfigByFile(option.tsconfigPath);
|
|
66
|
+
var baseUrl = tsconfig === null || tsconfig === void 0 ? void 0 : (_tsconfig_compilerOptions = tsconfig.compilerOptions) === null || _tsconfig_compilerOptions === void 0 ? void 0 : _tsconfig_compilerOptions.baseUrl;
|
|
67
|
+
return {
|
|
68
|
+
absoluteBaseUrl: baseUrl ? path.join(option.appDirectory, baseUrl) : option.appDirectory,
|
|
69
|
+
paths: _objectSpread({}, alias, tsconfig === null || tsconfig === void 0 ? void 0 : (_tsconfig_compilerOptions1 = tsconfig.compilerOptions) === null || _tsconfig_compilerOptions1 === void 0 ? void 0 : _tsconfig_compilerOptions1.paths),
|
|
70
|
+
isTsPath: true,
|
|
71
|
+
isTsProject: isTsProject
|
|
72
|
+
};
|
|
73
|
+
};
|
|
74
|
+
var getUserAlias = function() {
|
|
75
|
+
var alias = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {};
|
|
76
|
+
return Object.keys(alias).reduce(function(o, k) {
|
|
77
|
+
if (Array.isArray(alias[k])) {
|
|
78
|
+
o[k] = alias[k];
|
|
79
|
+
}
|
|
80
|
+
return o;
|
|
81
|
+
}, {});
|
|
82
|
+
};
|
|
83
|
+
export { getAliasConfig, getUserAlias, mergeAlias, validAlias };
|
|
@@ -0,0 +1,168 @@
|
|
|
1
|
+
function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
|
|
2
|
+
try {
|
|
3
|
+
var info = gen[key](arg);
|
|
4
|
+
var value = info.value;
|
|
5
|
+
} catch (error) {
|
|
6
|
+
reject(error);
|
|
7
|
+
return;
|
|
8
|
+
}
|
|
9
|
+
if (info.done) {
|
|
10
|
+
resolve(value);
|
|
11
|
+
} else {
|
|
12
|
+
Promise.resolve(value).then(_next, _throw);
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
function _asyncToGenerator(fn) {
|
|
16
|
+
return function() {
|
|
17
|
+
var self = this, args = arguments;
|
|
18
|
+
return new Promise(function(resolve, reject) {
|
|
19
|
+
var gen = fn.apply(self, args);
|
|
20
|
+
function _next(value) {
|
|
21
|
+
asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);
|
|
22
|
+
}
|
|
23
|
+
function _throw(err) {
|
|
24
|
+
asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);
|
|
25
|
+
}
|
|
26
|
+
_next(undefined);
|
|
27
|
+
});
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
var __generator = this && this.__generator || function(thisArg, body) {
|
|
31
|
+
var f, y, t, g, _ = {
|
|
32
|
+
label: 0,
|
|
33
|
+
sent: function() {
|
|
34
|
+
if (t[0] & 1) throw t[1];
|
|
35
|
+
return t[1];
|
|
36
|
+
},
|
|
37
|
+
trys: [],
|
|
38
|
+
ops: []
|
|
39
|
+
};
|
|
40
|
+
return(g = {
|
|
41
|
+
next: verb(0),
|
|
42
|
+
"throw": verb(1),
|
|
43
|
+
"return": verb(2)
|
|
44
|
+
}, typeof Symbol === "function" && (g[Symbol.iterator] = function() {
|
|
45
|
+
return this;
|
|
46
|
+
}), g);
|
|
47
|
+
function verb(n) {
|
|
48
|
+
return function(v) {
|
|
49
|
+
return step([
|
|
50
|
+
n,
|
|
51
|
+
v
|
|
52
|
+
]);
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
function step(op) {
|
|
56
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
57
|
+
while(_)try {
|
|
58
|
+
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
59
|
+
if (y = 0, t) op = [
|
|
60
|
+
op[0] & 2,
|
|
61
|
+
t.value
|
|
62
|
+
];
|
|
63
|
+
switch(op[0]){
|
|
64
|
+
case 0:
|
|
65
|
+
case 1:
|
|
66
|
+
t = op;
|
|
67
|
+
break;
|
|
68
|
+
case 4:
|
|
69
|
+
_.label++;
|
|
70
|
+
return {
|
|
71
|
+
value: op[1],
|
|
72
|
+
done: false
|
|
73
|
+
};
|
|
74
|
+
case 5:
|
|
75
|
+
_.label++;
|
|
76
|
+
y = op[1];
|
|
77
|
+
op = [
|
|
78
|
+
0
|
|
79
|
+
];
|
|
80
|
+
continue;
|
|
81
|
+
case 7:
|
|
82
|
+
op = _.ops.pop();
|
|
83
|
+
_.trys.pop();
|
|
84
|
+
continue;
|
|
85
|
+
default:
|
|
86
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
|
|
87
|
+
_ = 0;
|
|
88
|
+
continue;
|
|
89
|
+
}
|
|
90
|
+
if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
|
|
91
|
+
_.label = op[1];
|
|
92
|
+
break;
|
|
93
|
+
}
|
|
94
|
+
if (op[0] === 6 && _.label < t[1]) {
|
|
95
|
+
_.label = t[1];
|
|
96
|
+
t = op;
|
|
97
|
+
break;
|
|
98
|
+
}
|
|
99
|
+
if (t && _.label < t[2]) {
|
|
100
|
+
_.label = t[2];
|
|
101
|
+
_.ops.push(op);
|
|
102
|
+
break;
|
|
103
|
+
}
|
|
104
|
+
if (t[2]) _.ops.pop();
|
|
105
|
+
_.trys.pop();
|
|
106
|
+
continue;
|
|
107
|
+
}
|
|
108
|
+
op = body.call(thisArg, _);
|
|
109
|
+
} catch (e) {
|
|
110
|
+
op = [
|
|
111
|
+
6,
|
|
112
|
+
e
|
|
113
|
+
];
|
|
114
|
+
y = 0;
|
|
115
|
+
} finally{
|
|
116
|
+
f = t = 0;
|
|
117
|
+
}
|
|
118
|
+
if (op[0] & 5) throw op[1];
|
|
119
|
+
return {
|
|
120
|
+
value: op[0] ? op[1] : void 0,
|
|
121
|
+
done: true
|
|
122
|
+
};
|
|
123
|
+
}
|
|
124
|
+
};
|
|
125
|
+
import * as path from "path";
|
|
126
|
+
import { getArgv } from "./commands";
|
|
127
|
+
import { fs, minimist } from "./compiled";
|
|
128
|
+
var isApiOnly = function() {
|
|
129
|
+
var _ref = _asyncToGenerator(function(appDirectory, entryDir) {
|
|
130
|
+
var srcDir, existSrc, options;
|
|
131
|
+
return __generator(this, function(_state) {
|
|
132
|
+
switch(_state.label){
|
|
133
|
+
case 0:
|
|
134
|
+
srcDir = path.join(appDirectory, entryDir !== null && entryDir !== void 0 ? entryDir : "src");
|
|
135
|
+
return [
|
|
136
|
+
4,
|
|
137
|
+
fs.pathExists(srcDir)
|
|
138
|
+
];
|
|
139
|
+
case 1:
|
|
140
|
+
existSrc = _state.sent();
|
|
141
|
+
options = minimist(getArgv());
|
|
142
|
+
return [
|
|
143
|
+
2,
|
|
144
|
+
!existSrc || Boolean(options["api-only"])
|
|
145
|
+
];
|
|
146
|
+
}
|
|
147
|
+
});
|
|
148
|
+
});
|
|
149
|
+
return function isApiOnly(appDirectory, entryDir) {
|
|
150
|
+
return _ref.apply(this, arguments);
|
|
151
|
+
};
|
|
152
|
+
}();
|
|
153
|
+
var isWebOnly = function() {
|
|
154
|
+
var _ref = _asyncToGenerator(function() {
|
|
155
|
+
var options;
|
|
156
|
+
return __generator(this, function(_state) {
|
|
157
|
+
options = minimist(getArgv());
|
|
158
|
+
return [
|
|
159
|
+
2,
|
|
160
|
+
Boolean(options["web-only"])
|
|
161
|
+
];
|
|
162
|
+
});
|
|
163
|
+
});
|
|
164
|
+
return function isWebOnly() {
|
|
165
|
+
return _ref.apply(this, arguments);
|
|
166
|
+
};
|
|
167
|
+
}();
|
|
168
|
+
export { isApiOnly, isWebOnly };
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { isFunction, logger, isPlainObject } from "./index";
|
|
2
|
+
function applyOptionsChain(defaults, options, utils) {
|
|
3
|
+
var mergeFn = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : Object.assign;
|
|
4
|
+
if (!options) {
|
|
5
|
+
return defaults;
|
|
6
|
+
}
|
|
7
|
+
if (isPlainObject(options)) {
|
|
8
|
+
return mergeFn(defaults, options);
|
|
9
|
+
} else if (isFunction(options)) {
|
|
10
|
+
var ret = options(defaults, utils);
|
|
11
|
+
if (ret) {
|
|
12
|
+
if (!isPlainObject(ret)) {
|
|
13
|
+
logger.warn("".concat(options.name, ": Function should mutate the config and return nothing, Or return a cloned or merged version of config object."));
|
|
14
|
+
}
|
|
15
|
+
return ret;
|
|
16
|
+
}
|
|
17
|
+
} else if (Array.isArray(options)) {
|
|
18
|
+
return options.reduce(function(memo, cur) {
|
|
19
|
+
return applyOptionsChain(memo, cur, utils, mergeFn);
|
|
20
|
+
}, defaults);
|
|
21
|
+
} else {
|
|
22
|
+
throw new Error("applyOptionsChain error:\ndefault options is: ".concat(JSON.stringify(defaults)));
|
|
23
|
+
}
|
|
24
|
+
return defaults;
|
|
25
|
+
}
|
|
26
|
+
export { applyOptionsChain };
|