{
  "env": {
    "browser": true,
    "node": true,
    "es6": true,
    "es2017": true
  },
  "overrides": [
    {
      "files": [
        "*.ts"
      ],
      "extends": [
        "eslint:recommended",
        "plugin:@typescript-eslint/eslint-recommended",
        "plugin:@typescript-eslint/recommended",
        "plugin:@typescript-eslint/recommended-requiring-type-checking",
        "prettier"
      ],
      "parser": "@typescript-eslint/parser",
      "parserOptions": {
        "ecmaVersion": 10,
        "project": [
          "./tsconfig.serve.json",
          "./src/tsconfig.app.json",
          "./src/tsconfig.spec.json",
          "./e2e/tsconfig.e2e.json"
        ],
        "sourceType": "module",
        "ecmaFeatures": {
          "modules": true
        }
      },
      "plugins": [
        "@typescript-eslint",
        "@angular-eslint/eslint-plugin"
      ],
      "rules": {
        "@typescript-eslint/indent": [
          "error",
          2,
          {
            "SwitchCase": 1,
            "CallExpression": {
              "arguments": "first"
            },
            "FunctionExpression": {
              "parameters": "first"
            },
            "FunctionDeclaration": {
              "parameters": "first"
            }
          }
        ],
        "@typescript-eslint/no-empty-function": 0,
        "@typescript-eslint/no-explicit-any": "off",
        "@typescript-eslint/no-var-requires": 0,
        "@typescript-eslint/no-unsafe-call": 0,
        "@typescript-eslint/no-unsafe-member-access": 0,
        "@typescript-eslint/no-unsafe-assignment": 0,
        "@typescript-eslint/no-unsafe-return": 0,
        "@typescript-eslint/explicit-member-accessibility": "error",
        "@typescript-eslint/no-floating-promises": "error",
        "@typescript-eslint/no-misused-promises": "error",
        "@angular-eslint/use-injectable-provided-in": "error",
        "@angular-eslint/no-attribute-decorator": "error",
        "no-var": "error"
      }
    },
    {
      "files": [
        "*.component.html"
      ],
      "parser": "@angular-eslint/template-parser",
      "plugins": [
        "@angular-eslint/template"
      ],
      "rules": {
        "@angular-eslint/template/banana-in-box": "error",
        "@angular-eslint/template/no-negated-async": "error"
      }
    }
  ]
}
