import js from "@eslint/js"; import globals from "globals"; import reactHooks from "eslint-plugin-react-hooks"; import reactRefresh from "eslint-plugin-react-refresh"; import { defineConfig, globalIgnores } from "eslint/config"; import eslintPluginUnicorn from "eslint-plugin-unicorn"; import reactPlugin from "eslint-plugin-react"; import eslintPluginPrettierRecommended from "eslint-plugin-prettier/recommended"; import jsdoc from "eslint-plugin-jsdoc"; export default defineConfig([ globalIgnores(["dist"]), { files: ["**/*.{js,jsx}"], extends: [ js.configs.recommended, reactPlugin.configs.flat.recommended, reactPlugin.configs.flat["jsx-runtime"], reactHooks.configs.flat.recommended, reactRefresh.configs.vite, eslintPluginUnicorn.configs.recommended, eslintPluginPrettierRecommended, jsdoc.configs["flat/recommended-typescript-flavor-error"], ], languageOptions: { ecmaVersion: 2020, globals: globals.browser, parserOptions: { ecmaVersion: "latest", ecmaFeatures: { jsx: true }, sourceType: "module", }, }, settings: { react: { version: "detect" }, jsdoc: { mode: "typescript" }, }, rules: { "unicorn/filename-case": [ "error", { cases: { pascalCase: true, camelCase: true } }, ], "jsdoc/no-undefined-types": ["error"], "react/prop-types": 0, }, }, ]);