Files
test-repo/bin/prettier.cjs
T

75 lines
1.8 KiB
JavaScript
Executable File

#!/usr/bin/env node
"use strict";
var nodeModule = require("module");
if (typeof nodeModule.enableCompileCache === "function") {
nodeModule.enableCompileCache();
}
function parseVersion(version) {
var parts = version.split("-", 1)[0].split(".", 3);
return {
major: Number(parts[0]),
minor: Number(parts[1]) || 0,
patch: Number(parts[2]) || 0
};
}
function isVersionSatisfies(version, required) {
required = parseVersion(required);
version = parseVersion(version);
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");
if (index !== -1) {
process.argv.splice(index, 1);
}
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) {
return cli.run();
});
}
// Exposed for test
module.exports.__promise = run();