useSortedEnumMembers (JavaScript)
Summary
Section titled “Summary”- Rule available since:
v2.5.0 - Diagnostic Category:
assist/source/useSortedEnumMembers - Sources:
- Inspired from
perfectionist/sort-enums - Inspired from
typescript-sort-keys/string-enum
- Inspired from
How to enable in your editor
Section titled “How to enable in your editor”{ "editor.codeActionsOnSave": { "source.action.useSortedEnumMembers.biome": "explicit", "source.fixAll.biome": "explicit" }}{ "code_actions_on_format": { "source.action.useSortedEnumMembers.biome": true, "source.fixAll.biome": true }}
Use the source action code
source.action.useSortedEnumMembers.biome How to configure
Section titled “How to configure”{ "assist": { "actions": { "source": { "useSortedEnumMembers": "on" } } }}Description
Section titled “Description”Sort the members of an enum in natural order.
Enforce a consistent natural sort order for TypeScript enum members with string initializers.
This rule sorts members in string enums so declarations stay predictable and easier to scan. Members that cannot be compared, such as computed names, are left in place and split the enum into sortable groups.
Members are sorted in a Natural order,
meaning that uppercase letters come before lowercase letters (e.g. A < a < B < b)
and numbers are compared to their numerical value (e.g. 9 < 10).
Examples
Section titled “Examples”Invalid
Section titled “Invalid”enum Status { InProgress = 'In Progress', Completed = 'Completed', OnHold = 'On Hold', Cancelled = 'Cancelled', NotStarted = 'Not Started',}code-block.ts ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
ℹ Source action diff:
1 1 │ enum Status {
2 │ - → InProgress·=·'In·Progress',
2 │ + → Cancelled·=·'Cancelled',
3 3 │ Completed = 'Completed',
4 │ - → OnHold·=·'On·Hold',
5 │ - → Cancelled·=·'Cancelled',
6 │ - → NotStarted·=·'Not·Started',
4 │ + → InProgress·=·'In·Progress',
5 │ + → NotStarted·=·'Not·Started',
6 │ + → OnHold·=·'On·Hold',
7 7 │ }
8 8 │
enum Status { Cancelled = 'Cancelled', Completed = 'Completed', InProgress = 'In Progress', NotStarted = 'Not Started', OnHold = 'On Hold',}Related links
Section titled “Related links”Copyright (c) 2023-present Biome Developers and Contributors.