Giới thiệu eslint-plugin-sort-properties có tốc độ sắp xếp key nhanh hơn các plugin hiện có
(npmjs.com)Do sort-keys rule của eslint không hỗ trợ auto-fix, nên trên npm các plugin bổ sung tính năng auto-fix như eslint-plugin-sort-keys-fix và eslint-plugin-sort-destructure-keys đều rất phổ biến, với số lượt tải hàng tuần lần lượt vượt 330 nghìn và 190 nghìn. Tuy nhiên, cả hai plugin này đều có vấn đề.
Với sort-keys-fix, do được fork từ eslint rồi chỉnh sửa theo cách hoán đổi tại các property node (mã), nên nó có độ phức tạp thời gian O(N^2) và mất khá nhiều thời gian để sửa. Còn với sort-destructure-keys, có đoạn bị chậm vì có nhiều phép tính trùng lặp trong quá trình so sánh (mã).
Vì vậy, tác giả đã tạo ra eslint-plugin-sort-properties để giải quyết các vấn đề này, với những tính năng chính như sau.
- Với fix, dùng
Array.prototype.sortđể cải thiện độ phức tạp thời gian; nhanh hơn khoảng 10 lần so vớisort-keys-fix - Thời gian áp dụng rule nhanh hơn hơn 50 lần so với sort-destructure-keys
- Có thể sắp xếp cả typescript type literal và interface (cần chỉ định tseslint parser)
- Mang vào tính năng đẩy callback xuống cuối từ rule jsx-sort-props của eslint-plugin-react
- Có thể cấu hình để comment cũng được coi là một phần của property và được di chuyển cùng vị trí, giúp tránh bị vỡ cấu trúc
Cách đo tốc độ có tài liệu tham khảo trong benchmark.
Chưa có bình luận nào.