What is eslint-plugin-sort-destructure-keys?
The eslint-plugin-sort-destructure-keys package is an ESLint plugin that enforces consistent sorting of keys in object destructuring assignments. This helps maintain a clean and readable codebase by ensuring that destructured keys are always in a specified order.
What are eslint-plugin-sort-destructure-keys's main functionalities?
Sort keys in object destructuring
This feature enforces that keys in object destructuring assignments are sorted alphabetically. If the keys are not in the correct order, ESLint will throw an error.
/* eslint sort-destructure-keys/sort-destructure-keys: 'error' */
const { b, a, c } = obj; // This will cause an ESLint error
const { a, b, c } = obj; // This is the correct order
Custom sorting order
This feature allows you to define a custom order for the keys in object destructuring assignments. If the keys are not in the specified custom order, ESLint will throw an error.
/* eslint sort-destructure-keys/sort-destructure-keys: ['error', { customOrder: ['c', 'a', 'b'] }] */
const { b, a, c } = obj; // This will cause an ESLint error
const { c, a, b } = obj; // This is the correct order
Other packages similar to eslint-plugin-sort-destructure-keys
eslint-plugin-sort-keys
The eslint-plugin-sort-keys package enforces sorted keys in object literals. While it focuses on object literals rather than destructuring assignments, it serves a similar purpose of maintaining a consistent key order in your codebase.
eslint-plugin-import-order
The eslint-plugin-import-order package enforces a specific order for import statements. Although it deals with import statements rather than destructuring keys, it shares the goal of maintaining a consistent and readable code structure.
eslint-plugin-sort-destructure-keys
require object destructure key to be sorted
Installation
You'll first need to install ESLint:
$ npm i eslint --save-dev
Next, install eslint-plugin-sort-destructure-keys
:
$ npm install eslint-plugin-sort-destructure-keys --save-dev
Note: If you installed ESLint globally (using the -g
flag) then you must also install eslint-plugin-sort-destructure-keys
globally.
Usage
Add sort-destructure-keys
to the plugins section of your .eslintrc
configuration file. You can omit the eslint-plugin-
prefix:
{
"plugins": [
"sort-destructure-keys"
]
}
Then configure the rule under the rules section.
{
"rules": {
"sort-destructure-keys/sort-destructure-keys": 2
}
}
Rule Options
{
"sort-destructure-keys/sort-destructure-keys": [2, {"caseSensitive": false}]
}
caseSensitive
When true
the rule will enforce properties to be in case-sensitive order. Default is true
.
Example of incorrect code for the {"caseSensitive": false}
option:
let {B, a, c} = obj;
Example of correct code for the {"caseSensitive": false}
option:
let {a, B, c} = obj;
Example of incorrect code for the {"caseSensitive": true}
option:
let {a, B, c} = obj;
Example of correct code for the {"caseSensitive": true}
option:
let {B, a, c} = obj;
Changelog
1.4.0
- Add compatibility with eslint 8. (#123)
1.3.5
- Add
^7.0.0
to eslint peer dependency. (#53, by dsernst)
1.3.4
- Fixes TypeError issue with multiple property expressions (#20)
1.3.3
- Add
6.0.0
to eslint peer dependency. (#21, by @7rulnik)
1.3.2
- Fix bug where computed properties were causing the rule to throw errors. (#15, thanks @TSMMark!)
1.3.1
1.3.0
- Add support for
--fix
eslint cli flag
1.2.0
- Add peer dependency support for eslint
^5.0.0
1.1.0