Как сказал @shadowspawn, командир не поддерживает такую конструкцию. Однако вы можете смоделировать его, взяв обязательный параметр в качестве аргумента и сделав проверку самостоятельно. Затем вы можете переопределить вывод справки, используя метод использования. Что-то вроде этого.
const assertOnOff = (str) => {
if (!/^(on|off)$/.test(str)) {
Logger.error('Toggle action must be either `on` or `off`');
process.exit(1);
}
};
const expandJson = str => JSON.stringify(JSON.parse(str), null, 2);
async function start(action, features) {
assertOnOff(action);
// ... do things
}
program.command('toggle <action> <FEATURE_NAME...>')
.description('turns a feature on or off')
.usage('(on|off) <FEATURE_NAME...>')
.action(start);
Тогда, когда вы вызываете команду, как это
toggle -h
Вы получите этот вывод справки
Usage: toggle (on|off) <FEATURE_NAME...>
turns a feature on or off
Options:
-i, --institution [name] Institution name
-h, --help output usage information