{
    "root": true,
    "env": {
        "node": true,
        "es6": true
    },
    "plugins": [
        "@typescript-eslint",
        "import"
    ],
    "parser": "@typescript-eslint/parser",
    "parserOptions": {
        "sourceType": "module",
        "ecmaVersion": 2020
    },
    "extends": [
        "eslint:recommended",
        "plugin:@typescript-eslint/recommended",
        "plugin:prettier/recommended",
        "plugin:import/typescript",
        "plugin:import/warnings",
        "plugin:import/errors"
    ],
    "rules": {
        "prettier/prettier": [
            "error",
            {
                "printWidth": 100,
                "tabWidth": 4,
                "semi": true,
                "singleQuote": false,
                "trailingComma": "es5",
                "bracketSpacing": true,
                "endOfLine": "auto",
                "useTabs": true
            }
        ],
        "@typescript-eslint/explicit-module-boundary-types": "off",
        "@typescript-eslint/no-non-null-assertion": "off",
        "@typescript-eslint/no-unused-vars": [
            "warn",
            {
                "argsIgnorePattern": "logger"
            }
        ],
        // breaks with baseUrl
        "import/no-unresolved": "off",
        "require-await": "warn",
        "no-await-in-loop": "warn",
        "no-unused-labels": "error",
        "prefer-const": "error",
        "no-console": "error",
        "eqeqeq": "error",
        "no-eval": "error",
        "no-var": "error",
        "no-new-object": "error",
        "quote-props": [
            "error",
            "as-needed"
        ],
        "no-array-constructor": "error",
        "prefer-template": "error",
        "prefer-promise-reject-errors": "error",
        "no-useless-escape": "error",
        "no-loop-func": "error",
        "prefer-rest-params": "error",
        "default-param-last": "error",
        "no-new-func": "error",
        "arrow-body-style": "error",
        "no-useless-constructor": "error",
        "no-duplicate-imports": "error",
        "dot-notation": "error",
        "space-before-blocks": "error",
        "no-prototype-builtins": "off",
        "prefer-arrow-callback": "error",
        "curly": "error",
        "no-template-curly-in-string": "error",
        "no-implied-eval": "error",
        "yoda": "error",
        "no-labels": "error",
        "no-useless-concat": "error",
        "radix": "error",
        "no-octal-escape": "error",
        "no-param-reassign": "error",
        "no-proto": "error",
        "no-return-await": "error",
        "no-throw-literal": "error",
        "no-unmodified-loop-condition": "error",
        "no-unused-expressions": "error",
        "no-useless-call": "error",
        "no-useless-return": "error",
        "require-unicode-regexp": "error"
    }
}