{ "env": { "browser": true, "es2021": true }, "extends": [ "plugin:@typescript-eslint/recommended", "airbnb", "airbnb-typescript", "plugin:prettier/recommended", "next/core-web-vitals" ], "parser": "@typescript-eslint/parser", "parserOptions": { "ecmaFeatures": { "jsx": true }, "project": "tsconfig.json", "ecmaVersion": 12, "sourceType": "module" }, "ignorePatterns": [ "next.config.js" ], "plugins": [ "@html-eslint", "@typescript-eslint", "prettier" ], "overrides": [ { "files": ["*.html"], "parser": "@html-eslint/parser", "extends": ["plugin:@html-eslint/recommended"] } ], "rules": { "prettier/prettier": [ "error", { "singleQuote": true, "printWidth": 120, "endOfLine": "auto", "bracketSpacing": false } ], "semi": [ 2, "always" ], "quotes": [ 2, "single", { "avoidEscape": true } ], "react/button-has-type": "off", "react/jsx-no-useless-fragment": "off", "react/jsx-props-no-spreading": "off", "react/no-danger": "off", "react/require-default-props": "off", "import/prefer-default-export": "off", "no-console": "off", "no-param-reassign": "off", "no-plusplus": ["error", {"allowForLoopAfterthoughts": true}], "jsx-a11y/anchor-is-valid": "off", "jsx-a11y/control-has-associated-label": "off", "jsx-a11y/no-noninteractive-element-interactions": "off", "jsx-a11y/no-noninteractive-element-to-interactive-role": "off", "jsx-a11y/no-static-element-interactions": "off", "jsx-a11y/click-events-have-key-events": "off", "@next/next/no-img-element": "off", "@typescript-eslint/no-shadow": "off" } }