Skip to content

Eslint plugin for sorting typescript types, interfaces and arrow function object props

Notifications You must be signed in to change notification settings

DanielDanielsson/eslint-plugin-typescript-sort

Repository files navigation

eslint-plugin-typescript-sort

Streamlines coding style consistency and code readability by sorting interfaces, types, string enums, and object parameters within arrow functions.

npm i --save-dev eslint-plugin-typescript-sort

Tip: Configure your IDE to auto-format code on save according to ESLint rules, reducing the need for manual sorting and enhancing your coding workflow. Here's a guide on how to do it in VSCode.

Supported Rules

Name Description Recommended Fixable
typescript-sort/interface Require interface keys to be sorted. 🔧
typescript-sort/type Require string type members to be sorted. 🔧
typescript-sort/enum Require string enum members to be sorted. 🔧
typescript-sort/arrowfunc-object-params Require objects inside arrow function parameters to be sorted. 🔧

Installation

You'll first need to install eslint, typescript and @typescript-eslint/parser

npm i --save-dev eslint typescript @typescript-eslint/parser

Then, install eslint-plugin-typescript-sort:

npm i --save-dev eslint-plugin-typescript-sort

Usage

Everything is configured in your .eslintrc configuration file

Specify the parser for typescript files:

{
  "parser": "@typescript-eslint/parser"
}

Option 1

Add typescript-sort to the plugins section. You can omit the eslint-plugin- part:

{
  "plugins": ["typescript-sort"]
}

Then configure the rules you want to use under the rules section:

{
  "rules": {
    "typescript-sort/interface": "error",
    "typescript-sort/type": "error",
    "typescript-sort/enum": "error"
    "typescript-sort/arrowfunc-object-params": "error"
  }
}

Option 2

Enable all rules with recommended config:

{
  "extends": ["plugin:typescript-sort/recommended"]
}

Rules options

To see custom options for each rules, see the rule's documentation page.

E.g. typescript-sort/interface has options for case sensitivity, natural order and required first.

{
  "typescript-sort/interface": [
    "error",
    "asc",
    { "caseSensitive": true, "natural": false, "requiredFirst": false }
  ]
}

Credits

Inspired by and sourced from eslint/sort-keys and infectr/eslint-plugin-typescript-sort-keys.

About

Eslint plugin for sorting typescript types, interfaces and arrow function object props

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published