{
    "env": {
        "browser": true,
        "es6": true
    },
    "extends": [
        "eslint:recommended",
        "plugin:@typescript-eslint/eslint-recommended"
    ],
    "globals": {
        "Atomics": "readonly",
        "SharedArrayBuffer": "readonly"
    },
    "parser": "@typescript-eslint/parser",
    "parserOptions": {
        "ecmaVersion": 2018,
        "sourceType": "module"
    },
    "plugins": [
        "@typescript-eslint",
        "jsdoc"
    ],
    "rules": {
        "no-multiple-empty-lines": ["error", { "max": 1 }],
        "import/named": "off",
        "strict": "off",
        "semi": "error",
        "indent": ["error", 4],
        // "func-call-spacing": ["error", "always"],
        "block-spacing": ["error", "always"],
        "keyword-spacing": ["error", { "before": true, "after": true }],
        "object-curly-spacing": ["error", "always", { "objectsInObjects": false }],
        "object-curly-newline": ["error", { "consistent": true }],
        "space-infix-ops": "error",
        "space-unary-ops": "error",
        "space-in-parens": "error",
        "jsdoc/require-description": "off"
    },
    "settings": {
        "import/resolver": {
          "node": {
            "extensions": [".js", ".ts"]
          }
        },
        "import/parsers": {
          "@typescript-eslint/parser": [".ts", ".js"]
        },
        "jsdoc": {
          "tagNamePreference": {
            "function": "method"
          }
      }
    }
}