Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit62fde7d

Browse files
committed
[eslint] more cleanup
1 parent5368ca4 commit62fde7d

File tree

18 files changed

+231
-202
lines changed

18 files changed

+231
-202
lines changed

‎.eslintrc‎

Lines changed: 12 additions & 23 deletions
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‎

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,4 @@
1+
'use strict';
2+
13
varargv=require('../')(process.argv.slice(2));
24
console.log(argv);

‎index.js‎

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

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

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

10-
if(typeofopts['boolean']==='boolean'&&opts['boolean']){
36+
if(typeofopts.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
varaliases={};
45+
46+
functionaliasIsBoolean(key){
47+
returnaliases[key].some(function(x){
48+
returnflags.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-
vardefaults=opts['default']||{};
68+
vardefaults=opts.default||{};
3669

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

4972
functionargDefined(key,arg){
50-
return(flags.allBools&&/^--[^=]+$/.test(arg))||
51-
flags.strings[key]||flags.bools[key]||aliases[key];
52-
}
53-
54-
functionsetArg(key,val,arg){
55-
if(arg&&flags.unknownFn&&!argDefined(key,arg)){
56-
if(flags.unknownFn(arg)===false)return;
57-
}
58-
59-
varvalue=!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
functionsetKey(obj,keys,value){
7080
varo=obj;
7181
for(vari=0;i<keys.length-1;i++){
7282
varkey=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-
varkey=keys[keys.length-1];
87-
if(isConstructorOrProto(o,key))return;
96+
varlastKey=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]||typeofo[key]==='boolean'){
97-
o[key]=value;
98-
}elseif(Array.isArray(o[key])){
99-
o[key].push(value);
105+
if(o===Array.prototype){o=[];}
106+
if(o[lastKey]===undefined||flags.bools[lastKey]||typeofo[lastKey]==='boolean'){
107+
o[lastKey]=value;
108+
}elseif(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-
functionaliasIsBoolean(key){
106-
returnaliases[key].some(function(x){
107-
returnflags.bools[x];
115+
functionsetArg(key,val,arg){
116+
if(arg&&flags.unknownFn&&!argDefined(key,arg)){
117+
if(flags.unknownFn(arg)===false){return;}
118+
}
119+
120+
varvalue=!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+
varnotFlags=[];
135+
136+
if(args.indexOf('--')!==-1){
137+
notFlags=args.slice(args.indexOf('--')+1);
138+
args=args.slice(0,args.indexOf('--'));
139+
}
140+
111141
for(vari=0;i<args.length;i++){
112142
vararg=args[i];
143+
varkey;
144+
varnext;
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
varm=arg.match(/^--([^=]+)=([\s\S]*)$/);
119-
varkey=m[1];
151+
key=m[1];
120152
varvalue=m[2];
121153
if(flags.bools[key]){
122154
value=value!=='false';
123155
}
124156
setArg(key,value,arg);
125-
}elseif(/^--no-.+/.test(arg)){
126-
varkey=arg.match(/^--no-(.+)/)[1];
157+
}elseif((/^--no-.+/).test(arg)){
158+
key=arg.match(/^--no-(.+)/)[1];
127159
setArg(key,false,arg);
128-
}elseif(/^--.+/.test(arg)){
129-
varkey=arg.match(/^--(.+)/)[1];
130-
varnext=args[i+1];
160+
}elseif((/^--.+/).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-
}elseif(/^(true|false)$/.test(next)){
171+
i+=1;
172+
}elseif((/^(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-
}elseif(/^-[^-]+/.test(arg)){
178+
}elseif((/^-[^-]+/).test(arg)){
147179
varletters=arg.slice(1,-1).split('');
148180

149181
varbroken=false;
150182
for(varj=0;j<letters.length;j++){
151-
varnext=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-
varkey=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-
}elseif(args[i+1]&&/^(true|false)$/.test(args[i+1])){
223+
i+=1;
224+
}elseif(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['--']=newArray();
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
returnargv;
232261
};
233-
234-
functionhasKey(obj,keys){
235-
varo=obj;
236-
keys.slice(0,-1).forEach(function(key){
237-
o=(o[key]||{});
238-
});
239-
240-
varkey=keys[keys.length-1];
241-
returnkeyino;
242-
}
243-
244-
functionisNumber(x){
245-
if(typeofx==='number')returntrue;
246-
if(/^0x[0-9a-f]+$/i.test(x))returntrue;
247-
return/^[-+]?(?:\d+(?:\.\d*)?|\.\d+)(e[-+]?\d+)?$/.test(x);
248-
}
249-
250-
functionisConstructorOrProto(obj,key){
251-
returnkey==='constructor'&&typeofobj[key]==='function'||key==='__proto__';
252-
}

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp