8
8
const matchAll = require ( 'string.prototype.matchall' ) ;
9
9
const docsUrl = require ( '../util/docsUrl' ) ;
10
10
const report = require ( '../util/report' ) ;
11
- const getMessageData = require ( '../util/message' ) ;
12
11
13
12
// ------------------------------------------------------------------------------
14
13
// Rule Definition
@@ -224,6 +223,7 @@ const COMPONENT_ATTRIBUTE_MAP = new Map([
224
223
[ 'rel' , new Set ( [ 'link' , 'a' , 'area' , 'form' ] ) ] ,
225
224
] ) ;
226
225
226
+ /* eslint-disable eslint-plugin/no-unused-message-ids -- false positives, these messageIds are used */
227
227
const messages = {
228
228
emptyIsMeaningless : 'An empty “{{attributeName}}” attribute is meaningless.' ,
229
229
neverValid : '“{{reportingValue}}” is never a valid “{{attributeName}}” attribute value.' ,
@@ -264,15 +264,11 @@ function checkLiteralValueNode(context, attributeName, node, parentNode, parentN
264
264
report ( context , messages . onlyStrings , 'onlyStrings' , {
265
265
node,
266
266
data,
267
- suggest : [
268
- Object . assign (
269
- getMessageData ( 'suggestRemoveNonString' , messages . suggestRemoveNonString ) ,
270
- {
271
- data,
272
- fix ( fixer ) { return fixer . remove ( parentNode ) ; } ,
273
- }
274
- ) ,
275
- ] ,
267
+ suggest : [ {
268
+ messageId : 'suggestRemoveNonString' ,
269
+ data,
270
+ fix ( fixer ) { return fixer . remove ( parentNode ) ; } ,
271
+ } ] ,
276
272
} ) ;
277
273
return ;
278
274
}
@@ -283,15 +279,11 @@ function checkLiteralValueNode(context, attributeName, node, parentNode, parentN
283
279
report ( context , messages . noEmpty , 'noEmpty' , {
284
280
node,
285
281
data,
286
- suggest : [
287
- Object . assign (
288
- getMessageData ( 'suggestRemoveEmpty' , messages . suggestRemoveEmpty ) ,
289
- {
290
- data,
291
- fix ( fixer ) { return fixer . remove ( node . parent ) ; } ,
292
- }
293
- ) ,
294
- ] ,
282
+ suggest : [ {
283
+ messageId : 'suggestRemoveEmpty' ,
284
+ data,
285
+ fix ( fixer ) { return fixer . remove ( node . parent ) ; } ,
286
+ } ] ,
295
287
} ) ;
296
288
return ;
297
289
}
@@ -307,18 +299,16 @@ function checkLiteralValueNode(context, attributeName, node, parentNode, parentN
307
299
reportingValue,
308
300
} ;
309
301
302
+ const suggest = [ {
303
+ messageId : 'suggestRemoveInvalid' ,
304
+ data,
305
+ fix ( fixer ) { return fixer . removeRange ( singlePart . range ) ; } ,
306
+ } ] ;
307
+
310
308
report ( context , messages . neverValid , 'neverValid' , {
311
309
node,
312
310
data,
313
- suggest : [
314
- Object . assign (
315
- getMessageData ( 'suggestRemoveInvalid' , messages . suggestRemoveInvalid ) ,
316
- {
317
- data,
318
- fix ( fixer ) { return fixer . removeRange ( singlePart . range ) ; } ,
319
- }
320
- ) ,
321
- ] ,
311
+ suggest,
322
312
} ) ;
323
313
} else if ( ! allowedTags . has ( parentNodeName ) ) {
324
314
const data = {
@@ -327,18 +317,16 @@ function checkLiteralValueNode(context, attributeName, node, parentNode, parentN
327
317
elementName : parentNodeName ,
328
318
} ;
329
319
320
+ const suggest = [ {
321
+ messageId : 'suggestRemoveInvalid' ,
322
+ data,
323
+ fix ( fixer ) { return fixer . removeRange ( singlePart . range ) ; } ,
324
+ } ] ;
325
+
330
326
report ( context , messages . notValidFor , 'notValidFor' , {
331
327
node,
332
328
data,
333
- suggest : [
334
- Object . assign (
335
- getMessageData ( 'suggestRemoveInvalid' , messages . suggestRemoveInvalid ) ,
336
- {
337
- data,
338
- fix ( fixer ) { return fixer . removeRange ( singlePart . range ) ; } ,
339
- }
340
- ) ,
341
- ] ,
329
+ suggest,
342
330
} ) ;
343
331
}
344
332
}
@@ -375,33 +363,27 @@ function checkLiteralValueNode(context, attributeName, node, parentNode, parentN
375
363
376
364
const whitespaceParts = splitIntoRangedParts ( node , / ( \s + ) / g) ;
377
365
for ( const whitespacePart of whitespaceParts ) {
366
+ const data = { attributeName } ;
367
+
378
368
if ( whitespacePart . range [ 0 ] === ( node . range [ 0 ] + 1 ) || whitespacePart . range [ 1 ] === ( node . range [ 1 ] - 1 ) ) {
379
369
report ( context , messages . spaceDelimited , 'spaceDelimited' , {
380
370
node,
381
- data : { attributeName } ,
382
- suggest : [
383
- Object . assign (
384
- getMessageData ( 'suggestRemoveWhitespaces' , messages . suggestRemoveWhitespaces ) ,
385
- {
386
- data : { attributeName } ,
387
- fix ( fixer ) { return fixer . removeRange ( whitespacePart . range ) ; } ,
388
- }
389
- ) ,
390
- ] ,
371
+ data,
372
+ suggest : [ {
373
+ messageId : 'suggestRemoveWhitespaces' ,
374
+ data,
375
+ fix ( fixer ) { return fixer . removeRange ( whitespacePart . range ) ; } ,
376
+ } ] ,
391
377
} ) ;
392
378
} else if ( whitespacePart . value !== '\u0020' ) {
393
379
report ( context , messages . spaceDelimited , 'spaceDelimited' , {
394
380
node,
395
- data : { attributeName } ,
396
- suggest : [
397
- Object . assign (
398
- getMessageData ( 'suggestRemoveWhitespaces' , messages . suggestRemoveWhitespaces ) ,
399
- {
400
- data : { attributeName } ,
401
- fix ( fixer ) { return fixer . replaceTextRange ( whitespacePart . range , '\u0020' ) ; } ,
402
- }
403
- ) ,
404
- ] ,
381
+ data,
382
+ suggest : [ {
383
+ messageId : 'suggestRemoveWhitespaces' ,
384
+ data,
385
+ fix ( fixer ) { return fixer . replaceTextRange ( whitespacePart . range , '\u0020' ) ; } ,
386
+ } ] ,
405
387
} ) ;
406
388
}
407
389
}
@@ -426,15 +408,11 @@ function checkAttribute(context, node) {
426
408
report ( context , messages . onlyMeaningfulFor , 'onlyMeaningfulFor' , {
427
409
node : node . name ,
428
410
data,
429
- suggest : [
430
- Object . assign (
431
- getMessageData ( 'suggestRemoveDefault' , messages . suggestRemoveDefault ) ,
432
- {
433
- data,
434
- fix ( fixer ) { return fixer . remove ( node ) ; } ,
435
- }
436
- ) ,
437
- ] ,
411
+ suggest : [ {
412
+ messageId : 'suggestRemoveDefault' ,
413
+ data,
414
+ fix ( fixer ) { return fixer . remove ( node ) ; } ,
415
+ } ] ,
438
416
} ) ;
439
417
return ;
440
418
}
@@ -447,12 +425,11 @@ function checkAttribute(context, node) {
447
425
report ( context , messages . emptyIsMeaningless , 'emptyIsMeaningless' , {
448
426
node : node . name ,
449
427
data,
450
- suggest : [
451
- Object . assign (
452
- getMessageData ( 'suggestRemoveEmpty' , messages . suggestRemoveEmpty ) ,
453
- { data, fix }
454
- ) ,
455
- ] ,
428
+ suggest : [ {
429
+ messageId : 'suggestRemoveEmpty' ,
430
+ data,
431
+ fix,
432
+ } ] ,
456
433
} ) ;
457
434
return ;
458
435
}
@@ -475,25 +452,23 @@ function checkAttribute(context, node) {
475
452
report ( context , messages . onlyStrings , 'onlyStrings' , {
476
453
node : node . value ,
477
454
data,
478
- suggest : [
479
- Object . assign (
480
- getMessageData ( 'suggestRemoveDefault' , messages . suggestRemoveDefault ) ,
481
- { data, fix }
482
- ) ,
483
- ] ,
455
+ suggest : [ {
456
+ messageId : 'suggestRemoveDefault' ,
457
+ data,
458
+ fix,
459
+ } ] ,
484
460
} ) ;
485
461
} else if ( node . value . expression . type === 'Identifier' && node . value . expression . name === 'undefined' ) {
486
462
const data = { attributeName : attribute } ;
487
463
488
464
report ( context , messages . onlyStrings , 'onlyStrings' , {
489
465
node : node . value ,
490
466
data,
491
- suggest : [
492
- Object . assign (
493
- getMessageData ( 'suggestRemoveDefault' , messages . suggestRemoveDefault ) ,
494
- { data, fix }
495
- ) ,
496
- ] ,
467
+ suggest : [ {
468
+ messageId : 'suggestRemoveDefault' ,
469
+ data,
470
+ fix,
471
+ } ] ,
497
472
} ) ;
498
473
}
499
474
}
@@ -523,15 +498,11 @@ function checkPropValidValue(context, node, value, attribute) {
523
498
report ( context , messages . neverValid , 'neverValid' , {
524
499
node : value ,
525
500
data,
526
- suggest : [
527
- Object . assign (
528
- getMessageData ( 'suggestRemoveInvalid' , messages . suggestRemoveInvalid ) ,
529
- {
530
- data,
531
- fix ( fixer ) { return fixer . replaceText ( value , value . raw . replace ( value . value , '' ) ) ; } ,
532
- }
533
- ) ,
534
- ] ,
501
+ suggest : [ {
502
+ messageId : 'suggestRemoveInvalid' ,
503
+ data,
504
+ fix ( fixer ) { return fixer . replaceText ( value , value . raw . replace ( value . value , '' ) ) ; } ,
505
+ } ] ,
535
506
} ) ;
536
507
} else if ( ! validTagSet . has ( node . arguments [ 0 ] . value ) ) {
537
508
report ( context , messages . notValidFor , 'notValidFor' , {
0 commit comments