From 42d82044917ce7390118e1523ab6407eb169a696 Mon Sep 17 00:00:00 2001 From: Jeff Date: Fri, 17 Jan 2025 11:40:14 -0700 Subject: [PATCH] Fix specifier sorting inserting semicolons --- .changeset/funny-jars-teach.md | 5 +++++ src/rules/order.ts | 1 + src/utils/make-fixes.ts | 3 ++- src/utils/types.ts | 1 + 4 files changed, 9 insertions(+), 1 deletion(-) create mode 100644 .changeset/funny-jars-teach.md diff --git a/.changeset/funny-jars-teach.md b/.changeset/funny-jars-teach.md new file mode 100644 index 0000000..8e93c05 --- /dev/null +++ b/.changeset/funny-jars-teach.md @@ -0,0 +1,5 @@ +--- +'eslint-plugin-import-sorting': patch +--- + +Fix semicolons being added to end of import specifiers after sorting diff --git a/src/rules/order.ts b/src/rules/order.ts index f29441a..728e8fc 100644 --- a/src/rules/order.ts +++ b/src/rules/order.ts @@ -83,6 +83,7 @@ export default createRule({ isEslintDisabled: isNodeEslintDisabled(node, eslintDisabledLines), name, node, + shouldAddSafetySemicolonWhenInline: true, size: rangeToDiff(node, sourceCode), }) } diff --git a/src/utils/make-fixes.ts b/src/utils/make-fixes.ts index ec47798..52120ab 100644 --- a/src/utils/make-fixes.ts +++ b/src/utils/make-fixes.ts @@ -25,7 +25,7 @@ export function makeFixes({ let sortingNode = nodes.at(index)! let sortedSortingNode = sortedNodes.at(index)! let { node } = sortingNode - let { node: sortedNode } = sortedSortingNode + let { shouldAddSafetySemicolonWhenInline, node: sortedNode } = sortedSortingNode let isNodeFirstNode = node === nodes.at(0)!.node let isSortedNodeFirstNode = sortedNode === nodes.at(0)!.node @@ -50,6 +50,7 @@ export function makeFixes({ let isNextTokenOnSameLineAsNode = nextToken?.loc.start.line === node.loc.end.line let isNextTokenSafeCharacter = nextToken?.value === ';' || nextToken?.value === ',' if ( + shouldAddSafetySemicolonWhenInline && isNextTokenOnSameLineAsNode && !willSortedNextNodeEndWithSafeCharacter && !isNextTokenSafeCharacter diff --git a/src/utils/types.ts b/src/utils/types.ts index cd1f969..c59fd2a 100644 --- a/src/utils/types.ts +++ b/src/utils/types.ts @@ -15,6 +15,7 @@ export interface SortingNode { group?: string isEslintDisabled: boolean hasMultipleImportDeclarations?: boolean + shouldAddSafetySemicolonWhenInline?: boolean } export interface MemberSortingNode extends SortingNode {