{
  "root": true,
  "env": {
    "es2021": true,
    "node": true,
    "browser": false
  },
  "extends": [
    "eslint:recommended",
    /** @see https://github.com/typescript-eslint/typescript-eslint/tree/master/packages/eslint-plugin#recommended-configs */
    "plugin:@typescript-eslint/recommended"
  ],
  "parser": "@typescript-eslint/parser",
  "parserOptions": {
    "ecmaVersion": 12,
    "sourceType": "module"
  },
  "plugins": [
    "@typescript-eslint"
  ],
  "ignorePatterns": [
    "types/env.d.ts",
    "node_modules/**",
    "**/dist/**"
  ],
  "rules": {
    "@typescript-eslint/no-unused-vars": "error",
    "@typescript-eslint/no-var-requires": "off",
    "@typescript-eslint/consistent-type-imports": "error",

  /**
   * Having a semicolon helps the optimizer interpret your code correctly.
   * This avoids rare errors in optimized code.
   * @see https://twitter.com/alex_kozack/status/1364210394328408066
   */
    "semi": [
      "error",
      "always"
    ],
    /**
     * This will make the history of changes in the hit a little cleaner
     */
    "comma-dangle": [
      "warn",
      "always-multiline"
    ],
    /**
     * Just for beauty
     */
    "quotes": [
      "warn", "single"
    ]
  }
}
