xwt
2025-07-04 b76e716ff4656191d73eba398e9eb39ee975e13b
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
56
57
58
59
60
61
62
63
64
65
66
67
68
69
'use strict';
 
var parse = require('../');
var test = require('tape');
 
test('numeric short args', function (t) {
    t.plan(2);
    t.deepEqual(parse(['-n123']), { n: 123, _: [] });
    t.deepEqual(
        parse(['-123', '456']),
        { 1: true, 2: true, 3: 456, _: [] }
    );
});
 
test('short', function (t) {
    t.deepEqual(
        parse(['-b']),
        { b: true, _: [] },
        'short boolean'
    );
    t.deepEqual(
        parse(['foo', 'bar', 'baz']),
        { _: ['foo', 'bar', 'baz'] },
        'bare'
    );
    t.deepEqual(
        parse(['-cats']),
        { c: true, a: true, t: true, s: true, _: [] },
        'group'
    );
    t.deepEqual(
        parse(['-cats', 'meow']),
        { c: true, a: true, t: true, s: 'meow', _: [] },
        'short group next'
    );
    t.deepEqual(
        parse(['-h', 'localhost']),
        { h: 'localhost', _: [] },
        'short capture'
    );
    t.deepEqual(
        parse(['-h', 'localhost', '-p', '555']),
        { h: 'localhost', p: 555, _: [] },
        'short captures'
    );
    t.end();
});
 
test('mixed short bool and capture', function (t) {
    t.same(
        parse(['-h', 'localhost', '-fp', '555', 'script.js']),
        {
            f: true, p: 555, h: 'localhost',
            _: ['script.js'],
        }
    );
    t.end();
});
 
test('short and long', function (t) {
    t.deepEqual(
        parse(['-h', 'localhost', '-fp', '555', 'script.js']),
        {
            f: true, p: 555, h: 'localhost',
            _: ['script.js'],
        }
    );
    t.end();
});