# eslint-plugin-sort-destructure-keys

> require object destructure key to be sorted

Latest version **3.0.0** (published 2026-02-16) · ISC license · 0 weekly downloads

## Install

```sh
npm install eslint-plugin-sort-destructure-keys
pnpm add eslint-plugin-sort-destructure-keys
yarn add eslint-plugin-sort-destructure-keys
bun add eslint-plugin-sort-destructure-keys
```

## Health

**Score 45/100 (D)** — status: stable.

Positive: no vulnerabilities.

Warnings: low downloads; no types; no esm support.

## Facts

| | |
|---|---|
| Version | 3.0.0 |
| Published | 2026-02-16 |
| First published | 2018-05-07 |
| Weekly downloads | 0 |
| License | ISC |
| TypeScript types | none |
| Module format | CommonJS |
| Node | >=18 |
| Dependencies | 1 |
| Unpacked size | 13.1 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 98 |
| Author | Michael Hadley |
| Maintainers | mthadley |
| Keywords | eslint, eslintplugin, eslint-plugin |

## Links

- npm: https://www.npmjs.com/package/eslint-plugin-sort-destructure-keys
- Repository: https://github.com/mthadley/eslint-plugin-sort-destructure-keys
- Homepage: https://github.com/mthadley/eslint-plugin-sort-destructure-keys#readme
- Issues: https://github.com/mthadley/eslint-plugin-sort-destructure-keys/issues
- npm.io page: https://npm.io/package/eslint-plugin-sort-destructure-keys

## Dependencies (1)

- [natural-compare-lite](https://npm.io/package/natural-compare-lite.md) ^1.4.0

## Alternatives

- [eslint-plugin-sonarjs](https://npm.io/package/eslint-plugin-sonarjs.md) — 2.9M weekly downloads
- [eslint-config-expo](https://npm.io/package/eslint-config-expo.md) — 1.5M weekly downloads
- [@matter/protocol](https://npm.io/package/@matter/protocol.md) — 63.5K weekly downloads
- [@eventcatalog/linter](https://npm.io/package/@eventcatalog/linter.md) — 24.8K weekly downloads
- [@inrupt/eslint-config-base](https://npm.io/package/@inrupt/eslint-config-base.md) — 4.5K weekly downloads

## Recent versions

- 3.0.0 (latest) — 2026-02-16
- 2.0.0 — 2024-04-24
- 1.6.0 — 2024-04-24
- 1.5.0 — 2023-02-16
- 1.4.0 — 2021-10-23
- 1.3.5 — 2020-06-19
- 1.3.4 — 2020-04-17
- 1.3.3 — 2019-08-12
- 1.3.2 — 2019-07-03
- 1.3.1 — 2019-06-29
- 1.3.0 — 2019-04-13
- 1.2.0 — 2019-02-21
- 1.1.0 — 2018-10-08
- 1.0.4 — 2018-05-08
- 1.0.3 — 2018-05-07
- … 3 more at https://npm.io/package/eslint-plugin-sort-destructure-keys/versions

## README

# eslint-plugin-sort-destructure-keys

require object destructure key to be sorted

## Installation

You'll first need to install [ESLint](http://eslint.org):

```
$ 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:

```json
{
  "plugins": ["sort-destructure-keys"]
}
```

Then configure the rule under the rules section.

```json
{
  "rules": {
    "sort-destructure-keys/sort-destructure-keys": 2
  }
}
```

## Rule Options

```json
{
  "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:

```js
let { B, a, c } = obj;
```

Example of **correct** code for the `{"caseSensitive": false}` option:

```js
let { a, B, c } = obj;
```

Example of **incorrect** code for the `{"caseSensitive": true}` option:

```js
let { a, B, c } = obj;
```

Example of **correct** code for the `{"caseSensitive": true}` option:

```js
let { B, a, c } = obj;
```

## Changelog

### `3.0.0`

- Add compatibility with ESLint 10. ([#322], by [risantos])
- Drop support for Node versions older than 20. ([#324])

[#322]: https://github.com/mthadley/eslint-plugin-sort-destructure-keys/pull/322
[#324]: https://github.com/mthadley/eslint-plugin-sort-destructure-keys/pull/324
[risantos]: https://github.com/risantos

### `2.0.0`

- Drop support for ESLint versions older than 5. ([#269])

[#269]: https://github.com/mthadley/eslint-plugin-sort-destructure-keys/pull/269

### `1.6.0`

- Add compatibility for ESLint 9. ([#267], by [ptb])

[#267]: https://github.com/mthadley/eslint-plugin-sort-destructure-keys/pull/267
[ptb]: https://github.com/ptb

### `1.5.0`

- Allow sorting properties with defaults when the default doesn't reference
  other properties ([#215], by [ianobermiller]).

[#215]: https://github.com/mthadley/eslint-plugin-sort-destructure-keys/pull/215
[ianobermiller]: https://github.com/ianobermiller

### `1.4.0`

- Add compatibility with eslint 8. ([#123])

[#123]: https://github.com/mthadley/eslint-plugin-sort-destructure-keys/pull/123

### `1.3.5`

- Add `^7.0.0` to eslint peer dependency. ([#53], by [dsernst])

[#53]: https://github.com/mthadley/eslint-plugin-sort-destructure-keys/pull/53
[dsernst]: https://github.com/dsernst

### `1.3.4`

- Fixes TypeError issue with multiple property expressions. ([#20])

[#20]: https://github.com/mthadley/eslint-plugin-sort-destructure-keys/issues/20

### `1.3.3`

- Add `6.0.0` to eslint peer dependency. ([#21], by [@7rulnik])

[#21]: https://github.com/mthadley/eslint-plugin-sort-destructure-keys/pull/21
[@7rulnik]: https://github.com/7rulnik

### `1.3.2`

- Fix bug where computed properties were causing the rule to throw errors. ([#15], thanks [@TSMMark]!)

[#15]: https://github.com/mthadley/eslint-plugin-sort-destructure-keys/issues/15
[@tsmmark]: https://github.com/TSMMark

### `1.3.1`

- Fix bug with rest properties being sorted incorrectly. ([#11], [#12], thanks [@briandastous] and [@njdancer]!)

[#11]: https://github.com/mthadley/eslint-plugin-sort-destructure-keys/issues/11
[@briandastous]: https://github.com/briandastous
[#12]: https://github.com/mthadley/eslint-plugin-sort-destructure-keys/pull/12
[@njdancer]: https://github.com/njdancer

### `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`

- Add `caseSensitive` option ([#1] by [@bsonntag])

[#1]: https://github.com/mthadley/eslint-plugin-sort-destructure-keys/pull/1
[@bsonntag]: https://github.com/bsonntag

---
_Source: https://npm.io/package/eslint-plugin-sort-destructure-keys · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
