Skip to content

Incorrect fix for import-x/no-duplicates #449

@ocavue

Description

@ocavue

Reproduction: https://github.com/issueset/eslint-plugin-import-x-svelte-issue.git

$ git clone https://github.com/issueset/eslint-plugin-import-x-svelte-issue.git

$ cd eslint-plugin-import-x-svelte-issue

$ pnpm install

$ cat ./eslint.config.mjs
import js from "@eslint/js";
import { defineConfig } from "eslint/config";
import * as tseslint from 'typescript-eslint';
import { importX } from 'eslint-plugin-import-x';
const config = defineConfig([
  js.configs.recommended,
  tseslint.configs.recommended,
  importX.flatConfigs.recommended,
  importX.flatConfigs.typescript,
  {
    files: ['**/*.{js,mjs,cjs,jsx,mjsx,ts,tsx,mtsx}'],
    settings: {
      'import-x/resolver': {
        typescript: true
      }
    },
    rules: {
      'import-x/no-duplicates': ['warn', { 'prefer-inline': true }]
    },
  },
])
export default config

$ cat ./src/index.ts
import { onMount } from 'svelte'
import { readonly, writable, type Readable } from 'svelte/store'
export function f(r: Readable<number>) {
    return `${r} ${readonly} ${writable} ${onMount}`
}

$ pnpm run fix
> eslint --fix .

$ cat ./src/index.ts
import { onMount, readonly, writable, type Readable  } from 'svelte'
export function f(r: Readable<number>) {
    return `${r} ${readonly} ${writable} ${onMount}`
}

$

Notice that the svelte/store from src/index.ts was incorrectly removed after running eslint --fix.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions