Skip to content

Commit 979ece8

Browse files
authoredNov 19, 2024··
fix(sort-modules): handle deprecated eslint enum attributes
1 parent db22e8b commit 979ece8

File tree

3 files changed

+12
-9
lines changed

3 files changed

+12
-9
lines changed
 

‎rules/sort-enums.ts

+2-3
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ import { hasPartitionComment } from '../utils/is-partition-comment'
2222
import { getCommentsBefore } from '../utils/get-comments-before'
2323
import { createEslintRule } from '../utils/create-eslint-rule'
2424
import { getLinesBetween } from '../utils/get-lines-between'
25+
import { getEnumMembers } from '../utils/get-enum-members'
2526
import { getSourceCode } from '../utils/get-source-code'
2627
import { toSingleLine } from '../utils/to-single-line'
2728
import { rangeToDiff } from '../utils/range-to-diff'
@@ -63,9 +64,7 @@ let defaultOptions: Required<Options[0]> = {
6364
export default createEslintRule<Options, MESSAGE_ID>({
6465
create: context => ({
6566
TSEnumDeclaration: node => {
66-
/* v8 ignore next 2 */
67-
// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
68-
let members = node.body.members ?? node.members ?? []
67+
let members = getEnumMembers(node)
6968
if (
7069
!isSortable(members) ||
7170
!members.every(({ initializer }) => initializer)

‎rules/sort-modules.ts

+3-6
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@ import { getCommentsBefore } from '../utils/get-comments-before'
4646
import { createEslintRule } from '../utils/create-eslint-rule'
4747
import { getLinesBetween } from '../utils/get-lines-between'
4848
import { getGroupNumber } from '../utils/get-group-number'
49+
import { getEnumMembers } from '../utils/get-enum-members'
4950
import { getSourceCode } from '../utils/get-source-code'
5051
import { toSingleLine } from '../utils/to-single-line'
5152
import { rangeToDiff } from '../utils/range-to-diff'
@@ -288,7 +289,7 @@ let analyzeModule = ({
288289
;({ name } = nodeToParse.id)
289290
dependencies = [
290291
...dependencies,
291-
...extractDependencies(nodeToParse.body),
292+
...getEnumMembers(nodeToParse).flatMap(extractDependencies),
292293
]
293294
break
294295
case AST_NODE_TYPES.ClassDeclaration:
@@ -483,7 +484,7 @@ let analyzeModule = ({
483484
}
484485

485486
let extractDependencies = (
486-
expression: TSESTree.TSEnumBody | TSESTree.ClassBody,
487+
expression: TSESTree.TSEnumMember | TSESTree.ClassBody,
487488
): string[] => {
488489
let dependencies: string[] = []
489490

@@ -569,10 +570,6 @@ let extractDependencies = (
569570
checkNode(nodeValue.right)
570571
}
571572

572-
if ('members' in nodeValue) {
573-
traverseNode(nodeValue.members)
574-
}
575-
576573
if ('initializer' in nodeValue && nodeValue.initializer) {
577574
checkNode(nodeValue.initializer)
578575
}

‎utils/get-enum-members.ts

+7
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
import type { TSESTree } from '@typescript-eslint/types'
2+
3+
export let getEnumMembers = (
4+
value: TSESTree.TSEnumDeclaration,
5+
/* v8 ignore next 2 */
6+
// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition -- Handle deprecated property
7+
): TSESTree.TSEnumMember[] => value.body?.members ?? value.members

0 commit comments

Comments
 (0)
Please sign in to comment.