eslint के sort-keys rule के auto-fixable न होने की वजह से npm पर eslint-plugin-sort-keys-fix और eslint-plugin-sort-destructure-keys जैसे plugins, जो auto-fixable फीचर जोड़ते हैं, क्रमशः साप्ताहिक 3.3 लाख और 1.9 लाख से अधिक downloads के साथ काफ़ी लोकप्रिय हैं। लेकिन इन दोनों plugins में कुछ समस्याएँ हैं.
sort-keys-fix के मामले में, eslint को fork करके संशोधित करने के परिणामस्वरूप यह property node पर swap करने के तरीके से fix करता है (code), इसलिए इसकी time complexity O(N^2) हो जाती है और fix करने में काफ़ी समय लगता है। वहीं sort-destructure-keys में comparison प्रक्रिया के दौरान duplicate calculations ज़्यादा होती हैं (code), इसलिए इसमें भी समय ज़्यादा लगता है।
इसीलिए eslint-plugin-sort-properties बनाया गया, जो इन समस्याओं को हल करता है। इसके प्रमुख फीचर्स इस प्रकार हैं।
- fix के लिए
Array.prototype.sortका उपयोग कर time complexity में सुधार।sort-keys-fixसे लगभग 10 गुना तेज़ - rule लागू होने का समय
sort-destructure-keysसे 50 गुना से भी अधिक तेज़ - typescript type literal और interface को भी sort किया जा सकता है (tseslint parser को स्पष्ट रूप से निर्दिष्ट करना आवश्यक)
- eslint-plugin-react के jsx-sort-props rule में callback को पीछे भेजने वाला फीचर है, उसे भी इसमें शामिल किया गया है
- comments को भी property का हिस्सा मानकर उनकी position साथ में move की जा सकती है, ताकि टूट-फूट से बचाने के लिए इसे configure किया जा सके
स्पीड मापने के तरीके के लिए benchmark में reference उपलब्ध है.
अभी कोई टिप्पणी नहीं है.