{
    "parser": "@typescript-eslint/parser",
    "plugins": [
        "@typescript-eslint"
    ],
    "extends": [
        // https://eslint.org/docs/rules/
        "eslint:recommended",
        // https://github.com/typescript-eslint/typescript-eslint/tree/master/packages/eslint-plugin
        "plugin:@typescript-eslint/recommended"
    ],
    "rules": {
        "@typescript-eslint/no-unused-vars": [
            "warn",
            {
                "argsIgnorePattern": "^_"
            }
        ],
        "@typescript-eslint/no-this-alias": [
            "off"
        ],
        "block-spacing": [
            "error",
            "always"
        ],
        "brace-style": [
            "error",
            "1tbs",
            {
                "allowSingleLine": true
            }
        ],
        "eol-last": [
            "error"
        ],
        "indent": [
            "error",
            4,
            {
                "SwitchCase": 1
            }
        ],
        "linebreak-style": [
            "error",
            "unix"
        ],
        "no-console": [
            "warn"
        ],
        "no-constant-condition": [
            "error",
            {
                "checkLoops": false
            }
        ],
        "no-trailing-spaces": [
            "error"
        ],
        "object-curly-spacing": [
            "error",
            "always"
        ],
        "quotes": [
            "error",
            "single"
        ],
        "semi": [
            "error",
            "always"
        ]
    },
    "env": {
        "browser": true,
        "commonjs": true,
        "es6": true,
        "node": true,
        "worker": true,
        "jest": true,
        "mocha": true
    },
    "parserOptions": {
        "ecmaVersion": 12,
        "sourceType": "module",
        "project": [
            "./apps/*/tsconfig.json",
            "./packages/*/tsconfig.json"
        ]
    },
    "ignorePatterns": [
        "jest-setup.js"
    ]
}