Skip to content

Commit e5f5067

Browse files
committedOct 16, 2022
[eslint] fix indentation and whitespace
1 parent 42635cd commit e5f5067

16 files changed

+764
-788
lines changed
 

‎.eslintrc

+36-50
Original file line numberDiff line numberDiff line change
@@ -1,54 +1,40 @@
11
{
2-
"root": true,
2+
"root": true,
33

4-
"extends": "@ljharb/eslint-config/node/0.4",
4+
"extends": "@ljharb/eslint-config/node/0.4",
55

6-
"rules": {
7-
"array-bracket-spacing": 0,
8-
"array-element-newline": 0,
9-
"brace-style": 1,
10-
"camelcase": 1,
11-
"comma-dangle": 1,
12-
"comma-spacing": 1,
13-
"complexity": 0,
14-
"curly": 1,
15-
"dot-notation": 1,
16-
"eol-last": 1,
17-
"func-style": 1,
18-
"function-paren-newline": 1,
19-
"indent": [1, 4],
20-
"key-spacing": 1,
21-
"max-lines-per-function": 0,
22-
"max-nested-callbacks": 1,
23-
"max-statements": 0,
24-
"multiline-comment-style": 1,
25-
"no-array-constructor": 1,
26-
"no-continue": 1,
27-
"no-div-regex": 1,
28-
"no-extra-parens": 1,
29-
"no-mixed-operators": 1,
30-
"no-multi-spaces": 1,
31-
"no-multiple-empty-lines": 1,
32-
"no-param-reassign": 1,
33-
"no-plusplus": 1,
34-
"no-proto": 1,
35-
"no-redeclare": 1,
36-
"no-restricted-syntax": 1,
37-
"no-shadow": 1,
38-
"no-trailing-spaces": 1,
39-
"no-unused-vars": 1,
40-
"no-use-before-define": 1,
41-
"object-curly-newline": 1,
42-
"object-curly-spacing": 1,
43-
"operator-linebreak": 1,
44-
"quote-props": 1,
45-
"quotes": 1,
46-
"semi-style": 1,
47-
"semi": 1,
48-
"space-before-blocks": 1,
49-
"space-before-function-paren": 1,
50-
"space-infix-ops": 1,
51-
"strict": 1,
52-
"wrap-regex": 1,
53-
},
6+
"rules": {
7+
"array-element-newline": 0,
8+
"camelcase": 1,
9+
"comma-dangle": 1,
10+
"complexity": 0,
11+
"curly": 1,
12+
"dot-notation": 1,
13+
"func-style": 1,
14+
"max-lines-per-function": 0,
15+
"max-nested-callbacks": 1,
16+
"max-statements": 0,
17+
"multiline-comment-style": 0,
18+
"no-array-constructor": 1,
19+
"no-continue": 1,
20+
"no-div-regex": 1,
21+
"no-extra-parens": 1,
22+
"no-mixed-operators": 1,
23+
"no-param-reassign": 1,
24+
"no-plusplus": 1,
25+
"no-proto": 1,
26+
"no-redeclare": 1,
27+
"no-restricted-syntax": 1,
28+
"no-shadow": 1,
29+
"no-unused-vars": 1,
30+
"no-use-before-define": 1,
31+
"object-curly-newline": 1,
32+
"operator-linebreak": 1,
33+
"quote-props": 1,
34+
"quotes": 1,
35+
"semi-style": 1,
36+
"semi": 1,
37+
"strict": 1,
38+
"wrap-regex": 1,
39+
},
5440
}

‎README.md

+15-11
Original file line numberDiff line numberDiff line change
@@ -30,14 +30,16 @@ $ node example/parse.js -a beep -b boop
3030

3131
```
3232
$ node example/parse.js -x 3 -y 4 -n5 -abc --beep=boop foo bar baz
33-
{ _: [ 'foo', 'bar', 'baz' ],
34-
x: 3,
35-
y: 4,
36-
n: 5,
37-
a: true,
38-
b: true,
39-
c: true,
40-
beep: 'boop' }
33+
{
34+
_: ['foo', 'bar', 'baz'],
35+
x: 3,
36+
y: 4,
37+
n: 5,
38+
a: true,
39+
b: true,
40+
c: true,
41+
beep: 'boop'
42+
}
4143
```
4244

4345
# methods
@@ -71,10 +73,12 @@ argument names to use as aliases
7173
* `opts['--']` - when true, populate `argv._` with everything before the `--`
7274
and `argv['--']` with everything after the `--`. Here's an example:
7375

74-
```
76+
```sh
7577
> require('./')('one two three -- four five --six'.split(' '), { '--': true })
76-
{ _: [ 'one', 'two', 'three' ],
77-
'--': [ 'four', 'five', '--six' ] }
78+
{
79+
_: ['one', 'two', 'three'],
80+
'--': ['four', 'five', '--six'],
81+
}
7882
```
7983
8084
Note that with `opts['--']` set, parsing for arguments still stops after the

‎index.js

+175-189
Original file line numberDiff line numberDiff line change
@@ -1,209 +1,195 @@
11
module.exports = function (args, opts) {
2-
if (!opts) opts = {};
3-
4-
var flags = { bools : {}, strings : {} };
5-
6-
if (typeof opts['boolean'] === 'boolean' && opts['boolean']) {
7-
flags.allBools = true;
8-
} else {
9-
[].concat(opts['boolean']).filter(Boolean).forEach(function (key) {
10-
flags.bools[key] = true;
11-
});
12-
}
13-
14-
var aliases = {};
15-
Object.keys(opts.alias || {}).forEach(function (key) {
16-
aliases[key] = [].concat(opts.alias[key]);
17-
aliases[key].forEach(function (x) {
18-
aliases[x] = [key].concat(aliases[key].filter(function (y) {
19-
return x !== y;
20-
}));
21-
});
22-
});
23-
24-
[].concat(opts.string).filter(Boolean).forEach(function (key) {
25-
flags.strings[key] = true;
26-
if (aliases[key]) {
27-
flags.strings[aliases[key]] = true;
28-
}
29-
});
30-
31-
var defaults = opts['default'] || {};
32-
33-
var argv = { _ : [] };
34-
Object.keys(flags.bools).forEach(function (key) {
35-
setArg(key, defaults[key] === undefined ? false : defaults[key]);
36-
});
37-
38-
var notFlags = [];
39-
40-
if (args.indexOf('--') !== -1) {
41-
notFlags = args.slice(args.indexOf('--')+1);
42-
args = args.slice(0, args.indexOf('--'));
43-
}
44-
45-
function setArg (key, val) {
46-
var value = !flags.strings[key] && isNumber(val)
47-
? Number(val) : val
2+
if (!opts) opts = {};
3+
4+
var flags = { bools: {}, strings: {} };
5+
6+
if (typeof opts['boolean'] === 'boolean' && opts['boolean']) {
7+
flags.allBools = true;
8+
} else {
9+
[].concat(opts['boolean']).filter(Boolean).forEach(function (key) {
10+
flags.bools[key] = true;
11+
});
12+
}
13+
14+
var aliases = {};
15+
Object.keys(opts.alias || {}).forEach(function (key) {
16+
aliases[key] = [].concat(opts.alias[key]);
17+
aliases[key].forEach(function (x) {
18+
aliases[x] = [key].concat(aliases[key].filter(function (y) {
19+
return x !== y;
20+
}));
21+
});
22+
});
23+
24+
[].concat(opts.string).filter(Boolean).forEach(function (key) {
25+
flags.strings[key] = true;
26+
if (aliases[key]) {
27+
flags.strings[aliases[key]] = true;
28+
}
29+
});
30+
31+
var defaults = opts['default'] || {};
32+
33+
var argv = { _: [] };
34+
Object.keys(flags.bools).forEach(function (key) {
35+
setArg(key, defaults[key] === undefined ? false : defaults[key]);
36+
});
37+
38+
var notFlags = [];
39+
40+
if (args.indexOf('--') !== -1) {
41+
notFlags = args.slice(args.indexOf('--') + 1);
42+
args = args.slice(0, args.indexOf('--'));
43+
}
44+
45+
function setArg(key, val) {
46+
var value = !flags.strings[key] && isNumber(val)
47+
? Number(val) : val
4848
;
49-
setKey(argv, key.split('.'), value);
50-
51-
(aliases[key] || []).forEach(function (x) {
52-
setKey(argv, x.split('.'), value);
53-
});
54-
}
55-
56-
for (var i = 0; i < args.length; i++) {
57-
var arg = args[i];
58-
59-
if (/^--.+=/.test(arg)) {
60-
// Using [\s\S] instead of . because js doesn't support the
61-
// 'dotall' regex modifier. See:
62-
// http://stackoverflow.com/a/1068308/13216
63-
var m = arg.match(/^--([^=]+)=([\s\S]*)$/);
64-
setArg(m[1], m[2]);
65-
}
66-
else if (/^--no-.+/.test(arg)) {
67-
var key = arg.match(/^--no-(.+)/)[1];
68-
setArg(key, false);
69-
}
70-
else if (/^--.+/.test(arg)) {
71-
var key = arg.match(/^--(.+)/)[1];
72-
var next = args[i + 1];
73-
if (next !== undefined && !/^-/.test(next)
49+
setKey(argv, key.split('.'), value);
50+
51+
(aliases[key] || []).forEach(function (x) {
52+
setKey(argv, x.split('.'), value);
53+
});
54+
}
55+
56+
for (var i = 0; i < args.length; i++) {
57+
var arg = args[i];
58+
59+
if (/^--.+=/.test(arg)) {
60+
// Using [\s\S] instead of . because js doesn't support the
61+
// 'dotall' regex modifier. See:
62+
// http://stackoverflow.com/a/1068308/13216
63+
var m = arg.match(/^--([^=]+)=([\s\S]*)$/);
64+
setArg(m[1], m[2]);
65+
} else if (/^--no-.+/.test(arg)) {
66+
var key = arg.match(/^--no-(.+)/)[1];
67+
setArg(key, false);
68+
} else if (/^--.+/.test(arg)) {
69+
var key = arg.match(/^--(.+)/)[1];
70+
var next = args[i + 1];
71+
if (next !== undefined && !/^-/.test(next)
7472
&& !flags.bools[key]
7573
&& !flags.allBools
7674
&& (aliases[key] ? !flags.bools[aliases[key]] : true)) {
77-
setArg(key, next);
78-
i++;
79-
}
80-
else if (/^(true|false)$/.test(next)) {
81-
setArg(key, next === 'true');
82-
i++;
83-
}
84-
else {
85-
setArg(key, flags.strings[key] ? '' : true);
86-
}
87-
}
88-
else if (/^-[^-]+/.test(arg)) {
89-
var letters = arg.slice(1,-1).split('');
90-
91-
var broken = false;
92-
for (var j = 0; j < letters.length; j++) {
93-
var next = arg.slice(j+2);
94-
95-
if (next === '-') {
96-
setArg(letters[j], next)
97-
continue;
98-
}
99-
100-
if (/[A-Za-z]/.test(letters[j])
75+
setArg(key, next);
76+
i++;
77+
} else if (/^(true|false)$/.test(next)) {
78+
setArg(key, next === 'true');
79+
i++;
80+
} else {
81+
setArg(key, flags.strings[key] ? '' : true);
82+
}
83+
} else if (/^-[^-]+/.test(arg)) {
84+
var letters = arg.slice(1, -1).split('');
85+
86+
var broken = false;
87+
for (var j = 0; j < letters.length; j++) {
88+
var next = arg.slice(j + 2);
89+
90+
if (next === '-') {
91+
setArg(letters[j], next)
92+
continue;
93+
}
94+
95+
if (/[A-Za-z]/.test(letters[j])
10196
&& /-?\d+(\.\d*)?(e-?\d+)?$/.test(next)) {
102-
setArg(letters[j], next);
103-
broken = true;
104-
break;
105-
}
106-
107-
if (letters[j+1] && letters[j+1].match(/\W/)) {
108-
setArg(letters[j], arg.slice(j+2));
109-
broken = true;
110-
break;
111-
}
112-
else {
113-
setArg(letters[j], flags.strings[letters[j]] ? '' : true);
114-
}
115-
}
116-
117-
var key = arg.slice(-1)[0];
118-
if (!broken && key !== '-') {
119-
if (args[i+1] && !/^(-|--)[^-]/.test(args[i+1])
97+
setArg(letters[j], next);
98+
broken = true;
99+
break;
100+
}
101+
102+
if (letters[j + 1] && letters[j + 1].match(/\W/)) {
103+
setArg(letters[j], arg.slice(j + 2));
104+
broken = true;
105+
break;
106+
} else {
107+
setArg(letters[j], flags.strings[letters[j]] ? '' : true);
108+
}
109+
}
110+
111+
var key = arg.slice(-1)[0];
112+
if (!broken && key !== '-') {
113+
if (args[i + 1] && !/^(-|--)[^-]/.test(args[i + 1])
120114
&& !flags.bools[key]
121115
&& (aliases[key] ? !flags.bools[aliases[key]] : true)) {
122-
setArg(key, args[i+1]);
123-
i++;
124-
}
125-
else if (args[i+1] && /true|false/.test(args[i+1])) {
126-
setArg(key, args[i+1] === 'true');
127-
i++;
128-
}
129-
else {
130-
setArg(key, flags.strings[key] ? '' : true);
131-
}
132-
}
133-
}
134-
else {
135-
argv._.push(
136-
flags.strings['_'] || !isNumber(arg) ? arg : Number(arg)
137-
);
138-
}
139-
}
140-
141-
Object.keys(defaults).forEach(function (key) {
142-
if (!hasKey(argv, key.split('.'))) {
143-
setKey(argv, key.split('.'), defaults[key]);
144-
145-
(aliases[key] || []).forEach(function (x) {
146-
setKey(argv, x.split('.'), defaults[key]);
147-
});
148-
}
149-
});
150-
151-
if (opts['--']) {
152-
argv['--'] = new Array();
153-
notFlags.forEach(function(key) {
154-
argv['--'].push(key);
155-
});
156-
}
157-
else {
158-
notFlags.forEach(function(key) {
159-
argv._.push(key);
160-
});
161-
}
162-
163-
return argv;
116+
setArg(key, args[i + 1]);
117+
i++;
118+
} else if (args[i + 1] && /true|false/.test(args[i + 1])) {
119+
setArg(key, args[i + 1] === 'true');
120+
i++;
121+
} else {
122+
setArg(key, flags.strings[key] ? '' : true);
123+
}
124+
}
125+
} else {
126+
argv._.push(flags.strings['_'] || !isNumber(arg) ? arg : Number(arg));
127+
}
128+
}
129+
130+
Object.keys(defaults).forEach(function (key) {
131+
if (!hasKey(argv, key.split('.'))) {
132+
setKey(argv, key.split('.'), defaults[key]);
133+
134+
(aliases[key] || []).forEach(function (x) {
135+
setKey(argv, x.split('.'), defaults[key]);
136+
});
137+
}
138+
});
139+
140+
if (opts['--']) {
141+
argv['--'] = new Array();
142+
notFlags.forEach(function (key) {
143+
argv['--'].push(key);
144+
});
145+
} else {
146+
notFlags.forEach(function (key) {
147+
argv._.push(key);
148+
});
149+
}
150+
151+
return argv;
164152
};
165153

166-
function hasKey (obj, keys) {
167-
var o = obj;
168-
keys.slice(0,-1).forEach(function (key) {
169-
o = (o[key] || {});
170-
});
154+
function hasKey(obj, keys) {
155+
var o = obj;
156+
keys.slice(0, -1).forEach(function (key) {
157+
o = (o[key] || {});
158+
});
171159

172-
var key = keys[keys.length - 1];
173-
return key in o;
160+
var key = keys[keys.length - 1];
161+
return key in o;
174162
}
175163

176-
function setKey (obj, keys, value) {
177-
var o = obj;
178-
for (var i = 0; i < keys.length-1; i++) {
179-
var key = keys[i];
180-
if (key === '__proto__') return;
181-
if (o[key] === undefined) o[key] = {};
182-
if (o[key] === Object.prototype || o[key] === Number.prototype
164+
function setKey(obj, keys, value) {
165+
var o = obj;
166+
for (var i = 0; i < keys.length - 1; i++) {
167+
var key = keys[i];
168+
if (key === '__proto__') return;
169+
if (o[key] === undefined) o[key] = {};
170+
if (o[key] === Object.prototype || o[key] === Number.prototype
183171
|| o[key] === String.prototype) o[key] = {};
184-
if (o[key] === Array.prototype) o[key] = [];
185-
o = o[key];
186-
}
172+
if (o[key] === Array.prototype) o[key] = [];
173+
o = o[key];
174+
}
187175

188-
var key = keys[keys.length - 1];
189-
if (key === '__proto__') return;
190-
if (o === Object.prototype || o === Number.prototype
176+
var key = keys[keys.length - 1];
177+
if (key === '__proto__') return;
178+
if (o === Object.prototype || o === Number.prototype
191179
|| o === String.prototype) o = {};
192-
if (o === Array.prototype) o = [];
193-
if (o[key] === undefined || typeof o[key] === 'boolean') {
194-
o[key] = value;
195-
}
196-
else if (Array.isArray(o[key])) {
197-
o[key].push(value);
198-
}
199-
else {
200-
o[key] = [ o[key], value ];
201-
}
180+
if (o === Array.prototype) o = [];
181+
if (o[key] === undefined || typeof o[key] === 'boolean') {
182+
o[key] = value;
183+
} else if (Array.isArray(o[key])) {
184+
o[key].push(value);
185+
} else {
186+
o[key] = [o[key], value];
187+
}
202188
}
203189

204-
function isNumber (x) {
205-
if (typeof x === 'number') return true;
206-
if (/^0x[0-9a-f]+$/i.test(x)) return true;
207-
return /^[-+]?(?:\d+(?:\.\d*)?|\.\d+)(e[-+]?\d+)?$/.test(x);
190+
function isNumber(x) {
191+
if (typeof x === 'number') return true;
192+
if (/^0x[0-9a-f]+$/i.test(x)) return true;
193+
return /^[-+]?(?:\d+(?:\.\d*)?|\.\d+)(e[-+]?\d+)?$/.test(x);
208194
}
209195

‎package.json

+72-72
Original file line numberDiff line numberDiff line change
@@ -1,74 +1,74 @@
11
{
2-
"name": "minimist",
3-
"version": "0.2.2",
4-
"description": "parse argument options",
5-
"main": "index.js",
6-
"devDependencies": {
7-
"@ljharb/eslint-config": "^21.0.0",
8-
"aud": "^2.0.1",
9-
"auto-changelog": "^2.4.0",
10-
"eslint": "=8.8.0",
11-
"in-publish": "^2.0.1",
12-
"nyc": "^10.3.2",
13-
"safe-publish-latest": "^2.0.0",
14-
"tape": "^5.6.1"
15-
},
16-
"scripts": {
17-
"prepack": "npmignore --auto --commentLines=auto",
18-
"prepublishOnly": "safe-publish-latest",
19-
"prepublish": "not-in-publish || npm run prepublishOnly",
20-
"lint": "eslint --ext=js,mjs .",
21-
"pretest": "npm run lint",
22-
"tests-only": "nyc tape test/*.js",
23-
"test": "npm run tests-only",
24-
"posttest": "aud --production",
25-
"version": "auto-changelog && git add CHANGELOG.md",
26-
"postversion": "auto-changelog && git add CHANGELOG.md && git commit --no-edit --amend && git tag -f \"v$(node -e \"console.log(require('./package.json').version)\")\""
27-
},
28-
"testling": {
29-
"files": "test/*.js",
30-
"browsers": [
31-
"ie/6..latest",
32-
"ff/5",
33-
"firefox/latest",
34-
"chrome/10",
35-
"chrome/latest",
36-
"safari/5.1",
37-
"safari/latest",
38-
"opera/12"
39-
]
40-
},
41-
"repository": {
42-
"type": "git",
43-
"url": "git://github.com/minimistjs/minimist.git"
44-
},
45-
"homepage": "https://github.com/minimistjs/minimist",
46-
"keywords": [
47-
"argv",
48-
"getopt",
49-
"parser",
50-
"optimist"
51-
],
52-
"author": {
53-
"name": "James Halliday",
54-
"email": "mail@substack.net",
55-
"url": "http://substack.net"
56-
},
57-
"funding": {
58-
"url": "https://github.com/sponsors/ljharb"
59-
},
60-
"license": "MIT",
61-
"auto-changelog": {
62-
"output": "CHANGELOG.md",
63-
"template": "keepachangelog",
64-
"unreleased": false,
65-
"commitLimit": false,
66-
"backfillLimit": false,
67-
"hideCredit": true
68-
},
69-
"publishConfig": {
70-
"ignore": [
71-
".github/workflows"
72-
]
73-
}
2+
"name": "minimist",
3+
"version": "0.2.2",
4+
"description": "parse argument options",
5+
"main": "index.js",
6+
"devDependencies": {
7+
"@ljharb/eslint-config": "^21.0.0",
8+
"aud": "^2.0.1",
9+
"auto-changelog": "^2.4.0",
10+
"eslint": "=8.8.0",
11+
"in-publish": "^2.0.1",
12+
"nyc": "^10.3.2",
13+
"safe-publish-latest": "^2.0.0",
14+
"tape": "^5.6.1"
15+
},
16+
"scripts": {
17+
"prepack": "npmignore --auto --commentLines=auto",
18+
"prepublishOnly": "safe-publish-latest",
19+
"prepublish": "not-in-publish || npm run prepublishOnly",
20+
"lint": "eslint --ext=js,mjs .",
21+
"pretest": "npm run lint",
22+
"tests-only": "nyc tape test/*.js",
23+
"test": "npm run tests-only",
24+
"posttest": "aud --production",
25+
"version": "auto-changelog && git add CHANGELOG.md",
26+
"postversion": "auto-changelog && git add CHANGELOG.md && git commit --no-edit --amend && git tag -f \"v$(node -e \"console.log(require('./package.json').version)\")\""
27+
},
28+
"testling": {
29+
"files": "test/*.js",
30+
"browsers": [
31+
"ie/6..latest",
32+
"ff/5",
33+
"firefox/latest",
34+
"chrome/10",
35+
"chrome/latest",
36+
"safari/5.1",
37+
"safari/latest",
38+
"opera/12"
39+
]
40+
},
41+
"repository": {
42+
"type": "git",
43+
"url": "git://github.com/minimistjs/minimist.git"
44+
},
45+
"homepage": "https://github.com/minimistjs/minimist",
46+
"keywords": [
47+
"argv",
48+
"getopt",
49+
"parser",
50+
"optimist"
51+
],
52+
"author": {
53+
"name": "James Halliday",
54+
"email": "mail@substack.net",
55+
"url": "http://substack.net"
56+
},
57+
"funding": {
58+
"url": "https://github.com/sponsors/ljharb"
59+
},
60+
"license": "MIT",
61+
"auto-changelog": {
62+
"output": "CHANGELOG.md",
63+
"template": "keepachangelog",
64+
"unreleased": false,
65+
"commitLimit": false,
66+
"backfillLimit": false,
67+
"hideCredit": true
68+
},
69+
"publishConfig": {
70+
"ignore": [
71+
".github/workflows"
72+
]
73+
}
7474
}

‎test/all_bool.js

+24-24
Original file line numberDiff line numberDiff line change
@@ -2,31 +2,31 @@ var parse = require('../');
22
var test = require('tape');
33

44
test('flag boolean true (default all --args to boolean)', function (t) {
5-
var argv = parse(['moo', '--honk', 'cow'], {
6-
boolean: true
7-
});
8-
9-
t.deepEqual(argv, {
10-
honk: true,
11-
_: ['moo', 'cow']
12-
});
13-
14-
t.deepEqual(typeof argv.honk, 'boolean');
15-
t.end();
5+
var argv = parse(['moo', '--honk', 'cow'], {
6+
boolean: true
7+
});
8+
9+
t.deepEqual(argv, {
10+
honk: true,
11+
_: ['moo', 'cow']
12+
});
13+
14+
t.deepEqual(typeof argv.honk, 'boolean');
15+
t.end();
1616
});
1717

1818
test('flag boolean true only affects double hyphen arguments without equals signs', function (t) {
19-
var argv = parse(['moo', '--honk', 'cow', '-p', '55', '--tacos=good'], {
20-
boolean: true
21-
});
22-
23-
t.deepEqual(argv, {
24-
_: ['moo', 'cow'],
25-
honk: true,
26-
p: 55,
27-
tacos: 'good'
28-
});
29-
30-
t.deepEqual(typeof argv.honk, 'boolean');
31-
t.end();
19+
var argv = parse(['moo', '--honk', 'cow', '-p', '55', '--tacos=good'], {
20+
boolean: true
21+
});
22+
23+
t.deepEqual(argv, {
24+
_: ['moo', 'cow'],
25+
honk: true,
26+
p: 55,
27+
tacos: 'good'
28+
});
29+
30+
t.deepEqual(typeof argv.honk, 'boolean');
31+
t.end();
3232
});

‎test/bool.js

+96-96
Original file line numberDiff line numberDiff line change
@@ -2,118 +2,118 @@ var parse = require('../');
22
var test = require('tape');
33

44
test('flag boolean default false', function (t) {
5-
var argv = parse(['moo'], {
6-
boolean: ['t', 'verbose'],
7-
default: { verbose: false, t: false }
8-
});
9-
10-
t.deepEqual(argv, {
11-
verbose: false,
12-
t: false,
13-
_: ['moo']
14-
});
15-
16-
t.deepEqual(typeof argv.verbose, 'boolean');
17-
t.deepEqual(typeof argv.t, 'boolean');
18-
t.end();
5+
var argv = parse(['moo'], {
6+
boolean: ['t', 'verbose'],
7+
default: { verbose: false, t: false }
8+
});
9+
10+
t.deepEqual(argv, {
11+
verbose: false,
12+
t: false,
13+
_: ['moo']
14+
});
15+
16+
t.deepEqual(typeof argv.verbose, 'boolean');
17+
t.deepEqual(typeof argv.t, 'boolean');
18+
t.end();
1919

2020
});
2121

2222
test('boolean groups', function (t) {
23-
var argv = parse([ '-x', '-z', 'one', 'two', 'three' ], {
24-
boolean: ['x','y','z']
25-
});
26-
27-
t.deepEqual(argv, {
28-
x : true,
29-
y : false,
30-
z : true,
31-
_ : [ 'one', 'two', 'three' ]
32-
});
33-
34-
t.deepEqual(typeof argv.x, 'boolean');
35-
t.deepEqual(typeof argv.y, 'boolean');
36-
t.deepEqual(typeof argv.z, 'boolean');
37-
t.end();
23+
var argv = parse(['-x', '-z', 'one', 'two', 'three'], {
24+
boolean: ['x', 'y', 'z']
25+
});
26+
27+
t.deepEqual(argv, {
28+
x: true,
29+
y: false,
30+
z: true,
31+
_: ['one', 'two', 'three']
32+
});
33+
34+
t.deepEqual(typeof argv.x, 'boolean');
35+
t.deepEqual(typeof argv.y, 'boolean');
36+
t.deepEqual(typeof argv.z, 'boolean');
37+
t.end();
3838
});
3939
test('boolean and alias with chainable api', function (t) {
40-
var aliased = [ '-h', 'derp' ];
41-
var regular = [ '--herp', 'derp' ];
42-
var opts = {
43-
herp: { alias: 'h', boolean: true }
44-
};
45-
var aliasedArgv = parse(aliased, {
46-
boolean: 'herp',
47-
alias: { h: 'herp' }
48-
});
49-
var propertyArgv = parse(regular, {
50-
boolean: 'herp',
51-
alias: { h: 'herp' }
52-
});
53-
var expected = {
54-
herp: true,
55-
h: true,
56-
'_': [ 'derp' ]
57-
};
58-
59-
t.same(aliasedArgv, expected);
60-
t.same(propertyArgv, expected);
61-
t.end();
40+
var aliased = ['-h', 'derp'];
41+
var regular = ['--herp', 'derp'];
42+
var opts = {
43+
herp: { alias: 'h', boolean: true }
44+
};
45+
var aliasedArgv = parse(aliased, {
46+
boolean: 'herp',
47+
alias: { h: 'herp' }
48+
});
49+
var propertyArgv = parse(regular, {
50+
boolean: 'herp',
51+
alias: { h: 'herp' }
52+
});
53+
var expected = {
54+
herp: true,
55+
h: true,
56+
'_': ['derp']
57+
};
58+
59+
t.same(aliasedArgv, expected);
60+
t.same(propertyArgv, expected);
61+
t.end();
6262
});
6363

6464
test('boolean and alias with options hash', function (t) {
65-
var aliased = [ '-h', 'derp' ];
66-
var regular = [ '--herp', 'derp' ];
67-
var opts = {
68-
alias: { 'h': 'herp' },
69-
boolean: 'herp'
70-
};
71-
var aliasedArgv = parse(aliased, opts);
72-
var propertyArgv = parse(regular, opts);
73-
var expected = {
74-
herp: true,
75-
h: true,
76-
'_': [ 'derp' ]
77-
};
78-
t.same(aliasedArgv, expected);
79-
t.same(propertyArgv, expected);
80-
t.end();
65+
var aliased = ['-h', 'derp'];
66+
var regular = ['--herp', 'derp'];
67+
var opts = {
68+
alias: { 'h': 'herp' },
69+
boolean: 'herp'
70+
};
71+
var aliasedArgv = parse(aliased, opts);
72+
var propertyArgv = parse(regular, opts);
73+
var expected = {
74+
herp: true,
75+
h: true,
76+
'_': ['derp']
77+
};
78+
t.same(aliasedArgv, expected);
79+
t.same(propertyArgv, expected);
80+
t.end();
8181
});
8282

8383
test('boolean and alias using explicit true', function (t) {
84-
var aliased = [ '-h', 'true' ];
85-
var regular = [ '--herp', 'true' ];
86-
var opts = {
87-
alias: { h: 'herp' },
88-
boolean: 'h'
89-
};
90-
var aliasedArgv = parse(aliased, opts);
91-
var propertyArgv = parse(regular, opts);
92-
var expected = {
93-
herp: true,
94-
h: true,
95-
'_': [ ]
96-
};
84+
var aliased = ['-h', 'true'];
85+
var regular = ['--herp', 'true'];
86+
var opts = {
87+
alias: { h: 'herp' },
88+
boolean: 'h'
89+
};
90+
var aliasedArgv = parse(aliased, opts);
91+
var propertyArgv = parse(regular, opts);
92+
var expected = {
93+
herp: true,
94+
h: true,
95+
'_': []
96+
};
9797

98-
t.same(aliasedArgv, expected);
99-
t.same(propertyArgv, expected);
100-
t.end();
98+
t.same(aliasedArgv, expected);
99+
t.same(propertyArgv, expected);
100+
t.end();
101101
});
102102

103103
// regression, see https://github.com/substack/node-optimist/issues/71
104-
test('boolean and --x=true', function(t) {
105-
var parsed = parse(['--boool', '--other=true'], {
106-
boolean: 'boool'
107-
});
104+
test('boolean and --x=true', function (t) {
105+
var parsed = parse(['--boool', '--other=true'], {
106+
boolean: 'boool'
107+
});
108+
109+
t.same(parsed.boool, true);
110+
t.same(parsed.other, 'true');
108111

109-
t.same(parsed.boool, true);
110-
t.same(parsed.other, 'true');
112+
parsed = parse(['--boool', '--other=false'], {
113+
boolean: 'boool'
114+
});
111115

112-
parsed = parse(['--boool', '--other=false'], {
113-
boolean: 'boool'
114-
});
115-
116-
t.same(parsed.boool, true);
117-
t.same(parsed.other, 'false');
118-
t.end();
116+
t.same(parsed.boool, true);
117+
t.same(parsed.other, 'false');
118+
t.end();
119119
});

‎test/dash.js

+22-21
Original file line numberDiff line numberDiff line change
@@ -2,30 +2,31 @@ var parse = require('../');
22
var test = require('tape');
33

44
test('-', function (t) {
5-
t.plan(5);
6-
t.deepEqual(parse([ '-n', '-' ]), { n: '-', _: [] });
7-
t.deepEqual(parse([ '-' ]), { _: [ '-' ] });
8-
t.deepEqual(parse([ '-f-' ]), { f: '-', _: [] });
9-
t.deepEqual(
10-
parse([ '-b', '-' ], { boolean: 'b' }),
11-
{ b: true, _: [ '-' ] }
12-
);
13-
t.deepEqual(
14-
parse([ '-s', '-' ], { string: 's' }),
15-
{ s: '-', _: [] }
16-
);
5+
t.plan(5);
6+
t.deepEqual(parse(['-n', '-']), { n: '-', _: [] });
7+
t.deepEqual(parse(['-']), { _: ['-'] });
8+
t.deepEqual(parse(['-f-']), { f: '-', _: [] });
9+
t.deepEqual(
10+
parse(['-b', '-'], { boolean: 'b' }),
11+
{ b: true, _: ['-'] }
12+
);
13+
t.deepEqual(
14+
parse(['-s', '-'], { string: 's' }),
15+
{ s: '-', _: [] }
16+
);
1717
});
1818

1919
test('-a -- b', function (t) {
20-
t.plan(3);
21-
t.deepEqual(parse([ '-a', '--', 'b' ]), { a: true, _: [ 'b' ] });
22-
t.deepEqual(parse([ '--a', '--', 'b' ]), { a: true, _: [ 'b' ] });
23-
t.deepEqual(parse([ '--a', '--', 'b' ]), { a: true, _: [ 'b' ] });
20+
t.plan(3);
21+
t.deepEqual(parse(['-a', '--', 'b']), { a: true, _: ['b'] });
22+
t.deepEqual(parse(['--a', '--', 'b']), { a: true, _: ['b'] });
23+
t.deepEqual(parse(['--a', '--', 'b']), { a: true, _: ['b'] });
2424
});
2525

26-
test('move arguments after the -- into their own `--` array', function(t) {
27-
t.plan(1);
28-
t.deepEqual(
29-
parse([ '--name', 'John', 'before', '--', 'after' ], { '--': true }),
30-
{ name: 'John', _: [ 'before' ], '--': [ 'after' ] });
26+
test('move arguments after the -- into their own `--` array', function (t) {
27+
t.plan(1);
28+
t.deepEqual(
29+
parse(['--name', 'John', 'before', '--', 'after'], { '--': true }),
30+
{ name: 'John', _: ['before'], '--': ['after'] }
31+
);
3132
});

‎test/default_bool.js

+12-12
Original file line numberDiff line numberDiff line change
@@ -2,19 +2,19 @@ var test = require('tape');
22
var parse = require('../');
33

44
test('boolean default true', function (t) {
5-
var argv = parse([], {
6-
boolean: 'sometrue',
7-
default: { sometrue: true }
8-
});
9-
t.equal(argv.sometrue, true);
10-
t.end();
5+
var argv = parse([], {
6+
boolean: 'sometrue',
7+
default: { sometrue: true }
8+
});
9+
t.equal(argv.sometrue, true);
10+
t.end();
1111
});
1212

1313
test('boolean default false', function (t) {
14-
var argv = parse([], {
15-
boolean: 'somefalse',
16-
default: { somefalse: false }
17-
});
18-
t.equal(argv.somefalse, false);
19-
t.end();
14+
var argv = parse([], {
15+
boolean: 'somefalse',
16+
default: { somefalse: false }
17+
});
18+
t.equal(argv.somefalse, false);
19+
t.end();
2020
});

‎test/dotted.js

+11-11
Original file line numberDiff line numberDiff line change
@@ -2,21 +2,21 @@ var parse = require('../');
22
var test = require('tape');
33

44
test('dotted alias', function (t) {
5-
var argv = parse(['--a.b', '22'], {default: {'a.b': 11}, alias: {'a.b': 'aa.bb'}});
6-
t.equal(argv.a.b, 22);
7-
t.equal(argv.aa.bb, 22);
8-
t.end();
5+
var argv = parse(['--a.b', '22'], { default: { 'a.b': 11 }, alias: { 'a.b': 'aa.bb' } });
6+
t.equal(argv.a.b, 22);
7+
t.equal(argv.aa.bb, 22);
8+
t.end();
99
});
1010

1111
test('dotted default', function (t) {
12-
var argv = parse('', {default: {'a.b': 11}, alias: {'a.b': 'aa.bb'}});
13-
t.equal(argv.a.b, 11);
14-
t.equal(argv.aa.bb, 11);
15-
t.end();
12+
var argv = parse('', { default: { 'a.b': 11 }, alias: { 'a.b': 'aa.bb' } });
13+
t.equal(argv.a.b, 11);
14+
t.equal(argv.aa.bb, 11);
15+
t.end();
1616
});
1717

1818
test('dotted default with no alias', function (t) {
19-
var argv = parse('', {default: {'a.b': 11}});
20-
t.equal(argv.a.b, 11);
21-
t.end();
19+
var argv = parse('', { default: { 'a.b': 11 } });
20+
t.equal(argv.a.b, 11);
21+
t.end();
2222
});

‎test/long.js

+26-26
Original file line numberDiff line numberDiff line change
@@ -2,30 +2,30 @@ var test = require('tape');
22
var parse = require('../');
33

44
test('long opts', function (t) {
5-
t.deepEqual(
6-
parse([ '--bool' ]),
7-
{ bool : true, _ : [] },
8-
'long boolean'
9-
);
10-
t.deepEqual(
11-
parse([ '--pow', 'xixxle' ]),
12-
{ pow : 'xixxle', _ : [] },
13-
'long capture sp'
14-
);
15-
t.deepEqual(
16-
parse([ '--pow=xixxle' ]),
17-
{ pow : 'xixxle', _ : [] },
18-
'long capture eq'
19-
);
20-
t.deepEqual(
21-
parse([ '--host', 'localhost', '--port', '555' ]),
22-
{ host : 'localhost', port : 555, _ : [] },
23-
'long captures sp'
24-
);
25-
t.deepEqual(
26-
parse([ '--host=localhost', '--port=555' ]),
27-
{ host : 'localhost', port : 555, _ : [] },
28-
'long captures eq'
29-
);
30-
t.end();
5+
t.deepEqual(
6+
parse(['--bool']),
7+
{ bool: true, _: [] },
8+
'long boolean'
9+
);
10+
t.deepEqual(
11+
parse(['--pow', 'xixxle']),
12+
{ pow: 'xixxle', _: [] },
13+
'long capture sp'
14+
);
15+
t.deepEqual(
16+
parse(['--pow=xixxle']),
17+
{ pow: 'xixxle', _: [] },
18+
'long capture eq'
19+
);
20+
t.deepEqual(
21+
parse(['--host', 'localhost', '--port', '555']),
22+
{ host: 'localhost', port: 555, _: [] },
23+
'long captures sp'
24+
);
25+
t.deepEqual(
26+
parse(['--host=localhost', '--port=555']),
27+
{ host: 'localhost', port: 555, _: [] },
28+
'long captures eq'
29+
);
30+
t.end();
3131
});

‎test/num.js

+28-28
Original file line numberDiff line numberDiff line change
@@ -2,35 +2,35 @@ var parse = require('../');
22
var test = require('tape');
33

44
test('nums', function (t) {
5-
var argv = parse([
6-
'-x', '1234',
7-
'-y', '5.67',
8-
'-z', '1e7',
9-
'-w', '10f',
10-
'--hex', '0xdeadbeef',
11-
'789'
12-
]);
13-
t.deepEqual(argv, {
14-
x : 1234,
15-
y : 5.67,
16-
z : 1e7,
17-
w : '10f',
18-
hex : 0xdeadbeef,
19-
_ : [ 789 ]
20-
});
21-
t.deepEqual(typeof argv.x, 'number');
22-
t.deepEqual(typeof argv.y, 'number');
23-
t.deepEqual(typeof argv.z, 'number');
24-
t.deepEqual(typeof argv.w, 'string');
25-
t.deepEqual(typeof argv.hex, 'number');
26-
t.deepEqual(typeof argv._[0], 'number');
27-
t.end();
5+
var argv = parse([
6+
'-x', '1234',
7+
'-y', '5.67',
8+
'-z', '1e7',
9+
'-w', '10f',
10+
'--hex', '0xdeadbeef',
11+
'789'
12+
]);
13+
t.deepEqual(argv, {
14+
x: 1234,
15+
y: 5.67,
16+
z: 1e7,
17+
w: '10f',
18+
hex: 0xdeadbeef,
19+
_: [789]
20+
});
21+
t.deepEqual(typeof argv.x, 'number');
22+
t.deepEqual(typeof argv.y, 'number');
23+
t.deepEqual(typeof argv.z, 'number');
24+
t.deepEqual(typeof argv.w, 'string');
25+
t.deepEqual(typeof argv.hex, 'number');
26+
t.deepEqual(typeof argv._[0], 'number');
27+
t.end();
2828
});
2929

3030
test('already a number', function (t) {
31-
var argv = parse([ '-x', 1234, 789 ]);
32-
t.deepEqual(argv, { x : 1234, _ : [ 789 ] });
33-
t.deepEqual(typeof argv.x, 'number');
34-
t.deepEqual(typeof argv._[0], 'number');
35-
t.end();
31+
var argv = parse(['-x', 1234, 789]);
32+
t.deepEqual(argv, { x: 1234, _: [789] });
33+
t.deepEqual(typeof argv.x, 'number');
34+
t.deepEqual(typeof argv._[0], 'number');
35+
t.end();
3636
});

‎test/parse.js

+156-157
Original file line numberDiff line numberDiff line change
@@ -2,196 +2,195 @@ var parse = require('../');
22
var test = require('tape');
33

44
test('parse args', function (t) {
5-
t.deepEqual(
6-
parse([ '--no-moo' ]),
7-
{ moo : false, _ : [] },
8-
'no'
9-
);
10-
t.deepEqual(
11-
parse([ '-v', 'a', '-v', 'b', '-v', 'c' ]),
12-
{ v : ['a','b','c'], _ : [] },
13-
'multi'
14-
);
15-
t.end();
5+
t.deepEqual(
6+
parse(['--no-moo']),
7+
{ moo: false, _: [] },
8+
'no'
9+
);
10+
t.deepEqual(
11+
parse(['-v', 'a', '-v', 'b', '-v', 'c']),
12+
{ v: ['a', 'b', 'c'], _: [] },
13+
'multi'
14+
);
15+
t.end();
1616
});
17-
17+
1818
test('comprehensive', function (t) {
19-
t.deepEqual(
20-
parse([
21-
'--name=meowmers', 'bare', '-cats', 'woo',
22-
'-h', 'awesome', '--multi=quux',
23-
'--key', 'value',
24-
'-b', '--bool', '--no-meep', '--multi=baz',
25-
'--', '--not-a-flag', 'eek'
26-
]),
27-
{
28-
c : true,
29-
a : true,
30-
t : true,
31-
s : 'woo',
32-
h : 'awesome',
33-
b : true,
34-
bool : true,
35-
key : 'value',
36-
multi : [ 'quux', 'baz' ],
37-
meep : false,
38-
name : 'meowmers',
39-
_ : [ 'bare', '--not-a-flag', 'eek' ]
40-
}
41-
);
42-
t.end();
19+
t.deepEqual(
20+
parse([
21+
'--name=meowmers', 'bare', '-cats', 'woo',
22+
'-h', 'awesome', '--multi=quux',
23+
'--key', 'value',
24+
'-b', '--bool', '--no-meep', '--multi=baz',
25+
'--', '--not-a-flag', 'eek'
26+
]),
27+
{
28+
c: true,
29+
a: true,
30+
t: true,
31+
s: 'woo',
32+
h: 'awesome',
33+
b: true,
34+
bool: true,
35+
key: 'value',
36+
multi: ['quux', 'baz'],
37+
meep: false,
38+
name: 'meowmers',
39+
_: ['bare', '--not-a-flag', 'eek']
40+
}
41+
);
42+
t.end();
4343
});
4444

4545
test('flag boolean', function (t) {
46-
var argv = parse([ '-t', 'moo' ], { boolean: 't' });
47-
t.deepEqual(argv, { t : true, _ : [ 'moo' ] });
48-
t.deepEqual(typeof argv.t, 'boolean');
49-
t.end();
46+
var argv = parse(['-t', 'moo'], { boolean: 't' });
47+
t.deepEqual(argv, { t: true, _: ['moo'] });
48+
t.deepEqual(typeof argv.t, 'boolean');
49+
t.end();
5050
});
5151

5252
test('flag boolean value', function (t) {
53-
var argv = parse(['--verbose', 'false', 'moo', '-t', 'true'], {
54-
boolean: [ 't', 'verbose' ],
55-
default: { verbose: true }
56-
});
57-
58-
t.deepEqual(argv, {
59-
verbose: false,
60-
t: true,
61-
_: ['moo']
62-
});
63-
64-
t.deepEqual(typeof argv.verbose, 'boolean');
65-
t.deepEqual(typeof argv.t, 'boolean');
66-
t.end();
53+
var argv = parse(['--verbose', 'false', 'moo', '-t', 'true'], {
54+
boolean: ['t', 'verbose'],
55+
default: { verbose: true }
56+
});
57+
58+
t.deepEqual(argv, {
59+
verbose: false,
60+
t: true,
61+
_: ['moo']
62+
});
63+
64+
t.deepEqual(typeof argv.verbose, 'boolean');
65+
t.deepEqual(typeof argv.t, 'boolean');
66+
t.end();
6767
});
6868

69-
test('newlines in params' , function (t) {
70-
var args = parse([ '-s', "X\nX" ])
71-
t.deepEqual(args, { _ : [], s : "X\nX" });
72-
73-
// reproduce in bash:
74-
// VALUE="new
75-
// line"
76-
// node program.js --s="$VALUE"
77-
args = parse([ "--s=X\nX" ])
78-
t.deepEqual(args, { _ : [], s : "X\nX" });
79-
t.end();
69+
test('newlines in params', function (t) {
70+
var args = parse(['-s', "X\nX"])
71+
t.deepEqual(args, { _: [], s: "X\nX" });
72+
73+
// reproduce in bash:
74+
// VALUE="new
75+
// line"
76+
// node program.js --s="$VALUE"
77+
args = parse(["--s=X\nX"])
78+
t.deepEqual(args, { _: [], s: "X\nX" });
79+
t.end();
8080
});
8181

82-
test('strings' , function (t) {
83-
var s = parse([ '-s', '0001234' ], { string: 's' }).s;
84-
t.equal(s, '0001234');
85-
t.equal(typeof s, 'string');
86-
87-
var x = parse([ '-x', '56' ], { string: 'x' }).x;
88-
t.equal(x, '56');
89-
t.equal(typeof x, 'string');
90-
t.end();
82+
test('strings', function (t) {
83+
var s = parse(['-s', '0001234'], { string: 's' }).s;
84+
t.equal(s, '0001234');
85+
t.equal(typeof s, 'string');
86+
87+
var x = parse(['-x', '56'], { string: 'x' }).x;
88+
t.equal(x, '56');
89+
t.equal(typeof x, 'string');
90+
t.end();
9191
});
9292

9393
test('stringArgs', function (t) {
94-
var s = parse([ ' ', ' ' ], { string: '_' })._;
95-
t.same(s.length, 2);
96-
t.same(typeof s[0], 'string');
97-
t.same(s[0], ' ');
98-
t.same(typeof s[1], 'string');
99-
t.same(s[1], ' ');
100-
t.end();
94+
var s = parse([' ', ' '], { string: '_' })._;
95+
t.same(s.length, 2);
96+
t.same(typeof s[0], 'string');
97+
t.same(s[0], ' ');
98+
t.same(typeof s[1], 'string');
99+
t.same(s[1], ' ');
100+
t.end();
101101
});
102102

103-
test('empty strings', function(t) {
104-
var s = parse([ '-s' ], { string: 's' }).s;
105-
t.equal(s, '');
106-
t.equal(typeof s, 'string');
103+
test('empty strings', function (t) {
104+
var s = parse(['-s'], { string: 's' }).s;
105+
t.equal(s, '');
106+
t.equal(typeof s, 'string');
107107

108-
var str = parse([ '--str' ], { string: 'str' }).str;
109-
t.equal(str, '');
110-
t.equal(typeof str, 'string');
108+
var str = parse(['--str'], { string: 'str' }).str;
109+
t.equal(str, '');
110+
t.equal(typeof str, 'string');
111111

112-
var letters = parse([ '-art' ], {
113-
string: [ 'a', 't' ]
114-
});
112+
var letters = parse(['-art'], {
113+
string: ['a', 't']
114+
});
115115

116-
t.equal(letters.a, '');
117-
t.equal(letters.r, true);
118-
t.equal(letters.t, '');
116+
t.equal(letters.a, '');
117+
t.equal(letters.r, true);
118+
t.equal(letters.t, '');
119119

120-
t.end();
120+
t.end();
121121
});
122122

123-
124-
test('string and alias', function(t) {
125-
var x = parse([ '--str', '000123' ], {
126-
string: 's',
127-
alias: { s: 'str' }
128-
});
129-
130-
t.equal(x.str, '000123');
131-
t.equal(typeof x.str, 'string');
132-
t.equal(x.s, '000123');
133-
t.equal(typeof x.s, 'string');
134-
135-
var y = parse([ '-s', '000123' ], {
136-
string: 'str',
137-
alias: { str: 's' }
138-
});
139-
140-
t.equal(y.str, '000123');
141-
t.equal(typeof y.str, 'string');
142-
t.equal(y.s, '000123');
143-
t.equal(typeof y.s, 'string');
144-
t.end();
123+
test('string and alias', function (t) {
124+
var x = parse(['--str', '000123'], {
125+
string: 's',
126+
alias: { s: 'str' }
127+
});
128+
129+
t.equal(x.str, '000123');
130+
t.equal(typeof x.str, 'string');
131+
t.equal(x.s, '000123');
132+
t.equal(typeof x.s, 'string');
133+
134+
var y = parse(['-s', '000123'], {
135+
string: 'str',
136+
alias: { str: 's' }
137+
});
138+
139+
t.equal(y.str, '000123');
140+
t.equal(typeof y.str, 'string');
141+
t.equal(y.s, '000123');
142+
t.equal(typeof y.s, 'string');
143+
t.end();
145144
});
146145

147146
test('slashBreak', function (t) {
148-
t.same(
149-
parse([ '-I/foo/bar/baz' ]),
150-
{ I : '/foo/bar/baz', _ : [] }
151-
);
152-
t.same(
153-
parse([ '-xyz/foo/bar/baz' ]),
154-
{ x : true, y : true, z : '/foo/bar/baz', _ : [] }
155-
);
156-
t.end();
147+
t.same(
148+
parse(['-I/foo/bar/baz']),
149+
{ I: '/foo/bar/baz', _: [] }
150+
);
151+
t.same(
152+
parse(['-xyz/foo/bar/baz']),
153+
{ x: true, y: true, z: '/foo/bar/baz', _: [] }
154+
);
155+
t.end();
157156
});
158157

159158
test('alias', function (t) {
160-
var argv = parse([ '-f', '11', '--zoom', '55' ], {
161-
alias: { z: 'zoom' }
162-
});
163-
t.equal(argv.zoom, 55);
164-
t.equal(argv.z, argv.zoom);
165-
t.equal(argv.f, 11);
166-
t.end();
159+
var argv = parse(['-f', '11', '--zoom', '55'], {
160+
alias: { z: 'zoom' }
161+
});
162+
t.equal(argv.zoom, 55);
163+
t.equal(argv.z, argv.zoom);
164+
t.equal(argv.f, 11);
165+
t.end();
167166
});
168167

169168
test('multiAlias', function (t) {
170-
var argv = parse([ '-f', '11', '--zoom', '55' ], {
171-
alias: { z: [ 'zm', 'zoom' ] }
172-
});
173-
t.equal(argv.zoom, 55);
174-
t.equal(argv.z, argv.zoom);
175-
t.equal(argv.z, argv.zm);
176-
t.equal(argv.f, 11);
177-
t.end();
169+
var argv = parse(['-f', '11', '--zoom', '55'], {
170+
alias: { z: ['zm', 'zoom'] }
171+
});
172+
t.equal(argv.zoom, 55);
173+
t.equal(argv.z, argv.zoom);
174+
t.equal(argv.z, argv.zm);
175+
t.equal(argv.f, 11);
176+
t.end();
178177
});
179178

180179
test('nested dotted objects', function (t) {
181-
var argv = parse([
182-
'--foo.bar', '3', '--foo.baz', '4',
183-
'--foo.quux.quibble', '5', '--foo.quux.o_O',
184-
'--beep.boop'
185-
]);
186-
187-
t.same(argv.foo, {
188-
bar : 3,
189-
baz : 4,
190-
quux : {
191-
quibble : 5,
192-
o_O : true
193-
}
194-
});
195-
t.same(argv.beep, { boop : true });
196-
t.end();
180+
var argv = parse([
181+
'--foo.bar', '3', '--foo.baz', '4',
182+
'--foo.quux.quibble', '5', '--foo.quux.o_O',
183+
'--beep.boop'
184+
]);
185+
186+
t.same(argv.foo, {
187+
bar: 3,
188+
baz: 4,
189+
quux: {
190+
quibble: 5,
191+
o_O: true
192+
}
193+
});
194+
t.same(argv.beep, { boop: true });
195+
t.end();
197196
});

‎test/parse_modified.js

+5-5
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
var parse = require('../');
22
var test = require('tape');
33

4-
test('parse with modifier functions' , function (t) {
5-
t.plan(1);
6-
7-
var argv = parse([ '-b', '123' ], { boolean: 'b' });
8-
t.deepEqual(argv, { _: [123], b: true });
4+
test('parse with modifier functions', function (t) {
5+
t.plan(1);
6+
7+
var argv = parse(['-b', '123'], { boolean: 'b' });
8+
t.deepEqual(argv, { _: [123], b: true });
99
});

‎test/proto.js

+27-27
Original file line numberDiff line numberDiff line change
@@ -2,43 +2,43 @@ var parse = require('../');
22
var test = require('tape');
33

44
test('proto pollution', function (t) {
5-
var argv = parse(['--__proto__.x','123']);
6-
t.equal({}.x, undefined);
7-
t.equal(argv.__proto__.x, undefined);
8-
t.equal(argv.x, undefined);
9-
t.end();
5+
var argv = parse(['--__proto__.x', '123']);
6+
t.equal({}.x, undefined);
7+
t.equal(argv.__proto__.x, undefined);
8+
t.equal(argv.x, undefined);
9+
t.end();
1010
});
1111

1212
test('proto pollution (array)', function (t) {
13-
var argv = parse(['--x','4','--x','5','--x.__proto__.z','789']);
14-
t.equal({}.z, undefined);
15-
t.deepEqual(argv.x, [4,5]);
16-
t.equal(argv.x.z, undefined);
17-
t.equal(argv.x.__proto__.z, undefined);
18-
t.end();
13+
var argv = parse(['--x', '4', '--x', '5', '--x.__proto__.z', '789']);
14+
t.equal({}.z, undefined);
15+
t.deepEqual(argv.x, [4, 5]);
16+
t.equal(argv.x.z, undefined);
17+
t.equal(argv.x.__proto__.z, undefined);
18+
t.end();
1919
});
2020

2121
test('proto pollution (number)', function (t) {
22-
var argv = parse(['--x','5','--x.__proto__.z','100']);
23-
t.equal({}.z, undefined);
24-
t.equal((4).z, undefined);
25-
t.equal(argv.x, 5);
26-
t.equal(argv.x.z, undefined);
27-
t.end();
22+
var argv = parse(['--x', '5', '--x.__proto__.z', '100']);
23+
t.equal({}.z, undefined);
24+
t.equal((4).z, undefined);
25+
t.equal(argv.x, 5);
26+
t.equal(argv.x.z, undefined);
27+
t.end();
2828
});
2929

3030
test('proto pollution (string)', function (t) {
31-
var argv = parse(['--x','abc','--x.__proto__.z','def']);
32-
t.equal({}.z, undefined);
33-
t.equal('...'.z, undefined);
34-
t.equal(argv.x, 'abc');
35-
t.equal(argv.x.z, undefined);
36-
t.end();
31+
var argv = parse(['--x', 'abc', '--x.__proto__.z', 'def']);
32+
t.equal({}.z, undefined);
33+
t.equal('...'.z, undefined);
34+
t.equal(argv.x, 'abc');
35+
t.equal(argv.x.z, undefined);
36+
t.end();
3737
});
3838

3939
test('proto pollution (constructor)', function (t) {
40-
var argv = parse(['--constructor.prototype.y','123']);
41-
t.equal({}.y, undefined);
42-
t.equal(argv.y, undefined);
43-
t.end();
40+
var argv = parse(['--constructor.prototype.y', '123']);
41+
t.equal({}.y, undefined);
42+
t.equal(argv.y, undefined);
43+
t.end();
4444
});

‎test/short.js

+55-55
Original file line numberDiff line numberDiff line change
@@ -2,66 +2,66 @@ var parse = require('../');
22
var test = require('tape');
33

44
test('numeric short args', function (t) {
5-
t.plan(2);
6-
t.deepEqual(parse([ '-n123' ]), { n: 123, _: [] });
7-
t.deepEqual(
8-
parse([ '-123', '456' ]),
9-
{ 1: true, 2: true, 3: 456, _: [] }
10-
);
5+
t.plan(2);
6+
t.deepEqual(parse(['-n123']), { n: 123, _: [] });
7+
t.deepEqual(
8+
parse(['-123', '456']),
9+
{ 1: true, 2: true, 3: 456, _: [] }
10+
);
1111
});
1212

1313
test('short', function (t) {
14-
t.deepEqual(
15-
parse([ '-b' ]),
16-
{ b : true, _ : [] },
17-
'short boolean'
18-
);
19-
t.deepEqual(
20-
parse([ 'foo', 'bar', 'baz' ]),
21-
{ _ : [ 'foo', 'bar', 'baz' ] },
22-
'bare'
23-
);
24-
t.deepEqual(
25-
parse([ '-cats' ]),
26-
{ c : true, a : true, t : true, s : true, _ : [] },
27-
'group'
28-
);
29-
t.deepEqual(
30-
parse([ '-cats', 'meow' ]),
31-
{ c : true, a : true, t : true, s : 'meow', _ : [] },
32-
'short group next'
33-
);
34-
t.deepEqual(
35-
parse([ '-h', 'localhost' ]),
36-
{ h : 'localhost', _ : [] },
37-
'short capture'
38-
);
39-
t.deepEqual(
40-
parse([ '-h', 'localhost', '-p', '555' ]),
41-
{ h : 'localhost', p : 555, _ : [] },
42-
'short captures'
43-
);
44-
t.end();
14+
t.deepEqual(
15+
parse(['-b']),
16+
{ b: true, _: [] },
17+
'short boolean'
18+
);
19+
t.deepEqual(
20+
parse(['foo', 'bar', 'baz']),
21+
{ _: ['foo', 'bar', 'baz'] },
22+
'bare'
23+
);
24+
t.deepEqual(
25+
parse(['-cats']),
26+
{ c: true, a: true, t: true, s: true, _: [] },
27+
'group'
28+
);
29+
t.deepEqual(
30+
parse(['-cats', 'meow']),
31+
{ c: true, a: true, t: true, s: 'meow', _: [] },
32+
'short group next'
33+
);
34+
t.deepEqual(
35+
parse(['-h', 'localhost']),
36+
{ h: 'localhost', _: [] },
37+
'short capture'
38+
);
39+
t.deepEqual(
40+
parse(['-h', 'localhost', '-p', '555']),
41+
{ h: 'localhost', p: 555, _: [] },
42+
'short captures'
43+
);
44+
t.end();
4545
});
46-
46+
4747
test('mixed short bool and capture', function (t) {
48-
t.same(
49-
parse([ '-h', 'localhost', '-fp', '555', 'script.js' ]),
50-
{
51-
f : true, p : 555, h : 'localhost',
52-
_ : [ 'script.js' ]
53-
}
54-
);
55-
t.end();
48+
t.same(
49+
parse(['-h', 'localhost', '-fp', '555', 'script.js']),
50+
{
51+
f: true, p: 555, h: 'localhost',
52+
_: ['script.js']
53+
}
54+
);
55+
t.end();
5656
});
57-
57+
5858
test('short and long', function (t) {
59-
t.deepEqual(
60-
parse([ '-h', 'localhost', '-fp', '555', 'script.js' ]),
61-
{
62-
f : true, p : 555, h : 'localhost',
63-
_ : [ 'script.js' ]
64-
}
65-
);
66-
t.end();
59+
t.deepEqual(
60+
parse(['-h', 'localhost', '-fp', '555', 'script.js']),
61+
{
62+
f: true, p: 555, h: 'localhost',
63+
_: ['script.js']
64+
}
65+
);
66+
t.end();
6767
});

‎test/whitespace.js

+4-4
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
var parse = require('../');
22
var test = require('tape');
33

4-
test('whitespace should be whitespace' , function (t) {
5-
t.plan(1);
6-
var x = parse([ '-x', '\t' ]).x;
7-
t.equal(x, '\t');
4+
test('whitespace should be whitespace', function (t) {
5+
t.plan(1);
6+
var x = parse(['-x', '\t']).x;
7+
t.equal(x, '\t');
88
});

0 commit comments

Comments
 (0)
Please sign in to comment.