Files

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

74 lines
1.8 KiB
JavaScript
Raw Permalink Normal View History

#!/usr/bin/env node
"use strict";
2024-11-24 18:08:39 +08:00
var nodeModule = require("module");
if (typeof nodeModule.enableCompileCache === "function") {
nodeModule.enableCompileCache();
}
2026-07-24 08:51:20 +08:00
function parseVersion(version) {
var parts = version.split("-", 1)[0].split(".", 3);
2026-07-24 08:51:20 +08:00
return {
major: Number(parts[0]),
minor: Number(parts[1]) || 0,
patch: Number(parts[2]) || 0
};
}
2026-07-24 08:51:20 +08:00
function isVersionSatisfies(version, required) {
required = parseVersion(required);
version = parseVersion(version);
2026-07-24 08:51:20 +08:00
return (
version.major > required.major ||
(version.major === required.major && version.minor > required.minor) ||
(version.major === required.major &&
version.minor === required.minor &&
version.patch >= required.patch)
);
}
function shouldEnableExperimentalCli() {
var index = process.argv.indexOf("--experimental-cli");
2025-05-06 10:34:05 +08:00
if (index !== -1) {
process.argv.splice(index, 1);
}
2026-07-24 08:51:20 +08:00
return index !== -1 || process.env.PRETTIER_EXPERIMENTAL_CLI;
}
var requiredVersion = require("../package.json").engines.node.replace(">=", "");
function run() {
// Based on `please-upgrade-node` package
if (!isVersionSatisfies(process.versions.node, requiredVersion)) {
var message =
"Prettier requires at least version " +
requiredVersion +
" of Node.js, please upgrade!";
process.exitCode = 1;
console.error(message);
return Promise.reject(new Error(message));
}
var dynamicImport = new Function("module", "return import(module)");
if (shouldEnableExperimentalCli()) {
return dynamicImport("../src/experimental-cli/index.js").then(
function (cli) {
return cli.__promise;
}
);
}
return dynamicImport("../src/cli/index.js").then(function runCli(cli) {
2023-11-30 13:34:09 +08:00
return cli.run();
});
}
2025-05-06 10:34:05 +08:00
// Exposed for test
2026-07-24 08:51:20 +08:00
module.exports.__promise = run();