{
  "env": {
    "jest": true,
    "node": true
  },
  "plugins": [
    "@typescript-eslint",
    "import"
  ],
  "parser": "@typescript-eslint/parser",
  "parserOptions": {
    "ecmaVersion": 2018,
    "sourceType": "module"
  },
  "extends": [
    "plugin:import/typescript"
  ],
  "settings": {
    "import/parsers": {
      "@typescript-eslint/parser": [
        ".ts",
        ".tsx"
      ]
    },
    "import/resolver": {
      "node": {},
      "typescript": {
        "directory": "./tsconfig.json"
      }
    }
  },
  "ignorePatterns": [
    "*.js",
    "*.d.ts",
    "node_modules/",
    "*.generated.ts",
    "coverage"
  ],
  "rules": {
    "@typescript-eslint/no-require-imports": [
      "error"
    ],
    "indent": [
      "off"
    ],
    "@typescript-eslint/indent": [
      "error",
      2
    ],
    "quotes": [
      "error",
      "single",
      {
        "avoidEscape": true
      }
    ],
    "comma-dangle": [
      "error",
      "always-multiline"
    ],
    "quote-props": [
      "error",
      "consistent-as-needed",
      {
        "unnecessary": true
      }
    ],
    "import/no-extraneous-dependencies": [
      "error",
      {
        "devDependencies": [
          "**/build-tools/**",
          "**/test/**"
        ],
        "optionalDependencies": false,
        "peerDependencies": true
      }
    ],
    "import/no-unresolved": [
      "error"
    ]
  }
}