{
    "extends": [
        "airbnb-base",
        "plugin:react/recommended",
        "plugin:@typescript-eslint/eslint-recommended",
        "plugin:@typescript-eslint/recommended"
    ],
    "env": {
        "browser": true,
        "jest": true
    },
    "plugins": [
        "react",
        "@typescript-eslint"
    ],
    "parser": "@typescript-eslint/parser",
    "parserOptions": {
        "jsx": true
    },
    "settings": {
        "import/resolver": {
            "node": {
                "extensions": [".js", ".jsx", ".ts", ".tsx"]
            }
        }
    },
    "rules": {
        "import/extensions": [
           "error",
           "ignorePackages",
           {
             "js": "never",
             "jsx": "never",
             "ts": "never",
             "tsx": "never"
           }
        ],
        "indent": [
            "error",
            4,
            {
                "SwitchCase": 1
            }
        ],
        "eqeqeq": [
            "error",
            "always",
            {
                "null": "ignore"
            }
        ],
        "object-curly-spacing": [
            "error",
            "never"
        ],
        "object-curly-newline": [
            "error",
            {
                "consistent": true
            }
        ],
        "no-use-before-define": [
            "error",
            {
                "functions": false
            }
        ],
        "max-len": [
            "error",
            {
                "code": 150,
                "ignoreStrings": true
            }
        ],
        "no-await-in-loop": "off",
        "no-restricted-syntax": "off",
        "no-plusplus": "off",
        "class-methods-use-this": "off",
        "react/prop-types": "off",
        "@typescript-eslint/explicit-module-boundary-types": "off",
        "@typescript-eslint/no-explicit-any": "off",
        "@typescript-eslint/ban-ts-comment": "off",
        "@typescript-eslint/ban-types": "off",
        "@typescript-eslint/no-non-null-assertion": "off"
    }
}