import js from "@eslint/js"; import eslintConfigPrettier from "eslint-config-prettier"; import pluginReactHooks from "eslint-plugin-react-hooks"; import pluginReactRefresh from "eslint-plugin-react-refresh"; import globals from "globals"; import tseslint from "typescript-eslint"; export default tseslint.config( { ignores: [ "dist/**", "packages/*/dist/**", "build/**", "node_modules/**", "coverage/**", "src/router.ts", ], }, js.configs.recommended, ...tseslint.configs.recommended, eslintConfigPrettier, { files: ["packages/shared/src/**/*.ts", "packages/api/src/**/*.ts"], languageOptions: { ecmaVersion: "latest", sourceType: "module", globals: globals.node, parserOptions: { projectService: true, tsconfigRootDir: import.meta.dirname, }, }, rules: { "@typescript-eslint/no-unused-vars": ["error", { argsIgnorePattern: "^_" }], }, }, { files: ["src/**/*.{ts,tsx}", "vite.config.ts", "vitest.config.ts", "playwright.config.ts"], languageOptions: { ecmaVersion: "latest", sourceType: "module", globals: globals.browser, parserOptions: { projectService: true, tsconfigRootDir: import.meta.dirname, }, }, plugins: { "react-hooks": pluginReactHooks, "react-refresh": pluginReactRefresh, }, rules: { ...pluginReactHooks.configs.recommended.rules, "react-refresh/only-export-components": ["warn", { allowConstantExport: true }], "@typescript-eslint/no-unused-vars": ["error", { argsIgnorePattern: "^_" }], }, }, );