Skip to content

useSortedEnumMembers (JavaScript)

.vscode/settings.json
{
"editor.codeActionsOnSave": {
"source.action.useSortedEnumMembers.biome": "explicit",
"source.fixAll.biome": "explicit"
}
}
biome.json
{
"assist": {
"actions": {
"source": {
"useSortedEnumMembers": "on"
}
}
}
}

Sort the members of a string-valued TypeScript enum.

The action uses natural order: uppercase letters come before lowercase letters (A before a), and numbers are compared by value (item9 before item10). This keeps enum declarations predictable and easy to scan.

A member with a computed name cannot be compared reliably. The action leaves that member in place and sorts the comparable members on each side independently.

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',
}