{ "env": { "browser": true, "commonjs": true, "es6": true, "node": true }, "extends": [ "airbnb", "eslint:recommended", "plugin:@typescript-eslint/recommended", "plugin:import/errors", "plugin:import/typescript", "plugin:import/warnings", "plugin:jsx-a11y/recommended", "plugin:react/recommended", "plugin:react-hooks/recommended", "prettier", "next/core-web-vitals" ], "plugins": [ "@typescript-eslint", "import", "jsx-a11y", "react", "react-hooks" ], "parser": "@typescript-eslint/parser", "parserOptions": { "ecmaFeatures": { "jsx": true }, "ecmaVersion": 2020, "sourceType": "module" }, "rules": { "complexity": ["error", 6], "import/extensions": [ "error", "ignorePackages", { "js": "never", "jsx": "never", "ts": "never", "tsx": "never" } ], "camelcase": "off", "no-param-reassign": ["error", { "props": false }], // Allow JSX in files with other extensions "react/jsx-filename-extension": [1, { "extensions": [".tsx"] }], // Use TypeScript's types for component props "react/prop-types": "off", // Importing React is not required in Next.js "react/react-in-jsx-scope": "off", "react/jsx-curly-newline": "off", "react/jsx-props-no-spreading": "off", "@next/next/no-img-element": "off", "@typescript-eslint/camelcase": "off" }, "settings": { "react": { "version": "detect" } } }