// @ts-check import eslint from "@eslint/js"; import tseslint from "typescript-eslint"; import react from "eslint-plugin-react"; import reactRefresh from "eslint-plugin-react-refresh"; export default tseslint.config( eslint.configs.recommended, ...tseslint.configs.recommendedTypeChecked, { languageOptions: { parserOptions: { project: ["./tsconfig.json", "./packages/*/tsconfig.json", "./packages/apps/*/tsconfig.json"], tsconfigRootDir: import.meta.dirname, allowAutomaticSingleRunInference: true, EXPERIMENTAL_useProjectService: true }, }, ignores: [ "eslint.config.js", "**/dist/**/*" ], plugins: { react, "react-refresh": reactRefresh, }, rules: { "quotes": "off", "@typescript-eslint/quotes": ["error", "double"], "no-unused-vars": "off", "@typescript-eslint/ban-types": "off", "indent": "off", "@typescript-eslint/indent": [ "error", "tab", { "SwitchCase": 1 } ], "@typescript-eslint/semi": "error", "no-var": "error", "prefer-const": "error", "object-curly-spacing": "off", "@typescript-eslint/object-curly-spacing": [ "warn", "always" ], "default-case": "off", "arrow-parens": "error", "space-infix-ops": "off", "@typescript-eslint/space-infix-ops": "warn", "react/no-multi-comp": [ "error", { "ignoreStateless": true } ], "comma-spacing": "off", "@typescript-eslint/comma-spacing": "warn", "@typescript-eslint/no-unused-vars": [ "warn", { "argsIgnorePattern": "^_" } ], "react-refresh/only-export-components": [ "warn", { "allowConstantExport": true } ], }, } );