{
    "env": {
        "browser": true,
        "node": true,
        "es2021": true
    },
    "extends": [ "eslint:recommended" ],
    "parser": "@typescript-eslint/parser",
    "parserOptions": {
        "ecmaVersion": "latest",
        "sourceType": "module"
    },
    "plugins": [ "@typescript-eslint", "node" ],
    "rules": {
        "indent": [ "error", "tab" ],
        "keyword-spacing": [ "error", { "overrides": { "if": { "after": false }, "for": { "after": false }, "while": { "after": false }, "catch": { "after": false }, "switch": { "after": false } } } ],
        "space-in-parens": [ "error", "always", { "exceptions": [ "empty" ] } ],
        "computed-property-spacing": [ "error", "always" ],
        "array-bracket-spacing": [ "error", "always" ],
        "object-curly-spacing": [ "error", "always" ],
        "arrow-spacing": [ "error", { "before": true, "after": true } ],
        "comma-spacing": [ "error", { "before": false, "after": true } ],
        "quotes": [ "error", "double", { "allowTemplateLiterals": true } ],
        "quote-props": [ "error", "consistent" ],
        "comma-dangle": [ "error", "always-multiline" ],
        "camelcase": [ "error", { "ignoreDestructuring": true, "properties": "never" } ],
        "brace-style": [ "error", "stroustrup", { "allowSingleLine": true } ],
        "no-unused-vars": "warn",
        "no-undef": "warn"
    }
}