{
  "root": true,
  "env": {
    "es6": true
  },
  "parser": "@typescript-eslint/parser",
  "parserOptions": {
    "project": ["./tsconfig.json", "./tsconfig.client.json"],
    "ecmaVersion": 2020,
    "sourceType": "module"
  },
  "plugins": ["@typescript-eslint", "unicorn"],
  "extends": [
    "eslint:recommended",
    "standard-with-typescript",
    "plugin:import/recommended",
    "plugin:import/typescript",
    "plugin:node/recommended",
    "plugin:promise/recommended",
    "plugin:unicorn/recommended",
    "plugin:@typescript-eslint/recommended"
  ],
  "rules": {
    "@typescript-eslint/member-delimiter-style": [
      "error",
      {
        "multiline": {
          "delimiter": "none"
        },
        "singleline": {
          "delimiter": "semi"
        }
      }
    ],
    "@typescript-eslint/no-extra-semi": "off",
    "@typescript-eslint/no-non-null-assertion": "off",
    "@typescript-eslint/no-misused-promises": "warn",
    "@typescript-eslint/restrict-plus-operands": "warn",
    "@typescript-eslint/space-before-function-paren": "off",
    "@typescript-eslint/strict-boolean-expressions": "warn",
    "node/no-missing-import": "off",
    "node/no-unpublished-import": "off",
    "unicorn/consistent-function-scoping": "warn",
    "unicorn/empty-brace-spaces": "off",
    "unicorn/filename-case": [
      "error",
      {
        "case": "camelCase",
        "ignore": ["DB", "URL"]
      }
    ],
    "unicorn/prevent-abbreviations": [
      "error",
      {
        "replacements": {
          "def": {
            "definition": true
          },
          "ele": {
            "element": true
          },
          "eles": {
            "elements": true
          },
          "fns": {
            "functions": true
          },
          "res": {
            "result": false
          }
        }
      }
    ]
  }
}
