import type { Linter } from "eslint"; // @ts-expect-error - no types available import importPlugin from "eslint-plugin-import"; import { sharedFiles } from "./shared"; export const importConfigArray: Linter.Config[] = [ { name: "eslint/import", files: sharedFiles, plugins: { import: importPlugin, }, rules: { ...importPlugin.configs.recommended.rules, ...importPlugin.configs.typescript.rules, "import/order": [ "error", { groups: [ "builtin", "external", "internal", ["parent", "sibling"], "index", "object", "type", ], "newlines-between": "always", alphabetize: { order: "asc", caseInsensitive: true, }, pathGroups: [ { pattern: "@/**", group: "internal", position: "before", }, ], pathGroupsExcludedImportTypes: ["builtin"], }, ], "import/no-unresolved": "off", // TypeScript handles this "import/no-duplicates": ["error", { "prefer-inline": true }], "import/consistent-type-specifier-style": ["error", "prefer-inline"], "import/first": "error", "import/newline-after-import": "error", "import/no-default-export": "off", // Allow default exports }, settings: { "import/resolver": { typescript: { alwaysTryTypes: true, }, node: true, }, "import/parsers": { "@typescript-eslint/parser": [".ts", ".tsx"], }, }, }, ];