switch to using Command.opts() to access options

this fixes an issue  where the options where not properly passed to
eslint, which rendered them useless. uses the `opts()` function to
access them. see [1] for more on info on option parsing with
commander.

[1]: https://www.npmjs.com/package/commander#user-content-options

Signed-off-by: Stefan Sterz <s.sterz@proxmox.com>
This commit is contained in:
Stefan Sterz 2023-08-30 11:24:29 +02:00 committed by Thomas Lamprecht
parent 58b8a1a883
commit 79d6d3d106

View File

@ -27,13 +27,14 @@ program.on('--help', function() {
}); });
program.parse(process.argv); program.parse(process.argv);
let options = program.opts();
if (program.config && program.extend) { if (options.config && options.extend) {
console.error('Cannot use both, --config and --extend, at the same time!'); console.error('Cannot use both, --config and --extend, at the same time!');
process.exit(1); process.exit(1);
} }
if (program.args.length < 1 && !program.outputConfig) { if (program.args.length < 1 && !options.outputConfig) {
program.help(); program.help();
} }
@ -44,8 +45,8 @@ if (!paths.length) {
} }
let threadCount = 4; let threadCount = 4;
if (program.threads) { if (options.threads) {
threadCount = program.threads; threadCount = options.threads;
} }
const defaultConfig = { const defaultConfig = {
@ -274,16 +275,16 @@ let pathExpand = (p) => {
}; };
let config = defaultConfig; let config = defaultConfig;
if (program.config) { if (options.config) {
config = { config = {
"extends": pathExpand(program.config), "extends": pathExpand(options.config),
}; };
} else if (program.extend) { } else if (options.extend) {
config.extends = pathExpand(program.extend); config.extends = pathExpand(options.extend);
console.log(`Extend with path: ${config.extends}`); console.log(`Extend with path: ${config.extends}`);
} }
if (program.outputConfig) { if (options.outputConfig) {
let cfg = JSON.stringify(config, null, 2); let cfg = JSON.stringify(config, null, 2);
console.log(cfg); console.log(cfg);
process.exit(0); process.exit(0);
@ -292,7 +293,7 @@ if (program.outputConfig) {
const cliOptions = { const cliOptions = {
baseConfig: config, baseConfig: config,
useEslintrc: true, useEslintrc: true,
fix: !!program.fix, fix: !!options.fix,
cwd: process.cwd(), cwd: process.cwd(),
}; };
@ -322,7 +323,7 @@ results.forEach(function(result) {
let filename = path.relative(process.cwd(), result.filePath); let filename = path.relative(process.cwd(), result.filePath);
let msgs = result.messages; let msgs = result.messages;
let max_sev = 0; let max_sev = 0;
if (!!program.fix && result.output) { if (!!options.fix && result.output) {
fixes++; fixes++;
} }
if (msgs.length <= 0) { if (msgs.length <= 0) {
@ -337,7 +338,7 @@ results.forEach(function(result) {
let msg = `: line ${color.bold(e.line)} col ${color.bold(e.column)}: ${e.ruleId}`; let msg = `: line ${color.bold(e.line)} col ${color.bold(e.column)}: ${e.ruleId}`;
if (e.severity === 1) { if (e.severity === 1) {
msg = color.yellow("WARN" + msg); msg = color.yellow("WARN" + msg);
if (exitcode < 1 && !!program.strict) { if (exitcode < 1 && !!options.strict) {
exitcode = 1; exitcode = 1;
} }
} else if (e.severity === 2) { } else if (e.severity === 2) {
@ -351,7 +352,7 @@ results.forEach(function(result) {
if (e.message) { if (e.message) {
msg += ` - ${e.message}`; msg += ` - ${e.message}`;
} }
if (!program.fix && e.fix) { if (!options.fix && e.fix) {
fixes++; fixes++;
msg += ' (*)'; msg += ' (*)';
} }
@ -386,7 +387,7 @@ if (results.length > 1) {
} }
console.log('------------------------------------------------------------'); console.log('------------------------------------------------------------');
if (program.fix) { if (options.fix) {
if (fixes > 0) { if (fixes > 0) {
console.log(`Writing ${color.bold(fixes)} fixed files...`); console.log(`Writing ${color.bold(fixes)} fixed files...`);
await eslint.ESLint.outputFixes(results); await eslint.ESLint.outputFixes(results);