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 {