{
  "plugins": ["prettier", "@typescript-eslint"],
  "extends": [
    "eslint:recommended",
    "eslint-config-airbnb-typescript-prettier",
    "prettier",
    "prettier/react",
    "plugin:react/jsx-runtime"
  ],
  "parserOptions": {
    "ecmaFeatures": {
      "jsx": true
    },
    "ecmaVersion": 2018,
    "sourceType": "module",
    "project": "./tsconfig.json"
  },
  "settings": {
    // "import/parsers": {
    //   "@typescript-eslint/parser": [".ts", ".tsx"]
    // },
    "import/resolver": {
      "typescript": {
        "alwaysTryTypes": true
      },
      "node": {
        "paths": ["src"],
        "extensions": [".js", ".jsx", ".ts", ".tsx"]
      }
    }
  },
  "rules": {
    "object-curly-spacing": ["warn", "always"],
    "react/require-default-props": "off",
    "no-unused-vars": "off",
    "@typescript-eslint/no-unused-vars": [
      "warn",
      {
        "vars": "all",
        "args": "none"
      }
    ],
    "max-len": [
      "warn",
      {
        "code": 120,
        "ignoreStrings": true,
        "ignoreTemplateLiterals": true,
        "ignoreComments": true
      }
    ],
    "no-plusplus": [
      "error",
      {
        "allowForLoopAfterthoughts": true
      }
    ],
    "react/jsx-key": "error",
    "import/no-extraneous-dependencies": [
      "error",
      {
        "devDependencies": [
          "**/*.test.js",
          "**/*.test.jsx",
          "**/*.test.ts",
          "**/*.test.tsx",
          "src/tests/**/*"
        ]
      }
    ],
    "@typescript-eslint/semi": "off",
    "@typescript-eslint/indent": "off",
    "react/jsx-indent": "off",
    "@typescript-eslint/no-explicit-any": "off",
    "no-console": "off",
    "react/jsx-props-no-spreading": "off",
    "import/prefer-default-export": "off",
    "react/jsx-boolean-value": "off",
    "react/prop-types": "off",
    "react/no-unescaped-entities": "off",
    "react/jsx-one-expression-per-line": "off",
    "react/jsx-wrap-multilines": "off",
    "react/destructuring-assignment": "off",
    "react/sort-comp": "off",
    "prefer-const": "off",
    "no-return-await": "off",
    "import/no-duplicates": "off",
    "import/no-cycle": "off",
    "lines-between-class-members": "off",
    "no-underscore-dangle": "off",
    "spaced-comment": "off",
    "no-shadow": "off",
    "no-else-return": "off",
    "react/jsx-curly-newline": "off",
    "eslint-disable-next-line": "off",
    "@typescript-eslint/quotes": "off",
    "max-classes-per-file": "off"
  }
}
