{
    "env": {
        "browser": true,
        "es6": true
    },
    "parser": "@typescript-eslint/parser",
    "parserOptions": {
        "ecmaVersion": 2018,
        "sourceType": "module"
    },
    "plugins": [
        "@typescript-eslint",
        "eslint-plugin-prettier",
        "import"
    ],
    "extends": [
        "eslint:recommended",
        "plugin:react/recommended",
        "plugin:@typescript-eslint/eslint-recommended",
        "plugin:@typescript-eslint/recommended",
        "prettier"
    ],
    "rules": {
        "prettier/prettier": 2,
        "@typescript-eslint/no-explicit-any": 0,
        "@typescript-eslint/no-namespace": 0,
        "@typescript-eslint/consistent-type-assertions": 0,
        "@typescript-eslint/no-inferrable-types": 0,
        "@typescript-eslint/no-non-null-assertion": 0,
        "@typescript-eslint/no-use-before-define": [2, "nofunc"],
        "@typescript-eslint/no-var-requires": 0,
        "@typescript-eslint/no-unused-vars": [2, { "argsIgnorePattern": "^_" }],
        "@typescript-eslint/ban-types": [
            "error",
            {
                "extendDefaults": true,
                "types": {
                    "{}": false,
                    "object": false,
                    "Function": false
                }
            }
        ],
        "arrow-parens": [2, "as-needed"],
        "no-inner-declarations": 0,
        "no-empty": 2,
        "no-multiple-empty-lines": [2, { "max": 1 }],
        "react/display-name": 0
    },
    "settings": {
        "react": {
            "version": "detect"
        },
        "import/resolver": {
            "alias": {
                "@": "src",
                "@components": "src/components",
                "@static": "src/static",
                "@style": "src/static/style",
                "@model": "src/static/model"
            }
        },
        "ignorePatterns": [
            "node_modules/",
            "build/",
            "**/*.js"
        ]
    }
}
