Shuunen/repo-checker

View on GitHub
.eslintrc.json

Summary

Maintainability
Test Coverage
{
  "$schema": "https://json.schemastore.org/eslintrc",
  "env": {
    "browser": true,
    "es6": true,
    "node": true
  },
  "extends": [
    "plugin:unicorn/all",
    "hardcore",
    "hardcore/ts"
  ],
  "overrides": [
    {
      "files": [
        "*.js"
      ],
      "rules": {
        "@typescript-eslint/explicit-function-return-type": "off",
        "@typescript-eslint/prefer-readonly-parameter-types": "off"
      }
    }
  ],
  "parserOptions": {
    "project": "tsconfig.json"
  },
  "rules": {
    "@stylistic/array-element-newline": "off",
    "@stylistic/arrow-parens": "off",
    "@stylistic/brace-style": "off",
    "@stylistic/comma-dangle": [
      "error",
      "always-multiline"
    ],
    "@stylistic/dot-location": "off",
    "@stylistic/function-call-argument-newline": "off",
    "@stylistic/indent": [
      "error",
      2
    ],
    "@stylistic/lines-around-comment": "off",
    "@stylistic/lines-between-class-members": "off",
    "@stylistic/max-len": "off",
    "@stylistic/member-delimiter-style": [
      "error",
      {
        "multiline": {
          "delimiter": "none"
        }
      }
    ],
    "@stylistic/multiline-comment-style": "off",
    "@stylistic/multiline-ternary": "off",
    "@stylistic/no-extra-parens": "off",
    "@stylistic/object-curly-spacing": [
      "error",
      "always"
    ],
    "@stylistic/object-property-newline": "off",
    "@stylistic/padded-blocks": "off",
    "@stylistic/padding-line-between-statements": "off",
    "@stylistic/quote-props": [
      "error",
      "consistent-as-needed"
    ],
    "@stylistic/quotes": [
      "error",
      "single"
    ],
    "@stylistic/semi": [
      "error",
      "never"
    ],
    "@typescript-eslint/comma-dangle": [
      "error",
      "always-multiline"
    ],
    "@typescript-eslint/consistent-indexed-object-style": "off",
    "@typescript-eslint/consistent-type-definitions": "off",
    "@typescript-eslint/consistent-type-imports": [
      "error",
      {
        "fixStyle": "inline-type-imports",
        "prefer": "type-imports"
      }
    ],
    "@typescript-eslint/explicit-function-return-type": "off",
    "@typescript-eslint/lines-around-comment": "off",
    "@typescript-eslint/member-delimiter-style": [
      "error",
      {
        "multiline": {
          "delimiter": "none"
        }
      }
    ],
    "@typescript-eslint/no-type-alias": "off",
    "@typescript-eslint/no-unused-vars": [
      "error",
      {
        "argsIgnorePattern": "^_",
        "varsIgnorePattern": "^(_|global)"
      }
    ],
    "@typescript-eslint/prefer-destructuring": "off",
    "@typescript-eslint/prefer-readonly-parameter-types": [
      "error",
      {
        "allow": [
          "Document",
          "DomContent",
          "Element",
          "Event",
          "HTMLElement",
          "Node",
          "Window"
        ],
        "ignoreInferredTypes": false
      }
    ],
    "@typescript-eslint/semi": [
      "error",
      "never"
    ],
    "capitalized-comments": "off",
    "comma-dangle": [
      "error",
      "always-multiline"
    ],
    "compat/compat": "off",
    "curly": [
      "error",
      "multi"
    ],
    "eslint-comments/no-use": "off",
    "etc/no-deprecated": "off",
    "etc/no-internal": "off",
    "etc/no-misused-generics": "off",
    "etc/prefer-interface": "off",
    "ext/lines-between-object-properties": "off",
    "func-names": [
      "error",
      "always"
    ],
    "id-length": [
      "error",
      {
        "exceptions": [
          "t"
        ],
        "min": 2
      }
    ],
    "import/extensions": "off",
    "import/newline-after-import": "off",
    "import/order": "off",
    "import/prefer-default-export": "off",
    "indent": "off",
    "line-comment-position": "off",
    "lines-around-comment": "off",
    "lines-between-class-members": "off",
    "logical-assignment-operators": "off",
    "max-len": "off",
    "max-statements-per-line": "off",
    "no-console": "error",
    "no-inline-comments": "off",
    "no-restricted-syntax": [
      "error",
      {
        "message": "Avoid using Class, just use good old unit-testable functions :)",
        "selector": "ClassDeclaration"
      },
      {
        "message": "Don't specify return type on function",
        "selector": "FunctionDeclaration[returnType]"
      },
      {
        "message": "Don't specify return type on function",
        "selector": "FunctionExpression[returnType]"
      }
    ],
    "object-curly-spacing": [
      "error",
      "always"
    ],
    "padding-line-between-statements": "off",
    "prefer-destructuring": "off",
    "prettier/prettier": "off",
    "putout/putout": "off",
    "quote-props": [
      "error",
      "consistent-as-needed"
    ],
    "quotes": "off",
    "regexp/require-unicode-sets-regexp": "off",
    "require-atomic-updates": [
      "error",
      {
        "allowProperties": true
      }
    ],
    "semi": [
      "error",
      "never"
    ],
    "simple-import-sort/imports": "off",
    "space-before-function-parent": "off",
    "total-functions/no-partial-division": "off",
    "total-functions/no-unsafe-readonly-mutable-assignment": "off",
    "typescript-compat/compat": "off",
    "unicorn/no-array-for-each": "off",
    "unicorn/no-process-exit": "off",
    "unicorn/prefer-module": "off",
    "unicorn/prefer-node-protocol": "off",
    "unicorn/prefer-spread": "off",
    "unicorn/prefer-string-replace-all": "off",
    "unicorn/prefer-switch": "off",
    "unicorn/prevent-abbreviations": [
      "error",
      {
        "allowList": {
          "args": true,
          "pkg": true,
          "str": true
        }
      }
    ]
  }
}