Skip to content

Commit c658cb7

Browse files
authored
fix: add support for handling NewExpression in _tools/eslint/rules/eol-open-bracket-spacing
PR-URL: #4342 Reviewed-by: Athan Reines <[email protected]>
1 parent 0d52a8a commit c658cb7

File tree

4 files changed

+99
-13
lines changed

4 files changed

+99
-13
lines changed

lib/node_modules/@stdlib/_tools/eslint/rules/eol-open-bracket-spacing/lib/main.js

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

8383
if (
84-
node.type === 'CallExpression' &&
84+
( node.type === 'CallExpression' || node.type === 'NewExpression' ) &&
8585
node.arguments.length > 0
8686
) {
8787
args = node.arguments;
@@ -97,7 +97,10 @@ function main( context ) {
9797
) {
9898
report( node, prevToken, tokenAfter );
9999
}
100-
} else if ( args[ 0 ].type === 'ArrayExpression' ) {
100+
} else if (
101+
args[ 0 ].type === 'ArrayExpression' &&
102+
args[ 0 ].elements.length > 0
103+
) {
101104
elem = args[ 0 ].elements[ 0 ];
102105
if (
103106
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/eol-open-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( { // eslint-disable-line no-unused-vars',
230+
' \'kind\': \'linear\'',
231+
' });'
232+
].join( '\n' ),
233+
'errors': [{
234+
'message': 'No spaces allowed between an opening parenthesis or bracket and a nested object or array expression at the end of a line',
235+
'type': null
236+
}],
237+
'output': [
238+
' var v = new ndindex({ // eslint-disable-line no-unused-vars',
239+
' \'kind\': \'linear\'',
240+
' });'
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 an opening parenthesis or bracket and a nested object or array expression at the end 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/eol-open-bracket-spacing/test/fixtures/unvalidated.js

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -107,6 +107,34 @@ test = {
107107
};
108108
valid.push( test );
109109

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 );
137+
110138

111139
// EXPORTS //
112140

lib/node_modules/@stdlib/_tools/eslint/rules/eol-open-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({ // eslint-disable-line no-unused-vars',
97+
' \'kind\': \'linear\'',
98+
' });'
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)