Skip to content

Commit 5e56526

Browse files
authored
fix: add support for handling NewExpression in _tools/eslint/rules/line-closing-bracket-spacing
PR-URL: #4343 Reviewed-by: Athan Reines <[email protected]>
1 parent 99388d1 commit 5e56526

File tree

4 files changed

+113
-20
lines changed

4 files changed

+113
-20
lines changed

lib/node_modules/@stdlib/_tools/eslint/rules/line-closing-bracket-spacing/lib/main.js

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,7 @@ function main( context ) {
8282
var args;
8383

8484
if (
85-
node.type === 'CallExpression' &&
85+
( node.type === 'CallExpression' || node.type === 'NewExpression' ) &&
8686
node.arguments.length > 0
8787
) {
8888
args = node.arguments;
@@ -99,7 +99,10 @@ function main( context ) {
9999
) {
100100
report( node, prevToken, tokenAfter );
101101
}
102-
} else if ( lastElem.type === 'ArrayExpression' ) {
102+
} else if (
103+
lastElem.type === 'ArrayExpression' &&
104+
lastElem.elements.length > 0
105+
) {
103106
elem = lastElem.elements[ lastElem.elements.length - 1 ];
104107
if (
105108
elem.type === 'ObjectExpression' &&
@@ -150,6 +153,7 @@ function main( context ) {
150153
}
151154
return {
152155
'CallExpression': validate,
156+
'NewExpression': validate,
153157
'ArrayExpression': validate
154158
};
155159
}

lib/node_modules/@stdlib/_tools/eslint/rules/line-closing-bracket-spacing/test/fixtures/invalid.js

Lines changed: 45 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818

1919
'use strict';
2020

21-
var valid = [];
21+
var invalid = [];
2222
var test;
2323

2424
test = {
@@ -39,7 +39,7 @@ test = {
3939
'}];'
4040
].join( '\n' )
4141
};
42-
valid.push( test );
42+
invalid.push( test );
4343

4444
test = {
4545
'code': [
@@ -77,7 +77,7 @@ test = {
7777
']);'
7878
].join( '\n' )
7979
};
80-
valid.push( test );
80+
invalid.push( test );
8181

8282
test = {
8383
'code': [
@@ -107,7 +107,7 @@ test = {
107107
'}]);'
108108
].join( '\n' )
109109
};
110-
valid.push( test);
110+
invalid.push( test );
111111

112112
test = {
113113
'code': [
@@ -137,7 +137,7 @@ test = {
137137
'}]);'
138138
].join( '\n' )
139139
};
140-
valid.push( test);
140+
invalid.push( test );
141141

142142
test = {
143143
'code': [
@@ -170,7 +170,7 @@ test = {
170170
'}]);'
171171
].join( '\n' )
172172
};
173-
valid.push( test);
173+
invalid.push( test );
174174

175175
test = {
176176
'code': [
@@ -202,7 +202,7 @@ test = {
202202
'*/'
203203
].join( '\n' )
204204
};
205-
valid.push( test );
205+
invalid.push( test );
206206

207207
test = {
208208
'code': [
@@ -222,9 +222,45 @@ test = {
222222
'});'
223223
].join( '\n' )
224224
};
225-
valid.push( test );
225+
invalid.push( test );
226+
227+
test = {
228+
'code': [
229+
' var v = new ndindex({',
230+
' \'kind\': \'linear\'',
231+
' } ); // some comment'
232+
].join( '\n' ),
233+
'errors': [{
234+
'message': 'No spaces allowed between a closing parenthesis or bracket and a nested object or array expression at the beginning of a line',
235+
'type': null
236+
}],
237+
'output': [
238+
' var v = new ndindex({',
239+
' \'kind\': \'linear\'',
240+
' }); // some comment'
241+
].join( '\n' )
242+
};
243+
invalid.push( test );
244+
245+
test = {
246+
'code': [
247+
' var v = new ndindex({',
248+
' \'kind\': \'linear\'',
249+
' } );'
250+
].join( '\n' ),
251+
'errors': [{
252+
'message': 'No spaces allowed between a closing parenthesis or bracket and a nested object or array expression at the beginning of a line',
253+
'type': null
254+
}],
255+
'output': [
256+
' var v = new ndindex({',
257+
' \'kind\': \'linear\'',
258+
' });'
259+
].join( '\n' )
260+
};
261+
invalid.push( test );
226262

227263

228264
// EXPORTS //
229265

230-
module.exports = valid;
266+
module.exports = invalid;

lib/node_modules/@stdlib/_tools/eslint/rules/line-closing-bracket-spacing/test/fixtures/unvalidated.js

Lines changed: 42 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -33,22 +33,22 @@ test = {
3333
'var arrSum = sum( [ 1, 2, 3, 4 ] );'
3434
].join( '\n' )
3535
};
36-
valid.push( test);
36+
valid.push( test );
3737

3838
test = {
3939
'code': [
4040
' var log = require( \'@stdlib/console/log\' );',
4141
' log( {} );'
4242
].join( '\n' )
4343
};
44-
valid.push( test);
44+
valid.push( test );
4545

4646
test = {
4747
'code': [
4848
'var arr = [ 1, 2, 3, 4, {} ];'
4949
].join( '\n' )
5050
};
51-
valid.push( test);
51+
valid.push( test );
5252

5353
test = {
5454
'code': [
@@ -60,7 +60,7 @@ test = {
6060
' );'
6161
].join( '\n' )
6262
};
63-
valid.push( test);
63+
valid.push( test );
6464

6565
test = {
6666
'code': [
@@ -73,7 +73,7 @@ test = {
7373
' );'
7474
].join( '\n' )
7575
};
76-
valid.push( test);
76+
valid.push( test );
7777

7878
test = {
7979
'code': [
@@ -87,7 +87,7 @@ test = {
8787
' );'
8888
].join( '\n' )
8989
};
90-
valid.push( test);
90+
valid.push( test );
9191

9292
test = {
9393
'code': [
@@ -98,7 +98,42 @@ test = {
9898
'];'
9999
].join( '\n' )
100100
};
101-
valid.push( test);
101+
valid.push( test );
102+
103+
test = {
104+
'code': [
105+
' var x = array( [] );'
106+
].join( '\n' )
107+
};
108+
valid.push( test );
109+
110+
test = {
111+
'code': [
112+
' var x = array( [ {} ] );'
113+
].join( '\n' )
114+
};
115+
valid.push( test );
116+
117+
test = {
118+
'code': [
119+
' var x = new Float64Array( [ 1, 2, 3, 4 ] );'
120+
].join( '\n' )
121+
};
122+
valid.push( test );
123+
124+
test = {
125+
'code': [
126+
' var x = new Float64Array(',
127+
' [',
128+
' 1,',
129+
' 2,',
130+
' 3,',
131+
' 4',
132+
' ]',
133+
' );'
134+
].join( '\n' )
135+
};
136+
valid.push( test );
102137

103138

104139
// EXPORTS //

lib/node_modules/@stdlib/_tools/eslint/rules/line-closing-bracket-spacing/test/fixtures/valid.js

Lines changed: 20 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ test = {
4848
']);'
4949
].join( '\n' )
5050
};
51-
valid.push( test);
51+
valid.push( test );
5252

5353
test = {
5454
'code': [
@@ -63,7 +63,7 @@ test = {
6363
'}]);'
6464
].join( '\n' )
6565
};
66-
valid.push( test);
66+
valid.push( test );
6767

6868
test = {
6969
'code': [
@@ -91,6 +91,24 @@ test = {
9191
};
9292
valid.push( test );
9393

94+
test = {
95+
'code': [
96+
' var v = new ndindex({',
97+
' \'kind\': \'linear\'',
98+
' }); // some comment'
99+
].join( '\n' )
100+
};
101+
valid.push( test );
102+
103+
test = {
104+
'code': [
105+
' var v = new ndindex({',
106+
' \'kind\': \'linear\'',
107+
' });'
108+
].join( '\n' )
109+
};
110+
valid.push( test );
111+
94112

95113
// EXPORTS //
96114

0 commit comments

Comments
 (0)