13 ポイント 投稿者 haenah 2025-02-10 | まだコメントはありません。 | WhatsAppで共有

eslint の sort-keys rule は auto-fixable ではないため、npm では eslint-plugin-sort-keys-fixeslint-plugin-sort-destructure-keys のように auto-fixable な機能を追加したプラグインが、それぞれ週間ダウンロード数 33 万、19 万を超える人気を集めています。ですが、この 2 つのプラグインには問題点があります。
sort-keys-fix の場合、eslint をフォークして修正した結果、property ノードでスワップする形で修正しているため(コード)、O(N^2) の時間計算量となり、修正に長い時間がかかります。そして sort-destructure-keys の場合は、比較処理で重複計算が多く(コード)、時間がかかる部分があります。
そこで eslint-plugin-sort-properties を作成してこれらの問題を解決しました。主な機能は以下のとおりです。

  1. fix では Array.prototype.sort を使うようにして時間計算量を改善。sort-keys-fix より約 10 倍高速
  2. sort-destructure-keys より rule 適用時間が 50 倍以上高速
  3. typescript の type literal、interface も並び替え可能にした(tseslint parser の明示が必要)
  4. eslint-plugin-react の jsx-sort-props ルールにある、コールバックを後ろに回す機能を取り入れた
  5. コメントも property の一部として位置を一緒に移動することで、崩れを防げるように設定可能
    速度測定方法については ベンチマーク にリファレンスがあります。

まだコメントはありません。

まだコメントはありません。