{
  "parser": "@typescript-eslint/parser",
  "parserOptions": {
    "sourceType": "module"
  },
  "plugins": ["jest-formatting", "jest", "@typescript-eslint/eslint-plugin"],
  "env": {
    "jest/globals": true
  },
  "extends": [
    "airbnb-base",
    "plugin:@typescript-eslint/recommended",
    "plugin:prettier/recommended",
    "plugin:jest-formatting/recommended",
    "plugin:import/typescript"
  ],
  "overrides": [
    {
      "files": ["**.*"],
      "rules": {
        "camelcase": "off",
        "no-plusplus": "off",
        "import/extensions": "off",
        "no-shadow": "off",
        "@typescript-eslint/no-shadow": "error"
      }
    }
  ],
  "settings": {
    "import/resolver": {
      "typescript": {
        "alwaysTryTypes": true // Without this `@types/estree` `estree` isn't actually in our node_modules.
      }
    }
  }
}
