diff --git a/cli.js b/cli.js index 86314845..7cd9e4be 100755 --- a/cli.js +++ b/cli.js @@ -29,10 +29,12 @@ If file/glob is omitted, './package.json' file will be processed. } function parseCliArguments() { - const { values: options, positionals: patterns } = parseArgs({ + const { values: originalOptions, positionals: patterns } = parseArgs({ options: { check: { type: 'boolean', short: 'c', default: false }, quiet: { type: 'boolean', short: 'q', default: false }, + 'no-check': { type: 'boolean', default: false }, + 'no-quiet': { type: 'boolean', default: false }, version: { type: 'boolean', short: 'v', default: false }, help: { type: 'boolean', short: 'h', default: false }, }, @@ -44,6 +46,16 @@ function parseCliArguments() { patterns[0] = 'package.json' } + // support for negated options + const options = originalOptions + for (const key of Object.keys(originalOptions)) { + // no-check: true --> check: false + if (key.startsWith('no-') && originalOptions[key] === true) { + options[key.slice(3)] = false + delete options[key] + } + } + return { options, patterns } }