Skip to content

Commit 62fde7d

Browse files
committedOct 16, 2022
[eslint] more cleanup
1 parent 5368ca4 commit 62fde7d

18 files changed

+231
-202
lines changed
 

‎.eslintrc

+12-23
Original file line numberDiff line numberDiff line change
@@ -5,36 +5,25 @@
55

66
"rules": {
77
"array-element-newline": 0,
8-
"camelcase": 1,
9-
"comma-dangle": 1,
108
"complexity": 0,
11-
"curly": 1,
12-
"dot-notation": 1,
13-
"func-style": 1,
9+
"func-style": [2, "declaration"],
1410
"max-lines-per-function": 0,
1511
"max-nested-callbacks": 1,
12+
"max-statements-per-line": 1,
1613
"max-statements": 0,
1714
"multiline-comment-style": 0,
18-
"no-array-constructor": 1,
1915
"no-continue": 1,
20-
"no-div-regex": 1,
21-
"no-extra-parens": 1,
22-
"no-mixed-operators": 1,
2316
"no-param-reassign": 1,
24-
"no-plusplus": 1,
25-
"no-proto": 1,
26-
"no-redeclare": 1,
2717
"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,
18+
"object-curly-newline": 0,
3919
},
20+
21+
"overrides": [
22+
{
23+
"files": "test/**",
24+
"rules": {
25+
"camelcase": 0,
26+
},
27+
},
28+
]
4029
}

‎example/parse.js

+2
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,4 @@
1+
'use strict';
2+
13
var argv = require('../')(process.argv.slice(2));
24
console.log(argv);

‎index.js

+111-102
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,54 @@
1+
'use strict';
2+
3+
function hasKey(obj, keys) {
4+
var o = obj;
5+
keys.slice(0, -1).forEach(function (key) {
6+
o = o[key] || {};
7+
});
8+
9+
var key = keys[keys.length - 1];
10+
return key in o;
11+
}
12+
13+
function isNumber(x) {
14+
if (typeof x === 'number') { return true; }
15+
if ((/^0x[0-9a-f]+$/i).test(x)) { return true; }
16+
return (/^[-+]?(?:\d+(?:\.\d*)?|\.\d+)(e[-+]?\d+)?$/).test(x);
17+
}
18+
19+
function isConstructorOrProto(obj, key) {
20+
return (key === 'constructor' && typeof obj[key] === 'function') || key === '__proto__';
21+
}
22+
123
module.exports = function (args, opts) {
2-
if (!opts) opts = {};
24+
if (!opts) { opts = {}; }
325

4-
var flags = { bools: {}, strings: {}, unknownFn: null };
26+
var flags = {
27+
bools: {},
28+
strings: {},
29+
unknownFn: null,
30+
};
531

6-
if (typeof opts['unknown'] === 'function') {
7-
flags.unknownFn = opts['unknown'];
32+
if (typeof opts.unknown === 'function') {
33+
flags.unknownFn = opts.unknown;
834
}
935

10-
if (typeof opts['boolean'] === 'boolean' && opts['boolean']) {
36+
if (typeof opts.boolean === 'boolean' && opts.boolean) {
1137
flags.allBools = true;
1238
} else {
13-
[].concat(opts['boolean']).filter(Boolean).forEach(function (key) {
39+
[].concat(opts.boolean).filter(Boolean).forEach(function (key) {
1440
flags.bools[key] = true;
1541
});
1642
}
1743

1844
var aliases = {};
45+
46+
function aliasIsBoolean(key) {
47+
return aliases[key].some(function (x) {
48+
return flags.bools[x];
49+
});
50+
}
51+
1952
Object.keys(opts.alias || {}).forEach(function (key) {
2053
aliases[key] = [].concat(opts.alias[key]);
2154
aliases[key].forEach(function (x) {
@@ -32,138 +65,137 @@ module.exports = function (args, opts) {
3265
}
3366
});
3467

35-
var defaults = opts['default'] || {};
68+
var defaults = opts.default || {};
3669

3770
var argv = { _: [] };
38-
Object.keys(flags.bools).forEach(function (key) {
39-
setArg(key, defaults[key] === undefined ? false : defaults[key]);
40-
});
41-
42-
var notFlags = [];
43-
44-
if (args.indexOf('--') !== -1) {
45-
notFlags = args.slice(args.indexOf('--') + 1);
46-
args = args.slice(0, args.indexOf('--'));
47-
}
4871

4972
function argDefined(key, arg) {
50-
return (flags.allBools && /^--[^=]+$/.test(arg)) ||
51-
flags.strings[key] || flags.bools[key] || aliases[key];
52-
}
53-
54-
function setArg(key, val, arg) {
55-
if (arg && flags.unknownFn && !argDefined(key, arg)) {
56-
if (flags.unknownFn(arg) === false) return;
57-
}
58-
59-
var value = !flags.strings[key] && isNumber(val)
60-
? Number(val)
61-
: val;
62-
setKey(argv, key.split('.'), value);
63-
64-
(aliases[key] || []).forEach(function (x) {
65-
setKey(argv, x.split('.'), value);
66-
});
73+
return (flags.allBools && (/^--[^=]+$/).test(arg))
74+
|| flags.strings[key]
75+
|| flags.bools[key]
76+
|| aliases[key];
6777
}
6878

6979
function setKey(obj, keys, value) {
7080
var o = obj;
7181
for (var i = 0; i < keys.length - 1; i++) {
7282
var key = keys[i];
73-
if (isConstructorOrProto(o, key)) return;
74-
if (o[key] === undefined) o[key] = {};
83+
if (isConstructorOrProto(o, key)) { return; }
84+
if (o[key] === undefined) { o[key] = {}; }
7585
if (
7686
o[key] === Object.prototype
7787
|| o[key] === Number.prototype
7888
|| o[key] === String.prototype
7989
) {
8090
o[key] = {};
8191
}
82-
if (o[key] === Array.prototype) o[key] = [];
92+
if (o[key] === Array.prototype) { o[key] = []; }
8393
o = o[key];
8494
}
8595

86-
var key = keys[keys.length - 1];
87-
if (isConstructorOrProto(o, key)) return;
96+
var lastKey = keys[keys.length - 1];
97+
if (isConstructorOrProto(o, lastKey)) { return; }
8898
if (
8999
o === Object.prototype
90100
|| o === Number.prototype
91101
|| o === String.prototype
92102
) {
93103
o = {};
94104
}
95-
if (o === Array.prototype) o = [];
96-
if (o[key] === undefined || flags.bools[key] || typeof o[key] === 'boolean') {
97-
o[key] = value;
98-
} else if (Array.isArray(o[key])) {
99-
o[key].push(value);
105+
if (o === Array.prototype) { o = []; }
106+
if (o[lastKey] === undefined || flags.bools[lastKey] || typeof o[lastKey] === 'boolean') {
107+
o[lastKey] = value;
108+
} else if (Array.isArray(o[lastKey])) {
109+
o[lastKey].push(value);
100110
} else {
101-
o[key] = [o[key], value];
111+
o[lastKey] = [o[lastKey], value];
102112
}
103113
}
104114

105-
function aliasIsBoolean(key) {
106-
return aliases[key].some(function (x) {
107-
return flags.bools[x];
115+
function setArg(key, val, arg) {
116+
if (arg && flags.unknownFn && !argDefined(key, arg)) {
117+
if (flags.unknownFn(arg) === false) { return; }
118+
}
119+
120+
var value = !flags.strings[key] && isNumber(val)
121+
? Number(val)
122+
: val;
123+
setKey(argv, key.split('.'), value);
124+
125+
(aliases[key] || []).forEach(function (x) {
126+
setKey(argv, x.split('.'), value);
108127
});
109128
}
110129

130+
Object.keys(flags.bools).forEach(function (key) {
131+
setArg(key, defaults[key] === undefined ? false : defaults[key]);
132+
});
133+
134+
var notFlags = [];
135+
136+
if (args.indexOf('--') !== -1) {
137+
notFlags = args.slice(args.indexOf('--') + 1);
138+
args = args.slice(0, args.indexOf('--'));
139+
}
140+
111141
for (var i = 0; i < args.length; i++) {
112142
var arg = args[i];
143+
var key;
144+
var next;
113145

114-
if (/^--.+=/.test(arg)) {
146+
if ((/^--.+=/).test(arg)) {
115147
// Using [\s\S] instead of . because js doesn't support the
116148
// 'dotall' regex modifier. See:
117149
// http://stackoverflow.com/a/1068308/13216
118150
var m = arg.match(/^--([^=]+)=([\s\S]*)$/);
119-
var key = m[1];
151+
key = m[1];
120152
var value = m[2];
121153
if (flags.bools[key]) {
122154
value = value !== 'false';
123155
}
124156
setArg(key, value, arg);
125-
} else if (/^--no-.+/.test(arg)) {
126-
var key = arg.match(/^--no-(.+)/)[1];
157+
} else if ((/^--no-.+/).test(arg)) {
158+
key = arg.match(/^--no-(.+)/)[1];
127159
setArg(key, false, arg);
128-
} else if (/^--.+/.test(arg)) {
129-
var key = arg.match(/^--(.+)/)[1];
130-
var next = args[i + 1];
160+
} else if ((/^--.+/).test(arg)) {
161+
key = arg.match(/^--(.+)/)[1];
162+
next = args[i + 1];
131163
if (
132164
next !== undefined
133-
&& !/^-/.test(next)
165+
&& !(/^-/).test(next)
134166
&& !flags.bools[key]
135167
&& !flags.allBools
136168
&& (aliases[key] ? !aliasIsBoolean(key) : true)
137169
) {
138170
setArg(key, next, arg);
139-
i++;
140-
} else if (/^(true|false)$/.test(next)) {
171+
i += 1;
172+
} else if ((/^(true|false)$/).test(next)) {
141173
setArg(key, next === 'true', arg);
142-
i++;
174+
i += 1;
143175
} else {
144176
setArg(key, flags.strings[key] ? '' : true, arg);
145177
}
146-
} else if (/^-[^-]+/.test(arg)) {
178+
} else if ((/^-[^-]+/).test(arg)) {
147179
var letters = arg.slice(1, -1).split('');
148180

149181
var broken = false;
150182
for (var j = 0; j < letters.length; j++) {
151-
var next = arg.slice(j + 2);
183+
next = arg.slice(j + 2);
152184

153185
if (next === '-') {
154-
setArg(letters[j], next, arg)
186+
setArg(letters[j], next, arg);
155187
continue;
156188
}
157189

158-
if (/[A-Za-z]/.test(letters[j]) && /=/.test(next)) {
190+
if ((/[A-Za-z]/).test(letters[j]) && (/[=]/).test(next)) {
159191
setArg(letters[j], next.split('=')[1], arg);
160192
broken = true;
161193
break;
162194
}
163195

164196
if (
165-
/[A-Za-z]/.test(letters[j])
166-
&& /-?\d+(\.\d*)?(e-?\d+)?$/.test(next)
197+
(/[A-Za-z]/).test(letters[j])
198+
&& (/-?\d+(\.\d*)?(e-?\d+)?$/).test(next)
167199
) {
168200
setArg(letters[j], next, arg);
169201
broken = true;
@@ -179,26 +211,26 @@ module.exports = function (args, opts) {
179211
}
180212
}
181213

182-
var key = arg.slice(-1)[0];
214+
key = arg.slice(-1)[0];
183215
if (!broken && key !== '-') {
184216
if (
185217
args[i + 1]
186-
&& !/^(-|--)[^-]/.test(args[i + 1])
218+
&& !(/^(-|--)[^-]/).test(args[i + 1])
187219
&& !flags.bools[key]
188220
&& (aliases[key] ? !aliasIsBoolean(key) : true)
189221
) {
190222
setArg(key, args[i + 1], arg);
191-
i++;
192-
} else if (args[i + 1] && /^(true|false)$/.test(args[i + 1])) {
223+
i += 1;
224+
} else if (args[i + 1] && (/^(true|false)$/).test(args[i + 1])) {
193225
setArg(key, args[i + 1] === 'true', arg);
194-
i++;
226+
i += 1;
195227
} else {
196228
setArg(key, flags.strings[key] ? '' : true, arg);
197229
}
198230
}
199231
} else {
200232
if (!flags.unknownFn || flags.unknownFn(arg) !== false) {
201-
argv._.push(flags.strings['_'] || !isNumber(arg) ? arg : Number(arg));
233+
argv._.push(flags.strings._ || !isNumber(arg) ? arg : Number(arg));
202234
}
203235
if (opts.stopEarly) {
204236
argv._.push.apply(argv._, args.slice(i + 1));
@@ -207,46 +239,23 @@ module.exports = function (args, opts) {
207239
}
208240
}
209241

210-
Object.keys(defaults).forEach(function (key) {
211-
if (!hasKey(argv, key.split('.'))) {
212-
setKey(argv, key.split('.'), defaults[key]);
242+
Object.keys(defaults).forEach(function (k) {
243+
if (!hasKey(argv, k.split('.'))) {
244+
setKey(argv, k.split('.'), defaults[k]);
213245

214-
(aliases[key] || []).forEach(function (x) {
215-
setKey(argv, x.split('.'), defaults[key]);
246+
(aliases[k] || []).forEach(function (x) {
247+
setKey(argv, x.split('.'), defaults[k]);
216248
});
217249
}
218250
});
219251

220252
if (opts['--']) {
221-
argv['--'] = new Array();
222-
notFlags.forEach(function (key) {
223-
argv['--'].push(key);
224-
});
253+
argv['--'] = notFlags.slice();
225254
} else {
226-
notFlags.forEach(function (key) {
227-
argv._.push(key);
255+
notFlags.forEach(function (k) {
256+
argv._.push(k);
228257
});
229258
}
230259

231260
return argv;
232261
};
233-
234-
function hasKey(obj, keys) {
235-
var o = obj;
236-
keys.slice(0, -1).forEach(function (key) {
237-
o = (o[key] || {});
238-
});
239-
240-
var key = keys[keys.length - 1];
241-
return key in o;
242-
}
243-
244-
function isNumber(x) {
245-
if (typeof x === 'number') return true;
246-
if (/^0x[0-9a-f]+$/i.test(x)) return true;
247-
return /^[-+]?(?:\d+(?:\.\d*)?|\.\d+)(e[-+]?\d+)?$/.test(x);
248-
}
249-
250-
function isConstructorOrProto(obj, key) {
251-
return key === 'constructor' && typeof obj[key] === 'function' || key === '__proto__';
252-
}

‎test/all_bool.js

+6-4
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,16 @@
1+
'use strict';
2+
13
var parse = require('../');
24
var test = require('tape');
35

46
test('flag boolean true (default all --args to boolean)', function (t) {
57
var argv = parse(['moo', '--honk', 'cow'], {
6-
boolean: true
8+
boolean: true,
79
});
810

911
t.deepEqual(argv, {
1012
honk: true,
11-
_: ['moo', 'cow']
13+
_: ['moo', 'cow'],
1214
});
1315

1416
t.deepEqual(typeof argv.honk, 'boolean');
@@ -17,14 +19,14 @@ test('flag boolean true (default all --args to boolean)', function (t) {
1719

1820
test('flag boolean true only affects double hyphen arguments without equals signs', function (t) {
1921
var argv = parse(['moo', '--honk', 'cow', '-p', '55', '--tacos=good'], {
20-
boolean: true
22+
boolean: true,
2123
});
2224

2325
t.deepEqual(argv, {
2426
honk: true,
2527
tacos: 'good',
2628
p: 55,
27-
_: ['moo', 'cow']
29+
_: ['moo', 'cow'],
2830
});
2931

3032
t.deepEqual(typeof argv.honk, 'boolean');

‎test/bool.js

+24-25
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,18 @@
1+
'use strict';
2+
13
var parse = require('../');
24
var test = require('tape');
35

46
test('flag boolean default false', function (t) {
57
var argv = parse(['moo'], {
68
boolean: ['t', 'verbose'],
7-
default: { verbose: false, t: false }
9+
default: { verbose: false, t: false },
810
});
911

1012
t.deepEqual(argv, {
1113
verbose: false,
1214
t: false,
13-
_: ['moo']
15+
_: ['moo'],
1416
});
1517

1618
t.deepEqual(typeof argv.verbose, 'boolean');
@@ -21,14 +23,14 @@ test('flag boolean default false', function (t) {
2123

2224
test('boolean groups', function (t) {
2325
var argv = parse(['-x', '-z', 'one', 'two', 'three'], {
24-
boolean: ['x', 'y', 'z']
26+
boolean: ['x', 'y', 'z'],
2527
});
2628

2729
t.deepEqual(argv, {
2830
x: true,
2931
y: false,
3032
z: true,
31-
_: ['one', 'two', 'three']
33+
_: ['one', 'two', 'three'],
3234
});
3335

3436
t.deepEqual(typeof argv.x, 'boolean');
@@ -39,21 +41,18 @@ test('boolean groups', function (t) {
3941
test('boolean and alias with chainable api', function (t) {
4042
var aliased = ['-h', 'derp'];
4143
var regular = ['--herp', 'derp'];
42-
var opts = {
43-
herp: { alias: 'h', boolean: true }
44-
};
4544
var aliasedArgv = parse(aliased, {
4645
boolean: 'herp',
47-
alias: { h: 'herp' }
46+
alias: { h: 'herp' },
4847
});
4948
var propertyArgv = parse(regular, {
5049
boolean: 'herp',
51-
alias: { h: 'herp' }
50+
alias: { h: 'herp' },
5251
});
5352
var expected = {
5453
herp: true,
5554
h: true,
56-
'_': ['derp']
55+
_: ['derp'],
5756
};
5857

5958
t.same(aliasedArgv, expected);
@@ -65,15 +64,15 @@ test('boolean and alias with options hash', function (t) {
6564
var aliased = ['-h', 'derp'];
6665
var regular = ['--herp', 'derp'];
6766
var opts = {
68-
alias: { 'h': 'herp' },
69-
boolean: 'herp'
67+
alias: { h: 'herp' },
68+
boolean: 'herp',
7069
};
7170
var aliasedArgv = parse(aliased, opts);
7271
var propertyArgv = parse(regular, opts);
7372
var expected = {
7473
herp: true,
7574
h: true,
76-
'_': ['derp']
75+
_: ['derp'],
7776
};
7877
t.same(aliasedArgv, expected);
7978
t.same(propertyArgv, expected);
@@ -85,8 +84,8 @@ test('boolean and alias array with options hash', function (t) {
8584
var regular = ['--herp', 'derp'];
8685
var alt = ['--harp', 'derp'];
8786
var opts = {
88-
alias: { 'h': ['herp', 'harp'] },
89-
boolean: 'h'
87+
alias: { h: ['herp', 'harp'] },
88+
boolean: 'h',
9089
};
9190
var aliasedArgv = parse(aliased, opts);
9291
var propertyArgv = parse(regular, opts);
@@ -95,7 +94,7 @@ test('boolean and alias array with options hash', function (t) {
9594
harp: true,
9695
herp: true,
9796
h: true,
98-
'_': ['derp']
97+
_: ['derp'],
9998
};
10099
t.same(aliasedArgv, expected);
101100
t.same(propertyArgv, expected);
@@ -108,14 +107,14 @@ test('boolean and alias using explicit true', function (t) {
108107
var regular = ['--herp', 'true'];
109108
var opts = {
110109
alias: { h: 'herp' },
111-
boolean: 'h'
110+
boolean: 'h',
112111
};
113112
var aliasedArgv = parse(aliased, opts);
114113
var propertyArgv = parse(regular, opts);
115114
var expected = {
116115
herp: true,
117116
h: true,
118-
'_': []
117+
_: [],
119118
};
120119

121120
t.same(aliasedArgv, expected);
@@ -126,14 +125,14 @@ test('boolean and alias using explicit true', function (t) {
126125
// regression, see https://github.com/substack/node-optimist/issues/71
127126
test('boolean and --x=true', function (t) {
128127
var parsed = parse(['--boool', '--other=true'], {
129-
boolean: 'boool'
128+
boolean: 'boool',
130129
});
131130

132131
t.same(parsed.boool, true);
133132
t.same(parsed.other, 'true');
134133

135134
parsed = parse(['--boool', '--other=false'], {
136-
boolean: 'boool'
135+
boolean: 'boool',
137136
});
138137

139138
t.same(parsed.boool, true);
@@ -144,9 +143,9 @@ test('boolean and --x=true', function (t) {
144143
test('boolean --boool=true', function (t) {
145144
var parsed = parse(['--boool=true'], {
146145
default: {
147-
boool: false
146+
boool: false,
148147
},
149-
boolean: ['boool']
148+
boolean: ['boool'],
150149
});
151150

152151
t.same(parsed.boool, true);
@@ -156,9 +155,9 @@ test('boolean --boool=true', function (t) {
156155
test('boolean --boool=false', function (t) {
157156
var parsed = parse(['--boool=false'], {
158157
default: {
159-
boool: true
158+
boool: true,
160159
},
161-
boolean: ['boool']
160+
boolean: ['boool'],
162161
});
163162

164163
t.same(parsed.boool, false);
@@ -170,7 +169,7 @@ test('boolean using something similar to true', function (t) {
170169
var result = parse(['-h', 'true.txt'], opts);
171170
var expected = {
172171
h: true,
173-
'_': ['true.txt']
172+
_: ['true.txt'],
174173
};
175174

176175
t.same(result, expected);

‎test/dash.js

+2
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
'use strict';
2+
13
var parse = require('../');
24
var test = require('tape');
35

‎test/default_bool.js

+10-8
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,12 @@
1+
'use strict';
2+
13
var test = require('tape');
24
var parse = require('../');
35

46
test('boolean default true', function (t) {
57
var argv = parse([], {
68
boolean: 'sometrue',
7-
default: { sometrue: true }
9+
default: { sometrue: true },
810
});
911
t.equal(argv.sometrue, true);
1012
t.end();
@@ -13,7 +15,7 @@ test('boolean default true', function (t) {
1315
test('boolean default false', function (t) {
1416
var argv = parse([], {
1517
boolean: 'somefalse',
16-
default: { somefalse: false }
18+
default: { somefalse: false },
1719
});
1820
t.equal(argv.somefalse, false);
1921
t.end();
@@ -22,14 +24,14 @@ test('boolean default false', function (t) {
2224
test('boolean default to null', function (t) {
2325
var argv = parse([], {
2426
boolean: 'maybe',
25-
default: { maybe: null }
27+
default: { maybe: null },
2628
});
2729
t.equal(argv.maybe, null);
28-
var argv = parse(['--maybe'], {
30+
31+
var argvLong = parse(['--maybe'], {
2932
boolean: 'maybe',
30-
default: { maybe: null }
33+
default: { maybe: null },
3134
});
32-
t.equal(argv.maybe, true);
35+
t.equal(argvLong.maybe, true);
3336
t.end();
34-
35-
})
37+
});

‎test/dotted.js

+2
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
'use strict';
2+
13
var parse = require('../');
24
var test = require('tape');
35

‎test/kv_short.js

+2
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
'use strict';
2+
13
var parse = require('../');
24
var test = require('tape');
35

‎test/long.js

+2
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
'use strict';
2+
13
var test = require('tape');
24
var parse = require('../');
35

‎test/num.js

+4-2
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
'use strict';
2+
13
var parse = require('../');
24
var test = require('tape');
35

@@ -8,15 +10,15 @@ test('nums', function (t) {
810
'-z', '1e7',
911
'-w', '10f',
1012
'--hex', '0xdeadbeef',
11-
'789'
13+
'789',
1214
]);
1315
t.deepEqual(argv, {
1416
x: 1234,
1517
y: 5.67,
1618
z: 1e7,
1719
w: '10f',
1820
hex: 0xdeadbeef,
19-
_: [789]
21+
_: [789],
2022
});
2123
t.deepEqual(typeof argv.x, 'number');
2224
t.deepEqual(typeof argv.y, 'number');

‎test/parse.js

+18-16
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
'use strict';
2+
13
var parse = require('../');
24
var test = require('tape');
35

@@ -22,7 +24,7 @@ test('comprehensive', function (t) {
2224
'-h', 'awesome', '--multi=quux',
2325
'--key', 'value',
2426
'-b', '--bool', '--no-meep', '--multi=baz',
25-
'--', '--not-a-flag', 'eek'
27+
'--', '--not-a-flag', 'eek',
2628
]),
2729
{
2830
c: true,
@@ -36,7 +38,7 @@ test('comprehensive', function (t) {
3638
multi: ['quux', 'baz'],
3739
meep: false,
3840
name: 'meowmers',
39-
_: ['bare', '--not-a-flag', 'eek']
41+
_: ['bare', '--not-a-flag', 'eek'],
4042
}
4143
);
4244
t.end();
@@ -52,13 +54,13 @@ test('flag boolean', function (t) {
5254
test('flag boolean value', function (t) {
5355
var argv = parse(['--verbose', 'false', 'moo', '-t', 'true'], {
5456
boolean: ['t', 'verbose'],
55-
default: { verbose: true }
57+
default: { verbose: true },
5658
});
5759

5860
t.deepEqual(argv, {
5961
verbose: false,
6062
t: true,
61-
_: ['moo']
63+
_: ['moo'],
6264
});
6365

6466
t.deepEqual(typeof argv.verbose, 'boolean');
@@ -67,15 +69,15 @@ test('flag boolean value', function (t) {
6769
});
6870

6971
test('newlines in params', function (t) {
70-
var args = parse(['-s', "X\nX"])
71-
t.deepEqual(args, { _: [], s: "X\nX" });
72+
var args = parse(['-s', 'X\nX']);
73+
t.deepEqual(args, { _: [], s: 'X\nX' });
7274

7375
// reproduce in bash:
7476
// VALUE="new
7577
// line"
7678
// node program.js --s="$VALUE"
77-
args = parse(["--s=X\nX"])
78-
t.deepEqual(args, { _: [], s: "X\nX" });
79+
args = parse(['--s=X\nX']);
80+
t.deepEqual(args, { _: [], s: 'X\nX' });
7981
t.end();
8082
});
8183

@@ -110,7 +112,7 @@ test('empty strings', function (t) {
110112
t.equal(typeof str, 'string');
111113

112114
var letters = parse(['-art'], {
113-
string: ['a', 't']
115+
string: ['a', 't'],
114116
});
115117

116118
t.equal(letters.a, '');
@@ -123,7 +125,7 @@ test('empty strings', function (t) {
123125
test('string and alias', function (t) {
124126
var x = parse(['--str', '000123'], {
125127
string: 's',
126-
alias: { s: 'str' }
128+
alias: { s: 'str' },
127129
});
128130

129131
t.equal(x.str, '000123');
@@ -133,7 +135,7 @@ test('string and alias', function (t) {
133135

134136
var y = parse(['-s', '000123'], {
135137
string: 'str',
136-
alias: { str: 's' }
138+
alias: { str: 's' },
137139
});
138140

139141
t.equal(y.str, '000123');
@@ -157,7 +159,7 @@ test('slashBreak', function (t) {
157159

158160
test('alias', function (t) {
159161
var argv = parse(['-f', '11', '--zoom', '55'], {
160-
alias: { z: 'zoom' }
162+
alias: { z: 'zoom' },
161163
});
162164
t.equal(argv.zoom, 55);
163165
t.equal(argv.z, argv.zoom);
@@ -167,7 +169,7 @@ test('alias', function (t) {
167169

168170
test('multiAlias', function (t) {
169171
var argv = parse(['-f', '11', '--zoom', '55'], {
170-
alias: { z: ['zm', 'zoom'] }
172+
alias: { z: ['zm', 'zoom'] },
171173
});
172174
t.equal(argv.zoom, 55);
173175
t.equal(argv.z, argv.zoom);
@@ -180,16 +182,16 @@ test('nested dotted objects', function (t) {
180182
var argv = parse([
181183
'--foo.bar', '3', '--foo.baz', '4',
182184
'--foo.quux.quibble', '5', '--foo.quux.o_O',
183-
'--beep.boop'
185+
'--beep.boop',
184186
]);
185187

186188
t.same(argv.foo, {
187189
bar: 3,
188190
baz: 4,
189191
quux: {
190192
quibble: 5,
191-
o_O: true
192-
}
193+
o_O: true,
194+
},
193195
});
194196
t.same(argv.beep, { boop: true });
195197
t.end();

‎test/parse_modified.js

+2
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
'use strict';
2+
13
var parse = require('../');
24
var test = require('tape');
35

‎test/proto.js

+6-2
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
'use strict';
2+
3+
/* eslint no-proto: 0 */
4+
15
var parse = require('../');
26
var test = require('tape');
37

@@ -54,7 +58,7 @@ test('proto pollution (constructor function)', function (t) {
5458
// powered by snyk - https://github.com/backstage/backstage/issues/10343
5559
test('proto pollution (constructor function) snyk', function (t) {
5660
var argv = parse('--_.constructor.constructor.prototype.foo bar'.split(' '));
57-
t.equal((function () {}).foo, undefined);
61+
t.equal(function () {}.foo, undefined);
5862
t.equal(argv.y, undefined);
5963
t.end();
60-
})
64+
});

‎test/short.js

+4-2
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
'use strict';
2+
13
var parse = require('../');
24
var test = require('tape');
35

@@ -49,7 +51,7 @@ test('mixed short bool and capture', function (t) {
4951
parse(['-h', 'localhost', '-fp', '555', 'script.js']),
5052
{
5153
f: true, p: 555, h: 'localhost',
52-
_: ['script.js']
54+
_: ['script.js'],
5355
}
5456
);
5557
t.end();
@@ -60,7 +62,7 @@ test('short and long', function (t) {
6062
parse(['-h', 'localhost', '-fp', '555', 'script.js']),
6163
{
6264
f: true, p: 555, h: 'localhost',
63-
_: ['script.js']
65+
_: ['script.js'],
6466
}
6567
);
6668
t.end();

‎test/stop_early.js

+4-2
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,16 @@
1+
'use strict';
2+
13
var parse = require('../');
24
var test = require('tape');
35

46
test('stops parsing on the first non-option when stopEarly is set', function (t) {
57
var argv = parse(['--aaa', 'bbb', 'ccc', '--ddd'], {
6-
stopEarly: true
8+
stopEarly: true,
79
});
810

911
t.deepEqual(argv, {
1012
aaa: 'bbb',
11-
_: ['ccc', '--ddd']
13+
_: ['ccc', '--ddd'],
1214
});
1315

1416
t.end();

‎test/unknown.js

+18-16
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
'use strict';
2+
13
var parse = require('../');
24
var test = require('tape');
35

@@ -12,10 +14,10 @@ test('boolean and alias is not unknown', function (t) {
1214
var opts = {
1315
alias: { h: 'herp' },
1416
boolean: 'h',
15-
unknown: unknownFn
17+
unknown: unknownFn,
1618
};
17-
var aliasedArgv = parse(aliased, opts);
18-
var propertyArgv = parse(regular, opts);
19+
parse(aliased, opts);
20+
parse(regular, opts);
1921

2022
t.same(unknown, ['--derp', '-d']);
2123
t.end();
@@ -29,12 +31,12 @@ test('flag boolean true any double hyphen argument is not unknown', function (t)
2931
}
3032
var argv = parse(['--honk', '--tacos=good', 'cow', '-p', '55'], {
3133
boolean: true,
32-
unknown: unknownFn
34+
unknown: unknownFn,
3335
});
3436
t.same(unknown, ['--tacos=good', 'cow', '-p']);
3537
t.same(argv, {
3638
honk: true,
37-
_: []
39+
_: [],
3840
});
3941
t.end();
4042
});
@@ -50,10 +52,10 @@ test('string and alias is not unknown', function (t) {
5052
var opts = {
5153
alias: { h: 'herp' },
5254
string: 'h',
53-
unknown: unknownFn
55+
unknown: unknownFn,
5456
};
55-
var aliasedArgv = parse(aliased, opts);
56-
var propertyArgv = parse(regular, opts);
57+
parse(aliased, opts);
58+
parse(regular, opts);
5759

5860
t.same(unknown, ['--derp', '-d']);
5961
t.end();
@@ -68,12 +70,12 @@ test('default and alias is not unknown', function (t) {
6870
var aliased = ['-h', 'hello'];
6971
var regular = ['--herp', 'hello'];
7072
var opts = {
71-
default: { 'h': 'bar' },
72-
alias: { 'h': 'herp' },
73-
unknown: unknownFn
73+
default: { h: 'bar' },
74+
alias: { h: 'herp' },
75+
unknown: unknownFn,
7476
};
75-
var aliasedArgv = parse(aliased, opts);
76-
var propertyArgv = parse(regular, opts);
77+
parse(aliased, opts);
78+
parse(regular, opts);
7779

7880
t.same(unknown, []);
7981
t.end();
@@ -89,14 +91,14 @@ test('value following -- is not unknown', function (t) {
8991
var aliased = ['--bad', '--', 'good', 'arg'];
9092
var opts = {
9193
'--': true,
92-
unknown: unknownFn
94+
unknown: unknownFn,
9395
};
9496
var argv = parse(aliased, opts);
9597

9698
t.same(unknown, ['--bad']);
9799
t.same(argv, {
98100
'--': ['good', 'arg'],
99-
'_': []
100-
})
101+
_: [],
102+
});
101103
t.end();
102104
});

‎test/whitespace.js

+2
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
'use strict';
2+
13
var parse = require('../');
24
var test = require('tape');
35

0 commit comments

Comments
 (0)
Please sign in to comment.