module.exports = { root: true, env: { browser: true, es2020: true }, extends: [ "eslint:recommended", "plugin:@typescript-eslint/recommended", "plugin:@typescript-eslint/stylistic", "plugin:react-hooks/recommended", "plugin:react/recommended", "plugin:react/jsx-runtime", "plugin:import/recommended", "prettier", ], ignorePatterns: ["dist", ".eslintrc.cjs", "tailwind.config.js", "postcss.config.js"], parser: "@typescript-eslint/parser", plugins: ["react-refresh"], parserOptions: { ecmaVersion: "latest", sourceType: "module", project: ["./tsconfig.json", "./tsconfig.node.json"], tsconfigRootDir: __dirname, }, rules: { "react-refresh/only-export-components": ["warn", { allowConstantExport: true }], "import/order": [ "error", { /** * @description * * This keeps imports separate from one another, ensuring that imports are separated * by their relative groups. As you move through the groups, imports become closer * to the current file. * * @example * ``` * import fs from 'fs'; * * import package from 'npm-package'; * * import xyz from '~/project-file'; * * import index from '../'; * * import sibling from './foo'; * ``` */ groups: ["builtin", "external", "internal", "parent", "sibling"], "newlines-between": "always", }, ], }, settings: { "import/resolver": { alias: { map: [ ["@components", "./src/components"], ["@routes", "./src/routes"], ["@assets", "./src/assets"], ["@", "./src"], ], extensions: [".ts", ".tsx", ".js", ".jsx", ".json"], }, }, }, };