{
  "root": true,
  "parser": "@typescript-eslint/parser",
  "plugins": [
    "@typescript-eslint"
  ],
  "extends": [
    "eslint:recommended",
    "plugin:@typescript-eslint/eslint-recommended",
    "plugin:@typescript-eslint/recommended"
  ],
  "rules": {
    "max-len": [
      "error",
      {
        "code": 120
      }
    ],
    "indent": [
      "error",
      2,
      {
        "SwitchCase": 1,
        "flatTernaryExpressions": false,
        "ignoreComments": false
      }
    ],
    "@typescript-eslint/naming-convention": "warn",
    "@typescript-eslint/semi": ["error", "never"],
    "@typescript-eslint/member-delimiter-style": ["error", {
      "multiline": {
        "delimiter": "none",    // 'none' or 'semi' or 'comma'
        "requireLast": true
      },
      "singleline": {
        "delimiter": "semi",    // 'semi' or 'comma'
        "requireLast": false
      }
    }],
    "comma-spacing": ["error", { "before": false, "after": true }],
    "curly": "warn",
    "eqeqeq": "warn",
    "no-throw-literal": "warn",
    "quotes": ["error", "single"],
    "semi": "off"
  }    
}