// { // "parser": "@typescript-eslint/parser", // "parserOptions": { // "project": "./tsconfig.json" // }, // "plugins": ["@typescript-eslint"], // "extends": [ // "airbnb-base", // "next/core-web-vitals", // "plugin:@typescript-eslint/recommended", // "plugin:tailwindcss/recommended", // "plugin:prettier/recommended", // "plugin:@tanstack/eslint-plugin-query/recommended" // ], // "rules": { // "@typescript-eslint/consistent-type-imports": "warn", // "@tanstack/query/exhaustive-deps": "error", // "@tanstack/query/prefer-query-object-syntax": "error" // }, // "overrides": [ // // Configuration for TypeScript files // { // "files": ["**/*.ts", "**/*.tsx"], // "plugins": ["@typescript-eslint", "unused-imports"], // "extends": [ // "airbnb-typescript", // "next/core-web-vitals", // "plugin:prettier/recommended" // ], // "parserOptions": { // "project": "./tsconfig.json" // }, // "rules": { // "prettier/prettier": ["error"], // "react/destructuring-assignment": "off", // Vscode doesn't support automatically destructuring, it's a pain to add a new variable // "jsx-a11y/anchor-is-valid": "off", // Next.js use his own internal link system // "react/require-default-props": "off", // Allow non-defined react props as undefined // "react/jsx-props-no-spreading": "off", // _app.tsx uses spread operator and also, react-hook-form // "@next/next/no-img-element": "off", // We currently not using next/image because it isn't supported with SSG mode // "@typescript-eslint/comma-dangle": "off", // Avoid conflict rule between Eslint and Prettier // "import/prefer-default-export": "off", // Named export is easier to refactor automatically // "class-methods-use-this": "off", // _document.tsx use render method without `this` keyword // "@typescript-eslint/no-unused-vars": "off", // "unused-imports/no-unused-imports": "error", // "unused-imports/no-unused-vars": [ // "error", // { "argsIgnorePattern": "^_" } // ], // "react-hooks/rules-of-hooks": "error", // "react-hooks/exhaustive-deps": "warn", // "react/react-in-jsx-scope": "off", // "import/no-unresolved": "off", // "import/extensions": "off", // "import/order": "error", // "import/first": "error", // "import/newline-after-import": "error", // "import/no-duplicates": "error", // "tailwindcss/no-custom-classname": "off", // "tailwindcss/classnames-order": "off", // "@typescript-eslint/no-non-null-asserted-optional-chain": "off" // } // } // ] // }