deno.land / x / yargs@v17.6.0-deno / example / nested.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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
const argv = require('yargs/yargs')(process.argv.slice(2)).command( 'math', 'math description', yargs => yargs .command( 'add <a> <b>', 'add description', yargs => yargs .positional('a', { describe: 'addend "a"', type: 'number', default: 0, }) .positional('b', { describe: 'addend "b"', type: 'number', default: 0, }), argv => { const {a, b} = argv; console.log(`${a} + ${b} = ${a + b}`); } ) .command( 'sum <numbers..>', 'sum description', yargs => yargs .positional('numbers', { describe: 'numbers to sum', type: 'array', default: [], }) .check(argv => isArrayOfNumbers(argv.numbers) ? true : 'Positional argument "numbers" must only contain numbers' ), argv => { const sum = argv.numbers.reduce((a, b) => a + b, 0); console.log(`The sum of numbers is ${sum}`); } )).argv;
console.log(argv);
function isArrayOfNumbers(arr) { return Array.isArray(arr) && arr.every(n => typeof n === 'number');}
// NOTE: ".argv" and ".parse()" should only be used at top level, not inside builder functions.
yargs

Version Info

Tagged at
a year ago