{
  "extends": ["eslint:recommended", "prettier"],
  "parserOptions": {
    "sourceType": "module",
    "ecmaFeatures": { "jsx": true }
  },
  "env": {
    "browser": true,
    "node": true,
    "es2020": true,
    "jest": true
  },
  "settings": {
    "react": { "version": "detect" }
  },
  "overrides": [
    {
      "files": ["**/*.ts", "**/*.tsx"],
      "parser": "@typescript-eslint/parser",
      "extends": [
        "plugin:@typescript-eslint/eslint-recommended",
        "plugin:@typescript-eslint/recommended",
        "plugin:jsx-a11y/recommended",
        "plugin:prettier/recommended",
        "plugin:react/recommended",
        "plugin:testing-library/dom",
        "plugin:testing-library/react"
      ],
      "plugins": ["@typescript-eslint", "react", "testing-library"],
      "rules": {
        "object-curly-spacing": ["error", "always"],
        "react/prop-types": "off",
        "@typescript-eslint/explicit-function-return-type": "off",
        "@typescript-eslint/no-explicit-any": "off",
        "testing-library/no-node-access": "off",
        "testing-library/no-container": "off"
      },
      "parserOptions": {
        "ecmaVersion": 2020,
        "sourceType": "module",
        "ecmaFeatures": {
          "jsx": true
        },
        "project": "./tsconfig.json",
        "tsconfigRootDir": "./"
      }
    }
  ]
}