The project uses a flat configuration format via eslint.config.ts. It targets JavaScript and TypeScript files within the src/ and scripts/ directories.
Key configuration details:
- Supported File Patterns:
src/**/*.{js,mjs,cjs,ts,mts,cts,jsx,tsx} and scripts/**/*.{js,mjs,cjs,ts,mts,cts,jsx,tsx}. - Plugins & Extends: Uses
@eslint/js (recommended), typescript-eslint (recommended), and @eslint-react/eslint-plugin (recommended-typescript). - Language Options:
- Globals: Includes
globals.browser and process (readonly). - Parser:
tseslint.parser. - Parser Options: Uses
projectService: true and sets tsconfigRootDir to the current directory.
- Ignored Directories:
build/**, dist/**, eslint.config.ts, prettier.config.mjs, stylelint.config.mjs, rsbuild.config.ts, rstest.config.ts, and rstest.setup.ts.
import globals from "globals";
import tseslint from "typescript-eslint";
import { defineConfig } from "eslint/config";
import eslintReact from "@eslint-react/eslint-plugin";
import eslintJs from "@eslint/js";
export default defineConfig([
{
ignores: [
"build/**",
"dist/**",
"eslint.config.ts",
"prettier.config.mjs",
"stylelint.config.mjs",
"rsbuild.config.ts",
"rstest.config.ts",
"rstest.setup.ts",
],
},
{
files: ["src/**/*.{js,mjs,cjs,ts,mts,cts,jsx,tsx}", "scripts/**/*.{js,mjs,cjs,ts,mts,cts,jsx,tsx}"],
plugins: { eslintJs },
extends: [
eslintJs.configs.recommended,
tseslint.configs.recommended,
eslintReact.configs["recommended-typescript"],
],
languageOptions: {
globals: { ...globals.browser, process: "readonly" },
parser: tseslint.parser,
parserOptions: {
projectService: true,
tsconfigRootDir: import.meta.dirname,
},
},
rules: {
"@typescript-eslint/no-unused-vars": "warn",
"@eslint-react/no-missing-key": "warn",
"no-useless-assignment": "warn",
},
},
]);