import js from "@eslint/js"; import globals from "globals"; import tseslint from "@typescript-eslint/eslint-plugin"; import tsparser from "@typescript-eslint/parser"; const eslintConfig = [ { ignores: [ "node_modules/**", ".next/**", "out/**", "build/**", "next-env.d.ts", ], }, js.configs.recommended, { files: ["**/*.{js,mjs,cjs}"], languageOptions: { ecmaVersion: "latest", sourceType: "module", globals: { ...globals.browser, ...globals.node, ...globals.es2021, }, }, rules: { "no-unused-vars": [ "error", { argsIgnorePattern: "^_", varsIgnorePattern: "^_", caughtErrorsIgnorePattern: "^_", ignoreRestSiblings: true, }, ], "no-console": "warn", "prefer-const": "error", "no-var": "error", }, }, { files: ["**/*.{ts,tsx}"], languageOptions: { parser: tsparser, ecmaVersion: "latest", sourceType: "module", globals: { ...globals.browser, ...globals.node, ...globals.es2021, React: "readonly", JSX: "readonly", }, parserOptions: { ecmaFeatures: { jsx: true, }, }, }, plugins: { "@typescript-eslint": tseslint, }, rules: { "no-unused-vars": "off", "@typescript-eslint/no-unused-vars": [ "error", { argsIgnorePattern: "^_", varsIgnorePattern: "^_", caughtErrorsIgnorePattern: "^_", ignoreRestSiblings: true, }, ], "@typescript-eslint/no-unused-expressions": "error", "@typescript-eslint/no-explicit-any": "warn", "no-console": "warn", }, }, ]; export default eslintConfig;