เนื่องจาก sort-keys rule ของ eslint ไม่รองรับ auto-fix จึงมีปลั๊กอินบน npm ที่เพิ่มความสามารถแบบ auto-fix ได้และได้รับความนิยมสูง เช่น eslint-plugin-sort-keys-fix และ eslint-plugin-sort-destructure-keys ซึ่งมียอดดาวน์โหลดรายสัปดาห์เกิน 330,000 และ 190,000 ตามลำดับ แต่ปลั๊กอินทั้งสองตัวนี้ก็มีปัญหาอยู่
ในกรณีของ sort-keys-fix เนื่องจากเป็นการ fork มาจาก eslint แล้วแก้ไขโดยสลับที่ที่โหนด property(โค้ด) จึงมี time complexity ระดับ O(N^2) ทำให้ใช้เวลานานในการแก้ไข และในกรณีของ sort-destructure-keys ก็มีส่วนที่ใช้เวลานานเพราะมีการคำนวณซ้ำจำนวนมากในกระบวนการเปรียบเทียบ(โค้ด)
จึงได้สร้าง eslint-plugin-sort-properties ขึ้นมาเพื่อแก้ปัญหาเหล่านี้ โดยฟีเจอร์หลักมีดังนี้
- สำหรับการ fix ใช้
Array.prototype.sortจึงช่วยปรับปรุง time complexity และเร็วกว่าsort-keys-fixราว 10 เท่า - ใช้เวลาในการประมวลผล rule เร็วกว่า sort-destructure-keys มากกว่า 50 เท่า
- รองรับการจัดเรียงใน TypeScript type literal และ interface ด้วย (ต้องระบุ tseslint parser)
- นำความสามารถจากกฎ jsx-sort-props ของ eslint-plugin-react ที่ย้าย callback ไปไว้ด้านหลังมาใช้ด้วย
- สามารถตั้งค่าให้ย้ายคอมเมนต์ไปพร้อมกันในฐานะส่วนหนึ่งของ property เพื่อป้องกันไม่ให้โครงสร้างเสียหาย
สำหรับวิธีการวัดความเร็ว มีข้อมูลอ้างอิงอยู่ใน benchmark
ยังไม่มีความคิดเห็น