Closed kachkaev closed 1 month ago
Prior art: https://github.com/kellyselden/eslint-plugin-json-files → json-files/sort-package-json
(by @kellyselden)
Thanks for the suggestion @kachkaev, this sounds like an interesting rule. My feeling is that such a rule would not fit well in the standard ESLint JSON plugin, because its usage is limited to Node.js. For reference, other built-in Node.js-specific rules like no-process-exit
were deprecated in ESLint v7 and replaced by equivalent rules in eslint-plugin-n
. To my knowledge, eslint-plugin-n
only supports JavaScript rules, although that could change in the future. So my recommendation is to leave this rule for a userland ESLint plugin for the time being as you suggested in the other discussion.
Any other thought about this suggestion @eslint/eslint-tsc? cc @eslint/eslint-community.
Just leaving this here but not really having much to add. This would need to be a bit careful as well since sorting can affect some keys like imports
and exports
etc.
This plugin is focused on generic JSON linting. As such, package.json
-specific rules are out of scope.
However, as with ESLint rules in general, you can always create your own plugin with any rule that you want.
Rule details
The rule would normalize
package.json
keys by following a convention in sort-package-json (or similar).What type of rule is this?
Suggests an alternate way of doing something
Example code
↓
Participation
Additional comments
I am using
sort-package-json
viaprettier-plugin-packagejson
and it works well. Automatic key sorting is especially useful in monorepos with lots ofpackage.json
files and contributors. The problem withprettier-plugin-packagejson
is that it goes outside the scope of Prettier:Now that ESLint supports JSON parsing, it’d be great to achieve the value of
sort-package-json
via a rule. Conceptually it is similar to sorting imports in JS files, so I believe that it fits the scope. WDYT?UPD Maybe this should be done elsewhere because the rule would be
package.json
specific. There is a discussion in https://github.com/keithamus/sort-package-json/issues/322.