File tree 2 files changed +91
-0
lines changed
2 files changed +91
-0
lines changed Original file line number Diff line number Diff line change @@ -367,13 +367,19 @@ export default createEslintRule<Options, MESSAGE_ID>({
367
367
} )
368
368
}
369
369
370
+ let dependencyName : string = name
371
+ if ( isDestructuredObject && property . value . type === 'Identifier' ) {
372
+ dependencyName = property . value . name
373
+ }
374
+
370
375
let sortingNode : SortingNodeWithDependencies = {
371
376
isEslintDisabled : isNodeEslintDisabled (
372
377
property ,
373
378
eslintDisabledLines ,
374
379
) ,
375
380
size : rangeToDiff ( property , sourceCode ) ,
376
381
group : getGroup ( ) ,
382
+ dependencyName,
377
383
node : property ,
378
384
dependencies,
379
385
name,
Original file line number Diff line number Diff line change @@ -1165,6 +1165,91 @@ describe(ruleName, () => {
1165
1165
} ,
1166
1166
)
1167
1167
1168
+ ruleTester . run (
1169
+ `${ ruleName } (${ type } ): detects dependencies in object destructuring` ,
1170
+ rule ,
1171
+ {
1172
+ invalid : [
1173
+ {
1174
+ errors : [
1175
+ {
1176
+ data : {
1177
+ nodeDependentOnRight : 'a' ,
1178
+ right : 'b' ,
1179
+ left : 'a' ,
1180
+ } ,
1181
+ messageId : 'unexpectedObjectsDependencyOrder' ,
1182
+ } ,
1183
+ ] ,
1184
+ output : dedent `
1185
+ let {
1186
+ b: bRenamed,
1187
+ a = bRenamed,
1188
+ } = obj;
1189
+ ` ,
1190
+ code : dedent `
1191
+ let {
1192
+ a = bRenamed,
1193
+ b: bRenamed,
1194
+ } = obj;
1195
+ ` ,
1196
+ options : [ options ] ,
1197
+ } ,
1198
+ {
1199
+ errors : [
1200
+ {
1201
+ data : {
1202
+ nodeDependentOnRight : 'a' ,
1203
+ right : 'b' ,
1204
+ left : 'a' ,
1205
+ } ,
1206
+ messageId : 'unexpectedObjectsDependencyOrder' ,
1207
+ } ,
1208
+ ] ,
1209
+ output : dedent `
1210
+ let [{
1211
+ b: bRenamed,
1212
+ a = bRenamed,
1213
+ }] = [obj];
1214
+ ` ,
1215
+ code : dedent `
1216
+ let [{
1217
+ a = bRenamed,
1218
+ b: bRenamed,
1219
+ }] = [obj];
1220
+ ` ,
1221
+ options : [ options ] ,
1222
+ } ,
1223
+ {
1224
+ errors : [
1225
+ {
1226
+ data : {
1227
+ nodeDependentOnRight : 'a' ,
1228
+ right : 'b' ,
1229
+ left : 'a' ,
1230
+ } ,
1231
+ messageId : 'unexpectedObjectsDependencyOrder' ,
1232
+ } ,
1233
+ ] ,
1234
+ output : dedent `
1235
+ let {
1236
+ [b]: bRenamed,
1237
+ a = bRenamed,
1238
+ } = obj;
1239
+ ` ,
1240
+ code : dedent `
1241
+ let {
1242
+ a = bRenamed,
1243
+ [b]: bRenamed,
1244
+ } = obj;
1245
+ ` ,
1246
+ options : [ options ] ,
1247
+ } ,
1248
+ ] ,
1249
+ valid : [ ] ,
1250
+ } ,
1251
+ )
1252
+
1168
1253
ruleTester . run (
1169
1254
`${ ruleName } (${ type } ): detects circular dependencies` ,
1170
1255
rule ,
You can’t perform that action at this time.
0 commit comments