{
  "env": {
    "browser": true,
    "jest": true,
    "es6": true
  },
  "plugins": ["import"],
  "extends": ["eslint:recommended", "plugin:react/recommended", "prettier"],
  "parserOptions": {
    "ecmaVersion": 8,
    "sourceType": "module",
    "requireConfigFile": false
  },
  "parser": "@typescript-eslint/parser",
  "rules": {
    "react/prop-types": 0, // ignore because of TS, most props are compile-time
    "no-console": [
      "error",
      {
        "allow": ["debug", "error"]
      }
    ],
    "no-eval": "error",
    "import/first": "error",
    "camelcase": [
      "error",
      {
        "ignoreImports": true,
        "ignoreDestructuring": true
      }
    ],
    "consistent-return": "warn",
    "comma-dangle": ["warn", "always-multiline"],
    "constructor-super": "error",
    "curly": "error",
    "eol-last": "warn",
    "eqeqeq": ["error", "smart"],
    "import/order": 2,
    "new-parens": "error",
    "no-debugger": "error",
    "no-fallthrough": "off",
    "max-len": [
      "warn",
      {
        "code": 100
      }
    ],
    "no-shadow": [
      "error",
      {
        "hoist": "all"
      }
    ],
    "no-trailing-spaces": "warn",
    "no-underscore-dangle": "error",
    "no-unsafe-finally": "error",
    "no-var": "error",
    "object-shorthand": "error",
    "one-var": ["error", "never"],
    "prefer-arrow/prefer-arrow-functions": "off",
    "prefer-const": "error",
    "radix": "off",
    "space-in-parens": ["off", "never"]
  }
}
