@aiready/consistency 0.20.18 → 0.20.20
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.turbo/turbo-build.log +24 -23
- package/.turbo/turbo-lint.log +5 -24
- package/.turbo/turbo-test.log +35 -28
- package/coverage/clover.xml +562 -565
- package/coverage/coverage-final.json +12 -12
- package/coverage/index.html +36 -36
- package/coverage/src/analyzer.ts.html +263 -368
- package/coverage/src/analyzers/index.html +55 -55
- package/coverage/src/analyzers/naming-ast.ts.html +305 -164
- package/coverage/src/analyzers/naming-constants.ts.html +42 -36
- package/coverage/src/analyzers/naming-generalized.ts.html +312 -33
- package/coverage/src/analyzers/naming.ts.html +58 -52
- package/coverage/src/analyzers/patterns.ts.html +43 -52
- package/coverage/src/index.html +22 -22
- package/coverage/src/index.ts.html +1 -1
- package/coverage/src/provider.ts.html +22 -49
- package/coverage/src/scoring.ts.html +39 -45
- package/coverage/src/utils/ast-parser.ts.html +33 -33
- package/coverage/src/utils/config-loader.ts.html +1 -1
- package/coverage/src/utils/context-detector.ts.html +92 -92
- package/coverage/src/utils/index.html +14 -14
- package/coverage/src/utils/scope-tracker.ts.html +52 -52
- package/dist/chunk-KWQVBF7K.mjs +831 -0
- package/dist/chunk-P6NVKUBB.mjs +831 -0
- package/dist/cli.js +6 -7
- package/dist/cli.mjs +1 -1
- package/dist/index.js +6 -7
- package/dist/index.mjs +1 -1
- package/package.json +2 -2
- package/src/__tests__/naming.test.ts +88 -0
- package/src/__tests__/scope-tracker.test.ts +184 -0
- package/src/__tests__/scoring.test.ts +9 -9
- package/src/analyzers/naming-ast.ts +10 -8
- package/src/analyzers/naming-generalized.ts +1 -1
|
@@ -23,16 +23,16 @@
|
|
|
23
23
|
<div class='clearfix'>
|
|
24
24
|
|
|
25
25
|
<div class='fl pad1y space-right2'>
|
|
26
|
-
<span class="strong">89.
|
|
26
|
+
<span class="strong">89.2% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>157/
|
|
28
|
+
<span class='fraction'>157/176</span>
|
|
29
29
|
</div>
|
|
30
30
|
|
|
31
31
|
|
|
32
32
|
<div class='fl pad1y space-right2'>
|
|
33
|
-
<span class="strong">
|
|
33
|
+
<span class="strong">81.31% </span>
|
|
34
34
|
<span class="quiet">Branches</span>
|
|
35
|
-
<span class='fraction'>
|
|
35
|
+
<span class='fraction'>161/198</span>
|
|
36
36
|
</div>
|
|
37
37
|
|
|
38
38
|
|
|
@@ -44,9 +44,9 @@
|
|
|
44
44
|
|
|
45
45
|
|
|
46
46
|
<div class='fl pad1y space-right2'>
|
|
47
|
-
<span class="strong">
|
|
47
|
+
<span class="strong">91.27% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>
|
|
49
|
+
<span class='fraction'>136/149</span>
|
|
50
50
|
</div>
|
|
51
51
|
|
|
52
52
|
|
|
@@ -353,9 +353,54 @@
|
|
|
353
353
|
<a name='L288'></a><a href='#L288'>288</a>
|
|
354
354
|
<a name='L289'></a><a href='#L289'>289</a>
|
|
355
355
|
<a name='L290'></a><a href='#L290'>290</a>
|
|
356
|
-
<a name='L291'></a><a href='#L291'>291</a
|
|
357
|
-
<
|
|
358
|
-
<
|
|
356
|
+
<a name='L291'></a><a href='#L291'>291</a>
|
|
357
|
+
<a name='L292'></a><a href='#L292'>292</a>
|
|
358
|
+
<a name='L293'></a><a href='#L293'>293</a>
|
|
359
|
+
<a name='L294'></a><a href='#L294'>294</a>
|
|
360
|
+
<a name='L295'></a><a href='#L295'>295</a>
|
|
361
|
+
<a name='L296'></a><a href='#L296'>296</a>
|
|
362
|
+
<a name='L297'></a><a href='#L297'>297</a>
|
|
363
|
+
<a name='L298'></a><a href='#L298'>298</a>
|
|
364
|
+
<a name='L299'></a><a href='#L299'>299</a>
|
|
365
|
+
<a name='L300'></a><a href='#L300'>300</a>
|
|
366
|
+
<a name='L301'></a><a href='#L301'>301</a>
|
|
367
|
+
<a name='L302'></a><a href='#L302'>302</a>
|
|
368
|
+
<a name='L303'></a><a href='#L303'>303</a>
|
|
369
|
+
<a name='L304'></a><a href='#L304'>304</a>
|
|
370
|
+
<a name='L305'></a><a href='#L305'>305</a>
|
|
371
|
+
<a name='L306'></a><a href='#L306'>306</a>
|
|
372
|
+
<a name='L307'></a><a href='#L307'>307</a>
|
|
373
|
+
<a name='L308'></a><a href='#L308'>308</a>
|
|
374
|
+
<a name='L309'></a><a href='#L309'>309</a>
|
|
375
|
+
<a name='L310'></a><a href='#L310'>310</a>
|
|
376
|
+
<a name='L311'></a><a href='#L311'>311</a>
|
|
377
|
+
<a name='L312'></a><a href='#L312'>312</a>
|
|
378
|
+
<a name='L313'></a><a href='#L313'>313</a>
|
|
379
|
+
<a name='L314'></a><a href='#L314'>314</a>
|
|
380
|
+
<a name='L315'></a><a href='#L315'>315</a>
|
|
381
|
+
<a name='L316'></a><a href='#L316'>316</a>
|
|
382
|
+
<a name='L317'></a><a href='#L317'>317</a>
|
|
383
|
+
<a name='L318'></a><a href='#L318'>318</a>
|
|
384
|
+
<a name='L319'></a><a href='#L319'>319</a>
|
|
385
|
+
<a name='L320'></a><a href='#L320'>320</a>
|
|
386
|
+
<a name='L321'></a><a href='#L321'>321</a>
|
|
387
|
+
<a name='L322'></a><a href='#L322'>322</a>
|
|
388
|
+
<a name='L323'></a><a href='#L323'>323</a>
|
|
389
|
+
<a name='L324'></a><a href='#L324'>324</a>
|
|
390
|
+
<a name='L325'></a><a href='#L325'>325</a>
|
|
391
|
+
<a name='L326'></a><a href='#L326'>326</a>
|
|
392
|
+
<a name='L327'></a><a href='#L327'>327</a>
|
|
393
|
+
<a name='L328'></a><a href='#L328'>328</a>
|
|
394
|
+
<a name='L329'></a><a href='#L329'>329</a>
|
|
395
|
+
<a name='L330'></a><a href='#L330'>330</a>
|
|
396
|
+
<a name='L331'></a><a href='#L331'>331</a>
|
|
397
|
+
<a name='L332'></a><a href='#L332'>332</a>
|
|
398
|
+
<a name='L333'></a><a href='#L333'>333</a>
|
|
399
|
+
<a name='L334'></a><a href='#L334'>334</a>
|
|
400
|
+
<a name='L335'></a><a href='#L335'>335</a>
|
|
401
|
+
<a name='L336'></a><a href='#L336'>336</a>
|
|
402
|
+
<a name='L337'></a><a href='#L337'>337</a>
|
|
403
|
+
<a name='L338'></a><a href='#L338'>338</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral"> </span>
|
|
359
404
|
<span class="cline-any cline-neutral"> </span>
|
|
360
405
|
<span class="cline-any cline-neutral"> </span>
|
|
361
406
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -378,20 +423,22 @@
|
|
|
378
423
|
<span class="cline-any cline-neutral"> </span>
|
|
379
424
|
<span class="cline-any cline-yes">7x</span>
|
|
380
425
|
<span class="cline-any cline-neutral"> </span>
|
|
381
|
-
<span class="cline-any cline-yes">
|
|
382
|
-
<span class="cline-any cline-yes">62x</span>
|
|
426
|
+
<span class="cline-any cline-yes">7x</span>
|
|
383
427
|
<span class="cline-any cline-yes">62x</span>
|
|
428
|
+
<span class="cline-any cline-yes">68x</span>
|
|
384
429
|
<span class="cline-any cline-yes">62x</span>
|
|
385
430
|
<span class="cline-any cline-neutral"> </span>
|
|
431
|
+
<span class="cline-any cline-yes">51x</span>
|
|
432
|
+
<span class="cline-any cline-yes">45x</span>
|
|
386
433
|
<span class="cline-any cline-yes">45x</span>
|
|
387
434
|
<span class="cline-any cline-yes">68x</span>
|
|
388
435
|
<span class="cline-any cline-yes">123x</span>
|
|
389
436
|
<span class="cline-any cline-neutral"> </span>
|
|
390
|
-
<span class="cline-any cline-
|
|
437
|
+
<span class="cline-any cline-neutral"> </span>
|
|
391
438
|
<span class="cline-any cline-yes">6x</span>
|
|
392
439
|
<span class="cline-any cline-yes">55x</span>
|
|
393
440
|
<span class="cline-any cline-yes">55x</span>
|
|
394
|
-
<span class="cline-any cline-yes">
|
|
441
|
+
<span class="cline-any cline-yes">55x</span>
|
|
395
442
|
<span class="cline-any cline-neutral"> </span>
|
|
396
443
|
<span class="cline-any cline-yes">45x</span>
|
|
397
444
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -400,15 +447,13 @@
|
|
|
400
447
|
<span class="cline-any cline-neutral"> </span>
|
|
401
448
|
<span class="cline-any cline-neutral"> </span>
|
|
402
449
|
<span class="cline-any cline-neutral"> </span>
|
|
403
|
-
<span class="cline-any cline-yes">
|
|
404
|
-
<span class="cline-any cline-neutral"> </span>
|
|
405
|
-
<span class="cline-any cline-yes">45x</span>
|
|
450
|
+
<span class="cline-any cline-yes">90x</span>
|
|
406
451
|
<span class="cline-any cline-yes">100x</span>
|
|
407
|
-
<span class="cline-any cline-
|
|
452
|
+
<span class="cline-any cline-no"> </span>
|
|
408
453
|
<span class="cline-any cline-yes">45x</span>
|
|
409
|
-
<span class="cline-any cline-yes">51x</span>
|
|
410
454
|
<span class="cline-any cline-neutral"> </span>
|
|
411
|
-
<span class="cline-any cline-
|
|
455
|
+
<span class="cline-any cline-neutral"> </span>
|
|
456
|
+
<span class="cline-any cline-yes">2874x</span>
|
|
412
457
|
<span class="cline-any cline-yes">39x</span>
|
|
413
458
|
<span class="cline-any cline-yes">39x</span>
|
|
414
459
|
<span class="cline-any cline-yes">39x</span>
|
|
@@ -416,122 +461,163 @@
|
|
|
416
461
|
<span class="cline-any cline-neutral"> </span>
|
|
417
462
|
<span class="cline-any cline-neutral"> </span>
|
|
418
463
|
<span class="cline-any cline-neutral"> </span>
|
|
419
|
-
<span class="cline-any cline-
|
|
420
|
-
<span class="cline-any cline-
|
|
464
|
+
<span class="cline-any cline-neutral"> </span>
|
|
465
|
+
<span class="cline-any cline-neutral"> </span>
|
|
421
466
|
<span class="cline-any cline-yes">90x</span>
|
|
422
467
|
<span class="cline-any cline-yes">90x</span>
|
|
423
|
-
<span class="cline-any cline-yes">
|
|
468
|
+
<span class="cline-any cline-yes">2880x</span>
|
|
469
|
+
<span class="cline-any cline-yes">2880x</span>
|
|
470
|
+
<span class="cline-any cline-neutral"> </span>
|
|
424
471
|
<span class="cline-any cline-neutral"> </span>
|
|
425
472
|
<span class="cline-any cline-yes">45x</span>
|
|
473
|
+
<span class="cline-any cline-yes">75x</span>
|
|
474
|
+
<span class="cline-any cline-yes">27900x</span>
|
|
475
|
+
<span class="cline-any cline-yes">90x</span>
|
|
476
|
+
<span class="cline-any cline-yes">90x</span>
|
|
477
|
+
<span class="cline-any cline-yes">25110x</span>
|
|
478
|
+
<span class="cline-any cline-yes">327x</span>
|
|
426
479
|
<span class="cline-any cline-neutral"> </span>
|
|
427
|
-
<span class="cline-any cline-yes">27534x</span>
|
|
428
|
-
<span class="cline-any cline-yes">78x</span>
|
|
429
|
-
<span class="cline-any cline-yes">93x</span>
|
|
430
|
-
<span class="cline-any cline-yes">24690x</span>
|
|
431
|
-
<span class="cline-any cline-yes">351x</span>
|
|
432
480
|
<span class="cline-any cline-neutral"> </span>
|
|
481
|
+
<span class="cline-any cline-yes">3117x</span>
|
|
482
|
+
<span class="cline-any cline-yes">312x</span>
|
|
483
|
+
<span class="cline-any cline-yes">405x</span>
|
|
484
|
+
<span class="cline-any cline-yes">405x</span>
|
|
433
485
|
<span class="cline-any cline-neutral"> </span>
|
|
434
|
-
<span class="cline-any cline-yes">348x</span>
|
|
435
|
-
<span class="cline-any cline-yes">348x</span>
|
|
436
|
-
<span class="cline-any cline-yes">471x</span>
|
|
437
|
-
<span class="cline-any cline-yes">411x</span>
|
|
438
|
-
<span class="cline-any cline-yes">411x</span>
|
|
439
486
|
<span class="cline-any cline-neutral"> </span>
|
|
440
|
-
<span class="cline-any cline-yes">
|
|
487
|
+
<span class="cline-any cline-yes">15x</span>
|
|
441
488
|
<span class="cline-any cline-neutral"> </span>
|
|
442
|
-
<span class="cline-any cline-
|
|
489
|
+
<span class="cline-any cline-no"> </span>
|
|
443
490
|
<span class="cline-any cline-neutral"> </span>
|
|
444
|
-
<span class="cline-any cline-yes">2937x</span>
|
|
445
491
|
<span class="cline-any cline-neutral"> </span>
|
|
446
|
-
<span class="cline-any cline-yes">27231x</span>
|
|
447
|
-
<span class="cline-any cline-yes">3582x</span>
|
|
448
|
-
<span class="cline-any cline-yes">26541x</span>
|
|
449
|
-
<span class="cline-any cline-yes">2970x</span>
|
|
450
|
-
<span class="cline-any cline-yes">23613x</span>
|
|
451
|
-
<span class="cline-any cline-yes">48x</span>
|
|
452
492
|
<span class="cline-any cline-neutral"> </span>
|
|
493
|
+
<span class="cline-any cline-yes">24828x</span>
|
|
494
|
+
<span class="cline-any cline-yes">714x</span>
|
|
495
|
+
<span class="cline-any cline-yes">26949x</span>
|
|
496
|
+
<span class="cline-any cline-yes">2913x</span>
|
|
497
|
+
<span class="cline-any cline-yes">26871x</span>
|
|
498
|
+
<span class="cline-any cline-yes">2841x</span>
|
|
453
499
|
<span class="cline-any cline-neutral"> </span>
|
|
454
500
|
<span class="cline-any cline-neutral"> </span>
|
|
455
|
-
<span class="cline-any cline-yes">
|
|
456
|
-
<span class="cline-any cline-yes">
|
|
457
|
-
<span class="cline-any cline-yes">
|
|
458
|
-
<span class="cline-any cline-yes">
|
|
501
|
+
<span class="cline-any cline-yes">87x</span>
|
|
502
|
+
<span class="cline-any cline-yes">25065x</span>
|
|
503
|
+
<span class="cline-any cline-yes">543x</span>
|
|
504
|
+
<span class="cline-any cline-yes">570x</span>
|
|
505
|
+
<span class="cline-any cline-yes">528x</span>
|
|
459
506
|
<span class="cline-any cline-neutral"> </span>
|
|
460
507
|
<span class="cline-any cline-neutral"> </span>
|
|
461
508
|
<span class="cline-any cline-neutral"> </span>
|
|
462
509
|
<span class="cline-any cline-neutral"> </span>
|
|
463
|
-
<span class="cline-any cline-yes">603x</span>
|
|
464
|
-
<span class="cline-any cline-yes">558x</span>
|
|
465
510
|
<span class="cline-any cline-neutral"> </span>
|
|
466
511
|
<span class="cline-any cline-neutral"> </span>
|
|
467
|
-
<span class="cline-any cline-yes">564x</span>
|
|
468
|
-
<span class="cline-any cline-yes">15x</span>
|
|
469
|
-
<span class="cline-any cline-yes">15x</span>
|
|
470
512
|
<span class="cline-any cline-neutral"> </span>
|
|
471
513
|
<span class="cline-any cline-neutral"> </span>
|
|
514
|
+
<span class="cline-any cline-yes">588x</span>
|
|
515
|
+
<span class="cline-any cline-yes">543x</span>
|
|
516
|
+
<span class="cline-any cline-yes">60x</span>
|
|
517
|
+
<span class="cline-any cline-neutral"> </span>
|
|
518
|
+
<span class="cline-any cline-yes">25071x</span>
|
|
519
|
+
<span class="cline-any cline-neutral"> </span>
|
|
520
|
+
<span class="cline-any cline-neutral"> </span>
|
|
521
|
+
<span class="cline-any cline-yes">25065x</span>
|
|
472
522
|
<span class="cline-any cline-neutral"> </span>
|
|
523
|
+
<span class="cline-any cline-yes">8739x</span>
|
|
524
|
+
<span class="cline-any cline-yes">8211x</span>
|
|
525
|
+
<span class="cline-any cline-yes">8100x</span>
|
|
473
526
|
<span class="cline-any cline-neutral"> </span>
|
|
474
|
-
<span class="cline-any cline-yes">24642x</span>
|
|
475
527
|
<span class="cline-any cline-neutral"> </span>
|
|
476
|
-
<span class="cline-any cline-yes">8655x</span>
|
|
477
|
-
<span class="cline-any cline-yes">8097x</span>
|
|
478
|
-
<span class="cline-any cline-yes">7983x</span>
|
|
479
528
|
<span class="cline-any cline-neutral"> </span>
|
|
480
529
|
<span class="cline-any cline-neutral"> </span>
|
|
481
|
-
<span class="cline-any cline-
|
|
530
|
+
<span class="cline-any cline-neutral"> </span>
|
|
531
|
+
<span class="cline-any cline-yes">25065x</span>
|
|
482
532
|
<span class="cline-any cline-yes">87x</span>
|
|
483
533
|
<span class="cline-any cline-yes">87x</span>
|
|
484
|
-
<span class="cline-any cline-yes">
|
|
485
|
-
<span class="cline-any cline-yes">
|
|
486
|
-
<span class="cline-any cline-yes">
|
|
487
|
-
<span class="cline-any cline-yes">
|
|
534
|
+
<span class="cline-any cline-yes">25065x</span>
|
|
535
|
+
<span class="cline-any cline-yes">25065x</span>
|
|
536
|
+
<span class="cline-any cline-yes">25065x</span>
|
|
537
|
+
<span class="cline-any cline-yes">25065x</span>
|
|
538
|
+
<span class="cline-any cline-yes">25065x</span>
|
|
488
539
|
<span class="cline-any cline-neutral"> </span>
|
|
489
540
|
<span class="cline-any cline-neutral"> </span>
|
|
490
541
|
<span class="cline-any cline-yes">42x</span>
|
|
491
|
-
<span class="cline-any cline-yes">
|
|
542
|
+
<span class="cline-any cline-yes">1077x</span>
|
|
492
543
|
<span class="cline-any cline-no"> </span>
|
|
493
544
|
<span class="cline-any cline-neutral"> </span>
|
|
494
545
|
<span class="cline-any cline-neutral"> </span>
|
|
495
|
-
<span class="cline-any cline-yes">1077x</span>
|
|
496
546
|
<span class="cline-any cline-neutral"> </span>
|
|
497
547
|
<span class="cline-any cline-neutral"> </span>
|
|
548
|
+
<span class="cline-any cline-yes">45x</span>
|
|
549
|
+
<span class="cline-any cline-neutral"> </span>
|
|
550
|
+
<span class="cline-any cline-yes">45x</span>
|
|
551
|
+
<span class="cline-any cline-yes">996x</span>
|
|
552
|
+
<span class="cline-any cline-yes">954x</span>
|
|
498
553
|
<span class="cline-any cline-neutral"> </span>
|
|
499
554
|
<span class="cline-any cline-neutral"> </span>
|
|
555
|
+
<span class="cline-any cline-yes">954x</span>
|
|
556
|
+
<span class="cline-any cline-yes">954x</span>
|
|
557
|
+
<span class="cline-any cline-neutral"> </span>
|
|
558
|
+
<span class="cline-any cline-neutral"> </span>
|
|
559
|
+
<span class="cline-any cline-yes">954x</span>
|
|
560
|
+
<span class="cline-any cline-yes">954x</span>
|
|
561
|
+
<span class="cline-any cline-neutral"> </span>
|
|
562
|
+
<span class="cline-any cline-neutral"> </span>
|
|
563
|
+
<span class="cline-any cline-yes">954x</span>
|
|
500
564
|
<span class="cline-any cline-neutral"> </span>
|
|
501
|
-
<span class="cline-any cline-yes">45x</span>
|
|
502
565
|
<span class="cline-any cline-neutral"> </span>
|
|
503
566
|
<span class="cline-any cline-yes">45x</span>
|
|
504
|
-
<span class="cline-any cline-yes">
|
|
505
|
-
<span class="cline-any cline-yes">1011x</span>
|
|
567
|
+
<span class="cline-any cline-yes">954x</span>
|
|
506
568
|
<span class="cline-any cline-neutral"> </span>
|
|
507
569
|
<span class="cline-any cline-neutral"> </span>
|
|
508
|
-
<span class="cline-any cline-yes">1011x</span>
|
|
509
|
-
<span class="cline-any cline-yes">1011x</span>
|
|
510
570
|
<span class="cline-any cline-neutral"> </span>
|
|
571
|
+
<span class="cline-any cline-yes">45x</span>
|
|
572
|
+
<span class="cline-any cline-neutral"> </span>
|
|
573
|
+
<span class="cline-any cline-yes">105x</span>
|
|
511
574
|
<span class="cline-any cline-neutral"> </span>
|
|
512
|
-
<span class="cline-any cline-yes">1011x</span>
|
|
513
|
-
<span class="cline-any cline-yes">1011x</span>
|
|
514
575
|
<span class="cline-any cline-neutral"> </span>
|
|
515
576
|
<span class="cline-any cline-yes">45x</span>
|
|
516
|
-
<span class="cline-any cline-yes">
|
|
577
|
+
<span class="cline-any cline-yes">849x</span>
|
|
578
|
+
<span class="cline-any cline-neutral"> </span>
|
|
579
|
+
<span class="cline-any cline-yes">33x</span>
|
|
580
|
+
<span class="cline-any cline-yes">33x</span>
|
|
581
|
+
<span class="cline-any cline-no"> </span>
|
|
582
|
+
<span class="cline-any cline-neutral"> </span>
|
|
583
|
+
<span class="cline-any cline-neutral"> </span>
|
|
584
|
+
<span class="cline-any cline-neutral"> </span>
|
|
517
585
|
<span class="cline-any cline-neutral"> </span>
|
|
518
586
|
<span class="cline-any cline-neutral"> </span>
|
|
519
587
|
<span class="cline-any cline-neutral"> </span>
|
|
520
|
-
<span class="cline-any cline-yes">1011x</span>
|
|
521
|
-
<span class="cline-any cline-yes">1011x</span>
|
|
522
588
|
<span class="cline-any cline-yes">45x</span>
|
|
523
589
|
<span class="cline-any cline-neutral"> </span>
|
|
590
|
+
<span class="cline-any cline-yes">33x</span>
|
|
524
591
|
<span class="cline-any cline-neutral"> </span>
|
|
525
592
|
<span class="cline-any cline-neutral"> </span>
|
|
526
|
-
<span class="cline-any cline-yes">120x</span>
|
|
527
593
|
<span class="cline-any cline-neutral"> </span>
|
|
594
|
+
<span class="cline-any cline-yes">816x</span>
|
|
595
|
+
<span class="cline-any cline-yes">48x</span>
|
|
528
596
|
<span class="cline-any cline-neutral"> </span>
|
|
597
|
+
<span class="cline-any cline-yes">24x</span>
|
|
598
|
+
<span class="cline-any cline-yes">24x</span>
|
|
599
|
+
<span class="cline-any cline-yes">816x</span>
|
|
600
|
+
<span class="cline-any cline-yes">12x</span>
|
|
601
|
+
<span class="cline-any cline-yes">48x</span>
|
|
529
602
|
<span class="cline-any cline-neutral"> </span>
|
|
530
|
-
<span class="cline-any cline-yes">891x</span>
|
|
531
603
|
<span class="cline-any cline-neutral"> </span>
|
|
532
|
-
<span class="cline-any cline-
|
|
533
|
-
<span class="cline-any cline-
|
|
604
|
+
<span class="cline-any cline-neutral"> </span>
|
|
605
|
+
<span class="cline-any cline-neutral"> </span>
|
|
606
|
+
<span class="cline-any cline-neutral"> </span>
|
|
607
|
+
<span class="cline-any cline-neutral"> </span>
|
|
608
|
+
<span class="cline-any cline-neutral"> </span>
|
|
609
|
+
<span class="cline-any cline-yes">48x</span>
|
|
610
|
+
<span class="cline-any cline-neutral"> </span>
|
|
611
|
+
<span class="cline-any cline-neutral"> </span>
|
|
612
|
+
<span class="cline-any cline-no"> </span>
|
|
613
|
+
<span class="cline-any cline-yes">768x</span>
|
|
614
|
+
<span class="cline-any cline-yes">768x</span>
|
|
615
|
+
<span class="cline-any cline-no"> </span>
|
|
616
|
+
<span class="cline-any cline-no"> </span>
|
|
617
|
+
<span class="cline-any cline-neutral"> </span>
|
|
534
618
|
<span class="cline-any cline-no"> </span>
|
|
619
|
+
<span class="cline-any cline-yes">45x</span>
|
|
620
|
+
<span class="cline-any cline-neutral"> </span>
|
|
535
621
|
<span class="cline-any cline-neutral"> </span>
|
|
536
622
|
<span class="cline-any cline-neutral"> </span>
|
|
537
623
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -540,94 +626,101 @@
|
|
|
540
626
|
<span class="cline-any cline-neutral"> </span>
|
|
541
627
|
<span class="cline-any cline-neutral"> </span>
|
|
542
628
|
<span class="cline-any cline-neutral"> </span>
|
|
543
|
-
<span class="cline-any cline-yes">27x</span>
|
|
544
629
|
<span class="cline-any cline-yes">45x</span>
|
|
545
630
|
<span class="cline-any cline-yes">45x</span>
|
|
546
631
|
<span class="cline-any cline-yes">45x</span>
|
|
547
|
-
<span class="cline-any cline-yes">
|
|
548
|
-
<span class="cline-any cline-yes">
|
|
632
|
+
<span class="cline-any cline-yes">25065x</span>
|
|
633
|
+
<span class="cline-any cline-yes">162x</span>
|
|
634
|
+
<span class="cline-any cline-yes">162x</span>
|
|
549
635
|
<span class="cline-any cline-neutral"> </span>
|
|
550
|
-
<span class="cline-any cline-yes">
|
|
551
|
-
<span class="cline-any cline-yes">6x</span>
|
|
552
|
-
<span class="cline-any cline-yes">3x</span>
|
|
636
|
+
<span class="cline-any cline-yes">162x</span>
|
|
553
637
|
<span class="cline-any cline-neutral"> </span>
|
|
554
638
|
<span class="cline-any cline-neutral"> </span>
|
|
639
|
+
<span class="cline-any cline-yes">162x</span>
|
|
555
640
|
<span class="cline-any cline-neutral"> </span>
|
|
556
641
|
<span class="cline-any cline-neutral"> </span>
|
|
557
|
-
<span class="cline-any cline-yes">
|
|
642
|
+
<span class="cline-any cline-yes">162x</span>
|
|
558
643
|
<span class="cline-any cline-neutral"> </span>
|
|
644
|
+
<span class="cline-any cline-yes">162x</span>
|
|
645
|
+
<span class="cline-any cline-yes">162x</span>
|
|
646
|
+
<span class="cline-any cline-yes">162x</span>
|
|
647
|
+
<span class="cline-any cline-yes">162x</span>
|
|
648
|
+
<span class="cline-any cline-yes">162x</span>
|
|
559
649
|
<span class="cline-any cline-neutral"> </span>
|
|
650
|
+
<span class="cline-any cline-yes">162x</span>
|
|
651
|
+
<span class="cline-any cline-yes">162x</span>
|
|
652
|
+
<span class="cline-any cline-yes">162x</span>
|
|
560
653
|
<span class="cline-any cline-neutral"> </span>
|
|
561
654
|
<span class="cline-any cline-neutral"> </span>
|
|
562
|
-
<span class="cline-any cline-yes">
|
|
563
|
-
<span class="cline-any cline-yes">864x</span>
|
|
564
|
-
<span class="cline-any cline-yes">45x</span>
|
|
655
|
+
<span class="cline-any cline-yes">162x</span>
|
|
565
656
|
<span class="cline-any cline-neutral"> </span>
|
|
566
|
-
<span class="cline-any cline-yes">807x</span>
|
|
567
|
-
<span class="cline-any cline-yes">807x</span>
|
|
568
|
-
<span class="cline-any cline-no"> </span>
|
|
569
|
-
<span class="cline-any cline-no"> </span>
|
|
570
657
|
<span class="cline-any cline-neutral"> </span>
|
|
571
658
|
<span class="cline-any cline-neutral"> </span>
|
|
659
|
+
<span class="cline-any cline-yes">162x</span>
|
|
660
|
+
<span class="cline-any cline-yes">162x</span>
|
|
661
|
+
<span class="cline-any cline-neutral"> </span>
|
|
662
|
+
<span class="cline-any cline-yes">162x</span>
|
|
663
|
+
<span class="cline-any cline-yes">21x</span>
|
|
572
664
|
<span class="cline-any cline-neutral"> </span>
|
|
573
665
|
<span class="cline-any cline-neutral"> </span>
|
|
574
666
|
<span class="cline-any cline-neutral"> </span>
|
|
575
667
|
<span class="cline-any cline-neutral"> </span>
|
|
576
|
-
<span class="cline-any cline-no"> </span>
|
|
577
668
|
<span class="cline-any cline-neutral"> </span>
|
|
578
669
|
<span class="cline-any cline-neutral"> </span>
|
|
579
670
|
<span class="cline-any cline-neutral"> </span>
|
|
580
671
|
<span class="cline-any cline-neutral"> </span>
|
|
672
|
+
<span class="cline-any cline-yes">25065x</span>
|
|
673
|
+
<span class="cline-any cline-neutral"> </span>
|
|
674
|
+
<span class="cline-any cline-neutral"> </span>
|
|
675
|
+
<span class="cline-any cline-neutral"> </span>
|
|
581
676
|
<span class="cline-any cline-neutral"> </span>
|
|
582
677
|
<span class="cline-any cline-yes">45x</span>
|
|
678
|
+
<span class="cline-any cline-neutral"> </span>
|
|
583
679
|
<span class="cline-any cline-yes">45x</span>
|
|
584
680
|
<span class="cline-any cline-neutral"> </span>
|
|
585
|
-
<span class="cline-any cline-yes">24642x</span>
|
|
586
|
-
<span class="cline-any cline-yes">165x</span>
|
|
587
|
-
<span class="cline-any cline-yes">165x</span>
|
|
588
|
-
<span class="cline-any cline-yes">24642x</span>
|
|
589
|
-
<span class="cline-any cline-yes">165x</span>
|
|
590
681
|
<span class="cline-any cline-neutral"> </span>
|
|
591
682
|
<span class="cline-any cline-neutral"> </span>
|
|
592
|
-
<span class="cline-any cline-yes">165x</span>
|
|
593
683
|
<span class="cline-any cline-neutral"> </span>
|
|
594
684
|
<span class="cline-any cline-neutral"> </span>
|
|
595
|
-
<span class="cline-any cline-yes">24687x</span>
|
|
596
685
|
<span class="cline-any cline-neutral"> </span>
|
|
597
|
-
<span class="cline-any cline-yes">165x</span>
|
|
598
|
-
<span class="cline-any cline-yes">165x</span>
|
|
599
|
-
<span class="cline-any cline-yes">165x</span>
|
|
600
|
-
<span class="cline-any cline-yes">165x</span>
|
|
601
|
-
<span class="cline-any cline-yes">165x</span>
|
|
602
686
|
<span class="cline-any cline-neutral"> </span>
|
|
603
|
-
<span class="cline-any cline-yes">
|
|
604
|
-
<span class="cline-any cline-yes">165x</span>
|
|
605
|
-
<span class="cline-any cline-yes">165x</span>
|
|
687
|
+
<span class="cline-any cline-yes">45x</span>
|
|
606
688
|
<span class="cline-any cline-neutral"> </span>
|
|
607
|
-
<span class="cline-any cline-yes">
|
|
608
|
-
<span class="cline-any cline-yes">
|
|
689
|
+
<span class="cline-any cline-yes">15x</span>
|
|
690
|
+
<span class="cline-any cline-yes">12x</span>
|
|
691
|
+
<span class="cline-any cline-yes">42x</span>
|
|
692
|
+
<span class="cline-any cline-yes">27x</span>
|
|
609
693
|
<span class="cline-any cline-neutral"> </span>
|
|
610
694
|
<span class="cline-any cline-neutral"> </span>
|
|
611
695
|
<span class="cline-any cline-neutral"> </span>
|
|
612
|
-
<span class="cline-any cline-yes">165x</span>
|
|
613
|
-
<span class="cline-any cline-yes">165x</span>
|
|
614
696
|
<span class="cline-any cline-neutral"> </span>
|
|
615
|
-
<span class="cline-any cline-yes">165x</span>
|
|
616
|
-
<span class="cline-any cline-yes">21x</span>
|
|
617
|
-
<span class="cline-any cline-no"> </span>
|
|
618
|
-
<span class="cline-any cline-yes">45x</span>
|
|
619
|
-
<span class="cline-any cline-yes">45x</span>
|
|
620
697
|
<span class="cline-any cline-neutral"> </span>
|
|
621
698
|
<span class="cline-any cline-neutral"> </span>
|
|
622
699
|
<span class="cline-any cline-neutral"> </span>
|
|
623
700
|
<span class="cline-any cline-neutral"> </span>
|
|
701
|
+
<span class="cline-any cline-yes">15x</span>
|
|
702
|
+
<span class="cline-any cline-yes">3x</span>
|
|
624
703
|
<span class="cline-any cline-neutral"> </span>
|
|
625
704
|
<span class="cline-any cline-neutral"> </span>
|
|
626
705
|
<span class="cline-any cline-neutral"> </span>
|
|
627
706
|
<span class="cline-any cline-neutral"> </span>
|
|
628
707
|
<span class="cline-any cline-neutral"> </span>
|
|
708
|
+
<span class="cline-any cline-no"> </span>
|
|
709
|
+
<span class="cline-any cline-yes">15x</span>
|
|
710
|
+
<span class="cline-any cline-yes">15x</span>
|
|
711
|
+
<span class="cline-any cline-yes">15x</span>
|
|
629
712
|
<span class="cline-any cline-neutral"> </span>
|
|
630
|
-
<span class="cline-any cline-yes">
|
|
713
|
+
<span class="cline-any cline-yes">3x</span>
|
|
714
|
+
<span class="cline-any cline-yes">3x</span>
|
|
715
|
+
<span class="cline-any cline-yes">6x</span>
|
|
716
|
+
<span class="cline-any cline-yes">6x</span>
|
|
717
|
+
<span class="cline-any cline-neutral"> </span>
|
|
718
|
+
<span class="cline-any cline-neutral"> </span>
|
|
719
|
+
<span class="cline-any cline-neutral"> </span>
|
|
720
|
+
<span class="cline-any cline-neutral"> </span>
|
|
721
|
+
<span class="cline-any cline-neutral"> </span>
|
|
722
|
+
<span class="cline-any cline-neutral"> </span>
|
|
723
|
+
<span class="cline-any cline-no"> </span>
|
|
631
724
|
<span class="cline-any cline-no"> </span>
|
|
632
725
|
<span class="cline-any cline-no"> </span>
|
|
633
726
|
<span class="cline-any cline-no"> </span>
|
|
@@ -639,19 +732,18 @@
|
|
|
639
732
|
<span class="cline-any cline-neutral"> </span>
|
|
640
733
|
<span class="cline-any cline-neutral"> </span>
|
|
641
734
|
<span class="cline-any cline-neutral"> </span>
|
|
642
|
-
<span class="cline-any cline-
|
|
643
|
-
<span class="cline-any cline-
|
|
644
|
-
<span class="cline-any cline-
|
|
645
|
-
<span class="cline-any cline-
|
|
735
|
+
<span class="cline-any cline-neutral"> </span>
|
|
736
|
+
<span class="cline-any cline-neutral"> </span>
|
|
737
|
+
<span class="cline-any cline-neutral"> </span>
|
|
738
|
+
<span class="cline-any cline-neutral"> </span>
|
|
739
|
+
<span class="cline-any cline-neutral"> </span>
|
|
646
740
|
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">import { TSESTree } from '@typescript-eslint/typescript-estree';
|
|
647
741
|
import { Severity } from '@aiready/core';
|
|
648
742
|
import type { NamingIssue } from '../types';
|
|
649
743
|
import {
|
|
650
744
|
parseFile,
|
|
651
745
|
traverseAST,
|
|
652
|
-
getFunctionName,
|
|
653
746
|
getLineNumber,
|
|
654
|
-
isCoverageContext,
|
|
655
747
|
isLoopStatement,
|
|
656
748
|
} from '../utils/ast-parser';
|
|
657
749
|
import {
|
|
@@ -692,9 +784,9 @@ function analyzeIdentifiers(
|
|
|
692
784
|
filePath: string,
|
|
693
785
|
context: any
|
|
694
786
|
): NamingIssue[] {
|
|
695
|
-
|
|
787
|
+
const issues: NamingIssue[] = [];
|
|
696
788
|
const scopeTracker = new ScopeTracker();
|
|
697
|
-
|
|
789
|
+
<span class="cstat-no" title="statement not covered" ></span>
|
|
698
790
|
traverseAST(ast, {
|
|
699
791
|
enter: (node) => {
|
|
700
792
|
// 1. Variable Declarations
|
|
@@ -715,17 +807,23 @@ function analyzeIdentifiers(
|
|
|
715
807
|
node.type === 'FunctionExpression' ||
|
|
716
808
|
node.type === 'ArrowFunctionExpression'
|
|
717
809
|
) {
|
|
810
|
+
const isArrowParameter = node.type === 'ArrowFunctionExpression';
|
|
718
811
|
node.params.forEach((param) => {
|
|
719
812
|
if (param.type === 'Identifier') {
|
|
720
813
|
scopeTracker.declareVariable(
|
|
721
814
|
param.name,
|
|
722
815
|
param,
|
|
723
816
|
getLineNumber(param),
|
|
724
|
-
|
|
817
|
+
{ isParameter: true, isArrowParameter }
|
|
725
818
|
);
|
|
726
819
|
<span class="missing-if-branch" title="else path not taken" >E</span><span class="missing-if-branch" title="else path not taken" >E</span>} else if (param.type === 'ObjectPattern') {
|
|
727
820
|
// Handle destructured parameters: { id, name }
|
|
728
|
-
extractDestructuredIdentifiers(
|
|
821
|
+
extractDestructuredIdentifiers(
|
|
822
|
+
param,
|
|
823
|
+
true,
|
|
824
|
+
scope<span class="missing-if-branch" title="if path not taken" >I</span>Tracker,
|
|
825
|
+
isArrowParameter
|
|
826
|
+
);<span class="cstat-no" title="statement not covered" ></span>
|
|
729
827
|
}
|
|
730
828
|
});
|
|
731
829
|
}
|
|
@@ -746,16 +844,16 @@ function analyzeIdentifiers(
|
|
|
746
844
|
context
|
|
747
845
|
);
|
|
748
846
|
}
|
|
749
|
-
}
|
|
847
|
+
},<span class="branch-1 cbranch-no" title="branch not covered" ></span>
|
|
750
848
|
});
|
|
751
849
|
|
|
752
850
|
// Check all collected variables
|
|
753
|
-
for (const varInfo of scopeTracker.getVariables()) {
|
|
754
|
-
|
|
851
|
+
for (const varInfo of scopeTracker.getVariables()) {
|
|
852
|
+
checkVariab<span class="missing-if-branch" title="else path not taken" >E</span>leNaming(varInfo, filePath, issues, context);
|
|
755
853
|
}
|
|
756
854
|
|
|
757
855
|
return issues;
|
|
758
|
-
}
|
|
856
|
+
}
|
|
759
857
|
|
|
760
858
|
/**
|
|
761
859
|
* Check if a name follows a specific convention
|
|
@@ -791,37 +889,41 @@ function checkNamingConvention(
|
|
|
791
889
|
}
|
|
792
890
|
|
|
793
891
|
/**
|
|
794
|
-
*
|
|
795
|
-
|
|
892
|
+
* A<span class="missing-if-branch" title="if path not taken" >I</span>dvanced variable naming checks<span class="cstat-no" title="statement not covered" ><span class="branch-1 cbranch-no" title="branch not covered" ></span></span>
|
|
893
|
+
*/<span class="cstat-no" title="statement not covered" ><span class="branch-1 cbranch-no" title="branch not covered" ><span class="missing-if-branch" title="if path not taken" >I</span></span></span>
|
|
796
894
|
function checkVariableNaming(
|
|
797
895
|
varInfo: any,
|
|
798
|
-
|
|
799
|
-
is<span class="missing-if-branch" title="if path not taken" >I</span>sues: NamingIssue[
|
|
896
|
+
file: string,
|
|
897
|
+
is<span class="missing-if-branch" title="if path not taken" >I</span>sues: NamingIssue[<span class="cstat-no" title="statement not covered" >],</span>
|
|
800
898
|
context: any
|
|
801
899
|
) {
|
|
802
|
-
const { name,
|
|
803
|
-
<span class="
|
|
900
|
+
const { name, line, options } = varInfo;
|
|
901
|
+
<span class="branch-0 cbranch-no" title="branch not covered" ></span>
|
|
804
902
|
// Skip very common small names if they are in acceptable context
|
|
805
903
|
if (isAcceptableInContext(name, context, options)) {
|
|
806
904
|
return;
|
|
807
|
-
}
|
|
905
|
+
}
|
|
808
906
|
|
|
809
907
|
// 1. Single letter names
|
|
810
|
-
if (
|
|
908
|
+
if (
|
|
909
|
+
name.length === 1 &&
|
|
910
|
+
!options.isLoopVariable &&
|
|
911
|
+
<span class="branch-2 cbranch-no" title="branch not covered" > !options.isArrowParameter</span>
|
|
912
|
+
) {
|
|
811
913
|
const severity = adjustSeverity(Severity.Minor, context, 'poor-naming');
|
|
812
914
|
issues.push({
|
|
813
915
|
file,
|
|
814
916
|
line,
|
|
815
|
-
type: 'poor-naming',
|
|
816
|
-
|
|
917
|
+
<span class="missing-if-branch" title="if path not taken" >I</span>type: 'poor-naming',
|
|
918
|
+
id<span class="cstat-no" title="statement not covered" >entifier: name,</span>
|
|
817
919
|
severity,
|
|
818
920
|
suggestion: 'Use a more descriptive name than a single letter',
|
|
819
921
|
});
|
|
820
922
|
}
|
|
821
923
|
|
|
822
924
|
// 2. Vague names
|
|
823
|
-
|
|
824
|
-
'
|
|
925
|
+
const vagueNames = [
|
|
926
|
+
'data',
|
|
825
927
|
'info',
|
|
826
928
|
'item',
|
|
827
929
|
'obj',
|
|
@@ -844,42 +946,71 @@ function checkVariableNaming(
|
|
|
844
946
|
}
|
|
845
947
|
|
|
846
948
|
// 3. Abbreviations
|
|
847
|
-
if (
|
|
848
|
-
name.length > 1 &&
|
|
849
|
-
|
|
850
|
-
<span class="branch-2 cbranch-no" title="branch not covered" > !options.
|
|
851
|
-
<span class="branch-3 cbranch-no" title="branch not covered" > !
|
|
949
|
+
<span class="cstat-no" title="statement not covered" > if (</span>
|
|
950
|
+
<span class="missing-if-branch" title="else path not taken" >E</span>name.length > 1 &&
|
|
951
|
+
<span class="branch-1 cbranch-no" title="branch not covered" > na<span class="missing-if-branch" title="if path not taken" >I</span>me.length <= 3 &&</span>
|
|
952
|
+
<span class="branch-2 cbranch-no" title="branch not covered" > !options.isLoopVariabl<span class="cstat-no" title="statement not covered" >e &&<span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" ></span></span></span></span>
|
|
953
|
+
<span class="branch-3 cbranch-no" title="branch not covered" > !isC<span class="cstat-no" title="statement not covered" >ommonAbbreviation(name)</span></span>
|
|
852
954
|
) {
|
|
853
|
-
const severity = adjustSeverity(Severity.Info, context, 'abbreviation')
|
|
955
|
+
const <span class="cstat-no" title="statement not covered" >severity = adjustSeverity(Severity.Info, context, 'abbreviation');</span>
|
|
854
956
|
issues.push({
|
|
855
957
|
file,
|
|
856
|
-
|
|
857
|
-
|
|
858
|
-
identifier: name
|
|
859
|
-
|
|
958
|
+
line,
|
|
959
|
+
type: 'abbreviation',
|
|
960
|
+
identifier: name,
|
|
961
|
+
severity,
|
|
860
962
|
suggestion: 'Avoid non-standard abbreviations',
|
|
861
963
|
});
|
|
862
964
|
}
|
|
863
965
|
}
|
|
864
|
-
|
|
966
|
+
<span class="missing-if-branch" title="else path not taken" >E</span>
|
|
865
967
|
function isCommonAbbreviation(name: string): boolean {
|
|
866
|
-
const common =
|
|
968
|
+
const common = [
|
|
867
969
|
'id',
|
|
868
970
|
'db',
|
|
869
|
-
'fs'
|
|
971
|
+
'fs',<span class="cstat-no" title="statement not covered" ><span class="missing-if-branch" title="if path not taken" >I</span></span>
|
|
870
972
|
'os',
|
|
871
973
|
'ip',
|
|
872
|
-
|
|
974
|
+
'ui',
|
|
873
975
|
'ux',
|
|
874
|
-
'api'
|
|
976
|
+
'api',<span class="cstat-no" title="statement not covered" ><span class="missing-if-branch" title="if path not taken" >I</span></span>
|
|
875
977
|
'env',
|
|
876
978
|
'url',
|
|
877
|
-
|
|
979
|
+
'req',
|
|
980
|
+
'res',
|
|
981
|
+
'err',
|
|
982
|
+
'ctx',
|
|
983
|
+
'cb',
|
|
984
|
+
'idx',
|
|
985
|
+
'src',
|
|
986
|
+
'dir',
|
|
987
|
+
'app',
|
|
988
|
+
'dev',
|
|
989
|
+
'qa',
|
|
990
|
+
'dto',
|
|
991
|
+
'dao',
|
|
992
|
+
'ref',
|
|
993
|
+
'ast',
|
|
994
|
+
'dom',
|
|
995
|
+
'log',
|
|
996
|
+
'msg',
|
|
997
|
+
'pkg',
|
|
998
|
+
'req',
|
|
999
|
+
'err',
|
|
1000
|
+
'res',
|
|
1001
|
+
'css',
|
|
1002
|
+
'html',
|
|
1003
|
+
'xml',
|
|
1004
|
+
'jsx',
|
|
1005
|
+
'tsx',
|
|
1006
|
+
'ts',
|
|
1007
|
+
'js',
|
|
1008
|
+
];
|
|
878
1009
|
return common.includes(name.toLowerCase());
|
|
879
1010
|
}
|
|
880
1011
|
|
|
881
1012
|
/**
|
|
882
|
-
* Simple
|
|
1013
|
+
* Simple scope-aware variable tracker
|
|
883
1014
|
*/
|
|
884
1015
|
class ScopeTracker {
|
|
885
1016
|
private variables: any[] = [];
|
|
@@ -898,21 +1029,30 @@ class ScopeTracker {
|
|
|
898
1029
|
}
|
|
899
1030
|
}
|
|
900
1031
|
|
|
1032
|
+
/**
|
|
1033
|
+
* Extracts identifiers from destructured patterns (object or array destructuring)
|
|
1034
|
+
* and registers them in the scope tracker.
|
|
1035
|
+
* @param node - The AST node representing the destructured pattern
|
|
1036
|
+
* @param isParameter - When true, indicates the destructured variable is a function parameter; when false, it's a local variable
|
|
1037
|
+
* @param scopeTracker - The scope tracker to register variables with
|
|
1038
|
+
*/
|
|
901
1039
|
function <span class="fstat-no" title="function not covered" >extractDestructuredIdentifiers(</span>
|
|
902
1040
|
node: TSESTree.ObjectPattern | TSESTree.ArrayPattern,
|
|
903
1041
|
isParameter: boolean,
|
|
904
|
-
scopeTracker: ScopeTracker
|
|
1042
|
+
scopeTracker: ScopeTracker,
|
|
1043
|
+
isArrowParameter: boolean = false
|
|
905
1044
|
) {
|
|
906
1045
|
<span class="cstat-no" title="statement not covered" > if (node.type === 'ObjectPattern') {</span>
|
|
907
|
-
|
|
908
|
-
|
|
1046
|
+
node.properties.forEach((prop) => {
|
|
1047
|
+
if (prop.type === 'Property' && prop.value.type === 'Identifier') {
|
|
909
1048
|
scopeTracker.declareVariable(
|
|
910
1049
|
prop.value.name,
|
|
911
|
-
|
|
1050
|
+
<span class="missing-if-branch" title="else path not taken" >E</span> prop.value,
|
|
912
1051
|
getLineNumber(prop.value),
|
|
913
|
-
|
|
1052
|
+
<span class="missing-if-branch" title="else path not taken" >E</span> {
|
|
914
1053
|
isParameter,
|
|
915
1054
|
isDestructured: true,
|
|
1055
|
+
isArrowParameter,
|
|
916
1056
|
}
|
|
917
1057
|
);
|
|
918
1058
|
}
|
|
@@ -927,6 +1067,7 @@ function <span class="fstat-no" title="function not covered" >extractDestructure
|
|
|
927
1067
|
{
|
|
928
1068
|
isParameter,
|
|
929
1069
|
isDestructured: true,
|
|
1070
|
+
isArrowParameter,
|
|
930
1071
|
}
|
|
931
1072
|
);
|
|
932
1073
|
}
|
|
@@ -940,7 +1081,7 @@ function <span class="fstat-no" title="function not covered" >extractDestructure
|
|
|
940
1081
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
941
1082
|
Code coverage generated by
|
|
942
1083
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
943
|
-
at 2026-03-
|
|
1084
|
+
at 2026-03-21T12:56:00.785Z
|
|
944
1085
|
</div>
|
|
945
1086
|
<script src="../../prettify.js"></script>
|
|
946
1087
|
<script>
|