-
-
Notifications
You must be signed in to change notification settings - Fork 1.7k
/
options-implies.js
33 lines (30 loc) · 903 Bytes
/
options-implies.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#!/usr/bin/env node
const { Command, Option } = require('commander');
const program = new Command();
program
.addOption(new Option('--quiet').implies({ logLevel: 'off' }))
.addOption(
new Option('--log-level <level>')
.choices(['info', 'warning', 'error', 'off'])
.default('info'),
)
.addOption(
new Option(
'-c, --cheese <type>',
'Add the specified type of cheese',
).implies({ dairy: true }),
)
.addOption(
new Option('--no-cheese', 'You do not want any cheese').implies({
dairy: false,
}),
)
.addOption(new Option('--dairy', 'May contain dairy'));
program.parse();
console.log(program.opts());
// Try the following:
// node options-implies.js
// node options-implies.js --quiet
// node options-implies.js --log-level=warning --quiet
// node options-implies.js --cheese=cheddar
// node options-implies.js --no-cheese