44 lines
1.3 KiB
JavaScript
44 lines
1.3 KiB
JavaScript
import js from "@eslint/js"
|
|
import globals from "globals"
|
|
import reactHooks from "eslint-plugin-react-hooks"
|
|
import reactRefresh from "eslint-plugin-react-refresh"
|
|
import tseslint from "typescript-eslint"
|
|
import { defineConfig, globalIgnores } from "eslint/config"
|
|
|
|
import reactX from 'eslint-plugin-react-x'
|
|
import reactDom from 'eslint-plugin-react-dom'
|
|
|
|
export default defineConfig([
|
|
globalIgnores(["dist"]),
|
|
{
|
|
files: ["**/*.{ts,tsx}"],
|
|
extends: [
|
|
js.configs.recommended,
|
|
reactHooks.configs["recommended-latest"],
|
|
reactRefresh.configs.vite,
|
|
|
|
// Remove tseslint.configs.recommended and replace with this
|
|
tseslint.configs.recommendedTypeChecked,
|
|
|
|
// Alternatively, use this for stricter rules
|
|
// tseslint.configs.strictTypeChecked,
|
|
|
|
// Optionally, add this for stylistic rules
|
|
tseslint.configs.stylisticTypeChecked,
|
|
|
|
// Enable lint rules for React
|
|
reactX.configs['recommended-typescript'],
|
|
// Enable lint rules for React DOM
|
|
reactDom.configs.recommended,
|
|
],
|
|
languageOptions: {
|
|
parserOptions: {
|
|
project: ["./tsconfig.node.json", "./tsconfig.app.json"],
|
|
tsconfigRootDir: import.meta.dirname,
|
|
},
|
|
ecmaVersion: 2020,
|
|
globals: globals.browser,
|
|
},
|
|
},
|
|
])
|