13 points par haenah 2025-02-10 | Aucun commentaire pour le moment. | Partager sur WhatsApp

Comme la règle sort-keys d’eslint n’est pas auto-fixable, des plugins npm qui ajoutent chacun une fonctionnalité auto-fixable, comme eslint-plugin-sort-keys-fix ou eslint-plugin-sort-destructure-keys, sont très populaires avec respectivement plus de 330 000 et 190 000 téléchargements hebdomadaires. Mais ces deux plugins ont des problèmes.
Dans le cas de sort-keys-fix, comme il s’agit d’un fork d’eslint modifié pour effectuer les corrections en échangeant les nœuds de propriété (code), il a une complexité temporelle en O(N^2), ce qui rend les corrections lentes. Et pour sort-destructure-keys, il existe une partie lente car il y a beaucoup de calculs redondants pendant le processus de comparaison (code).
C’est pourquoi eslint-plugin-sort-properties a été créé pour résoudre ces problèmes, avec les principales fonctionnalités suivantes.

  1. Pour les corrections, utilisation de Array.prototype.sort, ce qui améliore la complexité temporelle. Environ 10 fois plus rapide que sort-keys-fix
  2. Temps d’application de la règle plus de 50 fois plus rapide que sort-destructure-keys
  3. Permet aussi de trier les type literals et interfaces TypeScript (nécessite d’indiquer le parser tseslint)
  4. Reprend de la règle jsx-sort-props d’eslint-plugin-react la fonctionnalité qui place les callbacks à la fin
  5. Peut être configuré pour déplacer aussi les commentaires avec leur propriété, en les traitant comme faisant partie de la propriété, afin d’éviter les cassures
    Pour la méthode de mesure des performances, une référence est disponible dans le benchmark.

Aucun commentaire pour le moment.

Aucun commentaire pour le moment.