Skip to content

Latest commit

Β 

History

History
1322 lines (1266 loc) Β· 156 KB

README.md

File metadata and controls

1322 lines (1266 loc) Β· 156 KB

Canonical ESLint Config

Travis build status NPM version

The most comprehensive code style guide.

Canonical consists of 1,000+ rules, some of which are custom written for Canonical. Canonical goal is to reduce noise in code version control and promote use of the latest ES features.

Usage

This package includes the following configurations:

Example configuration

For maximum efficiency, use overrides to only apply relevant style guides. This reduces the linting time and the number of false-positives.

This is an example configuration of a React project using TypeScript and Jest:

{
  "extends": [
    "canonical"
  ],
  "overrides": [
    {
      "extends": [
        "canonical/typescript"
      ],
      "files": "*.ts",
      "parserOptions": {
        "project": "./tsconfig.json"
      }
    },
    {
      "extends": [
        "canonical/react",
        "canonical/jsx-a11y",
        "canonical/typescript"
      ],
      "files": "*.tsx",
      "parserOptions": {
        "project": "./tsconfig.json"
      }
    },
    {
      "extends": [
        "canonical/jest"
      ],
      "files": "*.test.{ts,tsx}",
      "parserOptions": {
        "project": "./tsconfig.json"
      }
    },
    {
      "extends": [
        "canonical/json"
      ],
      "files": "*.json"
    },
    {
      "extends": [
        "canonical/yaml"
      ],
      "files": "*.yaml"
    }
  ],
  "root": true
}

Compatibility with Prettier

For the most part, Prettier and Canonical are already compatible. There are only a few transformations that are incompatible, e.g. Prettier enforces line-length and Canonical does not. As such, there is no good reason to use both. However, if you just want to disable conflicting rules, you can use eslint-config-prettier to do that. Just add it as the last config in your extends configuration, e.g.

{
  "extends": [
    "canonical",
    "canonical/react",
    "canonical/typescript",
    "canonical/jest",
    "prettier"
  ]
}

This configuration disables all Canonical rules that conflict with Prettier.

Compatibility with other style guides

Since Canonical style guide includes more rules than any other style guide, you can have your codebase compatible with a specific style guide (e.g. airbnb) and benefit from Canonical for rules that are not covered by the other guide. All you have to do is extend from Canonical before extending from the desired style guide, e.g.

{
  "extends": [
    "canonical",
    "canonical/react",
    "airbnb"
  ]
}

Integrations

Visual Studio Code

Use the dbaeumer.vscode-eslint extension that Microsoft provides officially.

Example .vscode/settings.json:

{
  "eslint.validate": [
    "javascript",
    "javascriptreact",
    "json",
    "typescript",
    "typescriptreact",
    "yaml"
  ]
}

The setting below turns on Auto Fix for all providers including ESLint:

{
  "editor.codeActionsOnSave": {
    "source.fixAll": true
  },
  "editor.formatOnSave": true
}

TypeScript

If you are using TypeScript and experiencing performance issues, you should consider disabling TypeScript rules:

{
  "eslint.codeActionsOnSave.rules": [
    "!@typescript-eslint/*",
    "*"
  ]
}

This example removes all TypeScript ESLint specific rules from the code action on save pass but keeps all other rules.

Benchmark

Canonical vs Prettier

This benchmark compares running ESLint using Canonical style guide against a project with 3,000+ files VS linting the same project using Prettier.

System:
  OS: macOS 11.6
  CPU: (16) x64 Intel(R) Core(TM) i9-9980HK CPU @ 2.40GHz
  Memory: 64.00 GB
npmPackages:
  eslint: 8.1.0
  prettier: 2.4.1

As you may expect, Prettier is going to complete checks quicker – this is because it runs a lot fewer transforms and it only runs style checks (as opposed to static analyses).

The first time you run ESLint, it will take significantly more time. However, if you enable --cache, then the follow up checks will complete in no time.

$ time prettier src
27.06s user
1.74s system
166% cpu
17.335 total

$ eslint --cache src
182.43s user
9.13s system
126% cpu
2:31.22 total

$ eslint --cache src
1.96s user
0.39s system
107% cpu
2.188 total

Using ESLint cache will dramatically improve ESLint running time by ensuring that only changed files are linted. This is useful if you are using ESLint to run pre-commit / pre-push git hooks or otherwise depend on these checks completing in real-time.

Additionally, if performance is a consideration, you may consider:

These options provide near instant feedback just how you are used to when using Prettier.

Table of Comparison

This is how Canonical ruleset compares to other popular configurations.

Emojis:

  • 🚨 – error
  • ⚠️ - warning
  • ❌ - disabled
  • πŸ‘» - not in use
  • πŸ›  - fixable
  • ⛔️ – deprecated rule

Configurations:

  • CN – Canonical (1007 rules)
  • AB – Airbnb (446 rules)
  • GG – Google (65 rules)
  • SD – Standard (160 rules)
  • XO – XO (204 rules)
Rule CN AB GG SD XO
@babel/new-cap ❌ πŸ‘» πŸ‘» πŸ‘» πŸ‘»
@babel/no-invalid-this 🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
@babel/no-unused-expressions 🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
@babel/object-curly-spacing πŸ›  🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
@babel/semi πŸ›  🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
@typescript-eslint/adjacent-overload-signatures 🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
@typescript-eslint/array-type πŸ›  🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
@typescript-eslint/await-thenable 🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
@typescript-eslint/ban-ts-comment 🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
@typescript-eslint/ban-tslint-comment πŸ›  🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
@typescript-eslint/ban-types πŸ›  ❌ πŸ‘» πŸ‘» πŸ‘» πŸ‘»
@typescript-eslint/brace-style πŸ›  🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
@typescript-eslint/class-literal-property-style πŸ›  🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
@typescript-eslint/comma-dangle πŸ›  🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
@typescript-eslint/comma-spacing πŸ›  🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
@typescript-eslint/consistent-indexed-object-style πŸ›  ❌ πŸ‘» πŸ‘» πŸ‘» πŸ‘»
@typescript-eslint/consistent-type-assertions 🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
@typescript-eslint/consistent-type-definitions πŸ›  🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
@typescript-eslint/consistent-type-exports πŸ›  🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
@typescript-eslint/consistent-type-imports πŸ›  🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
@typescript-eslint/default-param-last 🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
@typescript-eslint/dot-notation πŸ›  🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
@typescript-eslint/explicit-function-return-type ❌ πŸ‘» πŸ‘» πŸ‘» πŸ‘»
@typescript-eslint/explicit-member-accessibility πŸ›  ❌ πŸ‘» πŸ‘» πŸ‘» πŸ‘»
@typescript-eslint/explicit-module-boundary-types ❌ πŸ‘» πŸ‘» πŸ‘» πŸ‘»
@typescript-eslint/func-call-spacing πŸ›  🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
@typescript-eslint/indent πŸ›  🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
@typescript-eslint/init-declarations ❌ πŸ‘» πŸ‘» πŸ‘» πŸ‘»
@typescript-eslint/keyword-spacing πŸ›  🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
@typescript-eslint/lines-between-class-members πŸ›  🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
@typescript-eslint/member-delimiter-style πŸ›  🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
@typescript-eslint/member-ordering ❌ πŸ‘» πŸ‘» πŸ‘» πŸ‘»
@typescript-eslint/method-signature-style πŸ›  🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
@typescript-eslint/naming-convention 🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
@typescript-eslint/no-array-constructor πŸ›  🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
@typescript-eslint/no-base-to-string 🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
@typescript-eslint/no-confusing-non-null-assertion πŸ›  🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
@typescript-eslint/no-confusing-void-expression πŸ›  🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
@typescript-eslint/no-dupe-class-members 🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
@typescript-eslint/no-duplicate-imports ❌ πŸ‘» πŸ‘» πŸ‘» πŸ‘»
@typescript-eslint/no-dynamic-delete πŸ›  🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
@typescript-eslint/no-empty-function ❌ πŸ‘» πŸ‘» πŸ‘» πŸ‘»
@typescript-eslint/no-empty-interface πŸ›  🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
@typescript-eslint/no-explicit-any πŸ›  🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
@typescript-eslint/no-extra-non-null-assertion πŸ›  🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
@typescript-eslint/no-extra-parens πŸ›  🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
@typescript-eslint/no-extra-semi πŸ›  🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
@typescript-eslint/no-extraneous-class 🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
@typescript-eslint/no-floating-promises 🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
@typescript-eslint/no-for-in-array 🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
@typescript-eslint/no-implicit-any-catch πŸ›  ⛔️ πŸ‘» πŸ‘» πŸ‘» πŸ‘» πŸ‘»
@typescript-eslint/no-implied-eval 🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
@typescript-eslint/no-inferrable-types πŸ›  🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
@typescript-eslint/no-invalid-this ❌ πŸ‘» πŸ‘» πŸ‘» πŸ‘»
@typescript-eslint/no-invalid-void-type 🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
@typescript-eslint/no-loop-func 🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
@typescript-eslint/no-loss-of-precision 🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
@typescript-eslint/no-magic-numbers ❌ πŸ‘» πŸ‘» πŸ‘» πŸ‘»
@typescript-eslint/no-meaningless-void-operator πŸ›  🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
@typescript-eslint/no-misused-new 🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
@typescript-eslint/no-misused-promises 🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
@typescript-eslint/no-namespace 🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
@typescript-eslint/no-non-null-asserted-nullish-coalescing 🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
@typescript-eslint/no-non-null-asserted-optional-chain 🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
@typescript-eslint/no-non-null-assertion 🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
@typescript-eslint/no-parameter-properties ❌ πŸ‘» πŸ‘» πŸ‘» πŸ‘»
@typescript-eslint/no-redeclare 🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
@typescript-eslint/no-require-imports 🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
@typescript-eslint/no-restricted-imports ❌ πŸ‘» πŸ‘» πŸ‘» πŸ‘»
@typescript-eslint/no-shadow 🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
@typescript-eslint/no-this-alias 🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
@typescript-eslint/no-throw-literal 🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
@typescript-eslint/no-type-alias ❌ πŸ‘» πŸ‘» πŸ‘» πŸ‘»
@typescript-eslint/no-unnecessary-boolean-literal-compare πŸ›  ❌ πŸ‘» πŸ‘» πŸ‘» πŸ‘»
@typescript-eslint/no-unnecessary-condition πŸ›  ❌ πŸ‘» πŸ‘» πŸ‘» πŸ‘»
@typescript-eslint/no-unnecessary-qualifier πŸ›  🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
@typescript-eslint/no-unnecessary-type-arguments πŸ›  ❌ πŸ‘» πŸ‘» πŸ‘» πŸ‘»
@typescript-eslint/no-unnecessary-type-assertion πŸ›  ❌ πŸ‘» πŸ‘» πŸ‘» πŸ‘»
@typescript-eslint/no-unnecessary-type-constraint πŸ›  🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
@typescript-eslint/no-unsafe-argument ❌ πŸ‘» πŸ‘» πŸ‘» πŸ‘»
@typescript-eslint/no-unsafe-assignment ❌ πŸ‘» πŸ‘» πŸ‘» πŸ‘»
@typescript-eslint/no-unsafe-call ❌ πŸ‘» πŸ‘» πŸ‘» πŸ‘»
@typescript-eslint/no-unsafe-member-access ❌ πŸ‘» πŸ‘» πŸ‘» πŸ‘»
@typescript-eslint/no-unsafe-return ❌ πŸ‘» πŸ‘» πŸ‘» πŸ‘»
@typescript-eslint/no-unused-expressions 🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
@typescript-eslint/no-unused-vars 🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
@typescript-eslint/no-use-before-define 🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
@typescript-eslint/no-useless-constructor 🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
@typescript-eslint/no-var-requires 🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
@typescript-eslint/non-nullable-type-assertion-style πŸ›  ❌ πŸ‘» πŸ‘» πŸ‘» πŸ‘»
@typescript-eslint/object-curly-spacing πŸ›  ❌ πŸ‘» πŸ‘» πŸ‘» πŸ‘»
@typescript-eslint/padding-line-between-statements πŸ›  🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
@typescript-eslint/prefer-as-const πŸ›  🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
@typescript-eslint/prefer-enum-initializers 🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
@typescript-eslint/prefer-for-of 🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
@typescript-eslint/prefer-function-type πŸ›  🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
@typescript-eslint/prefer-includes πŸ›  🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
@typescript-eslint/prefer-literal-enum-member 🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
@typescript-eslint/prefer-namespace-keyword πŸ›  🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
@typescript-eslint/prefer-nullish-coalescing 🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
@typescript-eslint/prefer-optional-chain 🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
@typescript-eslint/prefer-readonly πŸ›  🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
@typescript-eslint/prefer-readonly-parameter-types ❌ πŸ‘» πŸ‘» πŸ‘» πŸ‘»
@typescript-eslint/prefer-reduce-type-parameter πŸ›  🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
@typescript-eslint/prefer-regexp-exec πŸ›  🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
@typescript-eslint/prefer-return-this-type πŸ›  🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
@typescript-eslint/prefer-string-starts-ends-with πŸ›  🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
@typescript-eslint/prefer-ts-expect-error πŸ›  🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
@typescript-eslint/promise-function-async πŸ›  ❌ πŸ‘» πŸ‘» πŸ‘» πŸ‘»
@typescript-eslint/quotes πŸ›  🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
@typescript-eslint/require-array-sort-compare 🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
@typescript-eslint/require-await ❌ πŸ‘» πŸ‘» πŸ‘» πŸ‘»
@typescript-eslint/restrict-plus-operands ❌ πŸ‘» πŸ‘» πŸ‘» πŸ‘»
@typescript-eslint/restrict-template-expressions ❌ πŸ‘» πŸ‘» πŸ‘» πŸ‘»
@typescript-eslint/return-await πŸ›  🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
@typescript-eslint/semi πŸ›  🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
@typescript-eslint/sort-type-union-intersection-members πŸ›  🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
@typescript-eslint/space-before-function-paren πŸ›  🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
@typescript-eslint/space-infix-ops πŸ›  🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
@typescript-eslint/strict-boolean-expressions πŸ›  ❌ πŸ‘» πŸ‘» πŸ‘» πŸ‘»
@typescript-eslint/switch-exhaustiveness-check 🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
@typescript-eslint/triple-slash-reference 🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
@typescript-eslint/type-annotation-spacing πŸ›  🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
@typescript-eslint/typedef ❌ πŸ‘» πŸ‘» πŸ‘» πŸ‘»
@typescript-eslint/unbound-method 🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
@typescript-eslint/unified-signatures 🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
accessor-pairs 🚨 ❌ πŸ‘» 🚨 🚨
array-bracket-newline πŸ›  🚨 ❌ ❌ πŸ‘» 🚨
array-bracket-spacing πŸ›  🚨 🚨 🚨 🚨 🚨
array-callback-return 🚨 🚨 πŸ‘» 🚨 🚨
array-element-newline πŸ›  🚨 ❌ ❌ πŸ‘» 🚨
arrow-body-style πŸ›  🚨 🚨 πŸ‘» πŸ‘» 🚨
arrow-parens πŸ›  🚨 🚨 🚨 πŸ‘» 🚨
arrow-spacing πŸ›  🚨 🚨 πŸ‘» 🚨 🚨
ava/assertion-arguments πŸ›  🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
ava/hooks-order πŸ›  🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
ava/max-asserts 🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
ava/no-async-fn-without-await 🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
ava/no-duplicate-modifiers 🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
ava/no-identical-title 🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
ava/no-ignored-test-files 🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
ava/no-import-test-files ❌ πŸ‘» πŸ‘» πŸ‘» πŸ‘»
ava/no-incorrect-deep-equal πŸ›  🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
ava/no-inline-assertions πŸ›  🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
ava/no-nested-tests 🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
ava/no-only-test πŸ›  🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
ava/no-skip-assert 🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
ava/no-skip-test πŸ›  🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
ava/no-todo-implementation 🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
ava/no-todo-test 🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
ava/no-unknown-modifiers 🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
ava/prefer-async-await 🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
ava/prefer-power-assert ❌ πŸ‘» πŸ‘» πŸ‘» πŸ‘»
ava/prefer-t-regex πŸ›  🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
ava/test-title 🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
ava/test-title-format ❌ πŸ‘» πŸ‘» πŸ‘» πŸ‘»
ava/use-t 🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
ava/use-t-throws-async-well πŸ›  🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
ava/use-t-well πŸ›  🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
ava/use-test 🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
ava/use-true-false 🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
block-scoped-var 🚨 🚨 πŸ‘» πŸ‘» 🚨
block-spacing πŸ›  🚨 🚨 🚨 🚨 πŸ‘»
brace-style πŸ›  🚨 🚨 🚨 🚨 🚨
callback-return ⛔️ πŸ‘» ❌ πŸ‘» πŸ‘» πŸ‘»
camelcase ❌ 🚨 🚨 🚨 🚨
canonical/filename-match-exported 🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
canonical/filename-match-regex ⚠️ πŸ‘» πŸ‘» πŸ‘» πŸ‘»
canonical/filename-no-index ❌ πŸ‘» πŸ‘» πŸ‘» πŸ‘»
canonical/id-match 🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
canonical/no-restricted-strings ❌ πŸ‘» πŸ‘» πŸ‘» πŸ‘»
canonical/no-use-extend-native 🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
canonical/sort-keys πŸ›  🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
capitalized-comments πŸ›  ❌ ❌ πŸ‘» πŸ‘» 🚨
class-methods-use-this ❌ 🚨 πŸ‘» πŸ‘» πŸ‘»
comma-dangle πŸ›  🚨 🚨 🚨 🚨 🚨
comma-spacing πŸ›  🚨 🚨 🚨 🚨 🚨
comma-style πŸ›  🚨 🚨 🚨 🚨 🚨
complexity 🚨 ❌ πŸ‘» πŸ‘» ⚠️
computed-property-spacing πŸ›  🚨 🚨 🚨 🚨 🚨
consistent-return 🚨 🚨 πŸ‘» πŸ‘» πŸ‘»
consistent-this 🚨 ❌ πŸ‘» πŸ‘» πŸ‘»
constructor-super 🚨 🚨 🚨 🚨 🚨
curly πŸ›  🚨 🚨 🚨 🚨 🚨
default-case 🚨 🚨 πŸ‘» πŸ‘» 🚨
default-case-last 🚨 ❌ πŸ‘» 🚨 🚨
default-param-last 🚨 ❌ πŸ‘» πŸ‘» 🚨
dot-location πŸ›  🚨 🚨 πŸ‘» 🚨 🚨
dot-notation πŸ›  🚨 🚨 πŸ‘» 🚨 🚨
eol-last πŸ›  🚨 🚨 🚨 🚨 🚨
eqeqeq πŸ›  🚨 🚨 πŸ‘» 🚨 🚨
eslint-comments/disable-enable-pair 🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
eslint-comments/no-aggregating-enable 🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
eslint-comments/no-duplicate-disable 🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
eslint-comments/no-restricted-disable ❌ πŸ‘» πŸ‘» πŸ‘» πŸ‘»
eslint-comments/no-unlimited-disable 🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
eslint-comments/no-unused-disable 🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
eslint-comments/no-unused-enable 🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
eslint-comments/no-use ❌ πŸ‘» πŸ‘» πŸ‘» πŸ‘»
eslint-comments/require-description ❌ πŸ‘» πŸ‘» πŸ‘» πŸ‘»
flowtype/array-style-complex-type πŸ›  🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
flowtype/array-style-simple-type πŸ›  🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
flowtype/arrow-parens πŸ›  🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
flowtype/boolean-style πŸ›  🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
flowtype/define-flow-type 🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
flowtype/delimiter-dangle πŸ›  🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
flowtype/enforce-line-break πŸ›  🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
flowtype/generic-spacing πŸ›  🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
flowtype/interface-id-match ❌ πŸ‘» πŸ‘» πŸ‘» πŸ‘»
flowtype/newline-after-flow-annotation πŸ›  🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
flowtype/no-dupe-keys 🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
flowtype/no-duplicate-type-union-intersection-members πŸ›  🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
flowtype/no-existential-type ❌ πŸ‘» πŸ‘» πŸ‘» πŸ‘»
flowtype/no-flow-fix-me-comments 🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
flowtype/no-internal-flow-type 🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
flowtype/no-mixed 🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
flowtype/no-mutable-array πŸ›  🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
flowtype/no-primitive-constructor-types 🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
flowtype/no-types-missing-file-annotation 🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
flowtype/no-unused-expressions ❌ πŸ‘» πŸ‘» πŸ‘» πŸ‘»
flowtype/no-weak-types 🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
flowtype/object-type-curly-spacing πŸ›  ❌ πŸ‘» πŸ‘» πŸ‘» πŸ‘»
flowtype/object-type-delimiter πŸ›  🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
flowtype/quotes πŸ›  🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
flowtype/require-compound-type-alias ❌ πŸ‘» πŸ‘» πŸ‘» πŸ‘»
flowtype/require-exact-type πŸ›  🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
flowtype/require-indexer-name πŸ›  🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
flowtype/require-inexact-type 🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
flowtype/require-parameter-type ❌ πŸ‘» πŸ‘» πŸ‘» πŸ‘»
flowtype/require-readonly-react-props 🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
flowtype/require-return-type ❌ πŸ‘» πŸ‘» πŸ‘» πŸ‘»
flowtype/require-types-at-top 🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
flowtype/require-valid-file-annotation πŸ›  🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
flowtype/require-variable-type ❌ πŸ‘» πŸ‘» πŸ‘» πŸ‘»
flowtype/semi πŸ›  🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
flowtype/sort-keys πŸ›  ❌ πŸ‘» πŸ‘» πŸ‘» πŸ‘»
flowtype/sort-type-union-intersection-members πŸ›  🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
flowtype/space-after-type-colon πŸ›  🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
flowtype/space-before-generic-bracket πŸ›  🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
flowtype/space-before-type-colon πŸ›  🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
flowtype/spread-exact-type ❌ πŸ‘» πŸ‘» πŸ‘» πŸ‘»
flowtype/type-id-match 🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
flowtype/type-import-style πŸ›  🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
flowtype/union-intersection-spacing πŸ›  🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
flowtype/use-flow-type 🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
flowtype/use-read-only-spread 🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
flowtype/valid-syntax ⛔️ πŸ‘» πŸ‘» πŸ‘» πŸ‘» πŸ‘»
for-direction 🚨 🚨 πŸ‘» πŸ‘» 🚨
func-call-spacing πŸ›  🚨 🚨 🚨 🚨 🚨
func-name-matching 🚨 ❌ πŸ‘» πŸ‘» 🚨
func-names 🚨 ⚠️ πŸ‘» πŸ‘» 🚨
func-style 🚨 ❌ πŸ‘» πŸ‘» πŸ‘»
function-call-argument-newline πŸ›  🚨 ❌ πŸ‘» πŸ‘» 🚨
function-paren-newline πŸ›  🚨 🚨 πŸ‘» πŸ‘» πŸ‘»
generator-star-spacing πŸ›  🚨 🚨 🚨 🚨 🚨
getter-return 🚨 🚨 πŸ‘» πŸ‘» 🚨
global-require ⛔️ πŸ‘» 🚨 πŸ‘» πŸ‘» πŸ‘»
grouped-accessor-pairs 🚨 ❌ πŸ‘» πŸ‘» 🚨
guard-for-in 🚨 🚨 🚨 πŸ‘» 🚨
handle-callback-err ⛔️ πŸ‘» ❌ πŸ‘» πŸ‘» πŸ‘»
id-blacklist ⛔️ πŸ‘» ❌ πŸ‘» πŸ‘» πŸ‘»
id-denylist ❌ ❌ πŸ‘» πŸ‘» πŸ‘»
id-length 🚨 ❌ πŸ‘» πŸ‘» πŸ‘»
id-match ❌ ❌ πŸ‘» πŸ‘» πŸ‘»
implicit-arrow-linebreak πŸ›  🚨 🚨 πŸ‘» πŸ‘» πŸ‘»
import/default 🚨 ❌ πŸ‘» πŸ‘» πŸ‘»
import/dynamic-import-chunkname ❌ ❌ πŸ‘» πŸ‘» πŸ‘»
import/export 🚨 🚨 πŸ‘» 🚨 πŸ‘»
import/exports-last ❌ ❌ πŸ‘» πŸ‘» πŸ‘»
import/extensions 🚨 🚨 πŸ‘» πŸ‘» πŸ‘»
import/first πŸ›  🚨 🚨 πŸ‘» 🚨 πŸ‘»
import/group-exports ❌ ❌ πŸ‘» πŸ‘» πŸ‘»
import/imports-first πŸ›  ⛔️ πŸ‘» ❌ πŸ‘» πŸ‘» πŸ‘»
import/max-dependencies ❌ ❌ πŸ‘» πŸ‘» πŸ‘»
import/named ❌ 🚨 πŸ‘» πŸ‘» πŸ‘»
import/namespace ❌ ❌ πŸ‘» πŸ‘» πŸ‘»
import/newline-after-import πŸ›  🚨 🚨 πŸ‘» πŸ‘» πŸ‘»
import/no-absolute-path 🚨 🚨 πŸ‘» 🚨 πŸ‘»
import/no-amd 🚨 🚨 πŸ‘» πŸ‘» πŸ‘»
import/no-anonymous-default-export ❌ ❌ πŸ‘» πŸ‘» πŸ‘»
import/no-commonjs ❌ ❌ πŸ‘» πŸ‘» πŸ‘»
import/no-cycle 🚨 🚨 πŸ‘» πŸ‘» πŸ‘»
import/no-default-export ❌ ❌ πŸ‘» πŸ‘» πŸ‘»
import/no-deprecated ⚠️ ❌ πŸ‘» πŸ‘» πŸ‘»
import/no-duplicates πŸ›  🚨 🚨 πŸ‘» 🚨 πŸ‘»
import/no-dynamic-require 🚨 🚨 πŸ‘» πŸ‘» πŸ‘»
import/no-extraneous-dependencies 🚨 🚨 πŸ‘» πŸ‘» πŸ‘»
import/no-import-module-exports πŸ›  ❌ πŸ‘» πŸ‘» πŸ‘» πŸ‘»
import/no-internal-modules ❌ ❌ πŸ‘» πŸ‘» πŸ‘»
import/no-mutable-exports 🚨 🚨 πŸ‘» πŸ‘» πŸ‘»
import/no-named-as-default 🚨 🚨 πŸ‘» πŸ‘» πŸ‘»
import/no-named-as-default-member 🚨 🚨 πŸ‘» πŸ‘» πŸ‘»
import/no-named-default 🚨 🚨 πŸ‘» 🚨 πŸ‘»
import/no-named-export ❌ ❌ πŸ‘» πŸ‘» πŸ‘»
import/no-namespace πŸ›  ❌ ❌ πŸ‘» πŸ‘» πŸ‘»
import/no-nodejs-modules ❌ ❌ πŸ‘» πŸ‘» πŸ‘»
import/no-relative-packages ❌ πŸ‘» πŸ‘» πŸ‘» πŸ‘»
import/no-relative-parent-imports ❌ ❌ πŸ‘» πŸ‘» πŸ‘»
import/no-restricted-paths ❌ ❌ πŸ‘» πŸ‘» πŸ‘»
import/no-self-import 🚨 🚨 πŸ‘» πŸ‘» πŸ‘»
import/no-unassigned-import 🚨 ❌ πŸ‘» πŸ‘» πŸ‘»
import/no-unresolved ❌ 🚨 πŸ‘» πŸ‘» πŸ‘»
import/no-unused-modules ❌ ❌ πŸ‘» πŸ‘» πŸ‘»
import/no-useless-path-segments πŸ›  🚨 🚨 πŸ‘» πŸ‘» πŸ‘»
import/no-webpack-loader-syntax 🚨 🚨 πŸ‘» 🚨 πŸ‘»
import/order πŸ›  🚨 🚨 πŸ‘» πŸ‘» πŸ‘»
import/prefer-default-export ❌ 🚨 πŸ‘» πŸ‘» πŸ‘»
import/unambiguous ❌ ❌ πŸ‘» πŸ‘» πŸ‘»
indent πŸ›  🚨 🚨 🚨 🚨 🚨
indent-legacy πŸ›  ⛔️ πŸ‘» πŸ‘» πŸ‘» πŸ‘» πŸ‘»
init-declarations ❌ ❌ πŸ‘» πŸ‘» πŸ‘»
jest/consistent-test-it πŸ›  🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
jest/expect-expect 🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
jest/max-nested-describe 🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
jest/no-alias-methods πŸ›  🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
jest/no-commented-out-tests 🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
jest/no-conditional-expect 🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
jest/no-deprecated-functions πŸ›  🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
jest/no-disabled-tests ⚠️ πŸ‘» πŸ‘» πŸ‘» πŸ‘»
jest/no-done-callback 🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
jest/no-duplicate-hooks 🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
jest/no-export 🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
jest/no-focused-tests 🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
jest/no-hooks ❌ πŸ‘» πŸ‘» πŸ‘» πŸ‘»
jest/no-identical-title 🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
jest/no-if 🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
jest/no-interpolation-in-snapshots 🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
jest/no-jasmine-globals πŸ›  🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
jest/no-jest-import 🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
jest/no-large-snapshots ❌ πŸ‘» πŸ‘» πŸ‘» πŸ‘»
jest/no-mocks-import 🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
jest/no-restricted-matchers ❌ πŸ‘» πŸ‘» πŸ‘» πŸ‘»
jest/no-standalone-expect 🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
jest/no-test-prefixes πŸ›  🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
jest/no-test-return-statement 🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
jest/prefer-called-with 🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
jest/prefer-expect-assertions 🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
jest/prefer-expect-resolves πŸ›  🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
jest/prefer-hooks-on-top 🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
jest/prefer-lowercase-title πŸ›  ❌ πŸ‘» πŸ‘» πŸ‘» πŸ‘»
jest/prefer-spy-on πŸ›  🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
jest/prefer-strict-equal ❌ πŸ‘» πŸ‘» πŸ‘» πŸ‘»
jest/prefer-to-be πŸ›  🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
jest/prefer-to-contain πŸ›  🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
jest/prefer-to-have-length πŸ›  🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
jest/prefer-todo πŸ›  🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
jest/require-hook ❌ πŸ‘» πŸ‘» πŸ‘» πŸ‘»
jest/require-to-throw-message 🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
jest/require-top-level-describe 🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
jest/unbound-method ❌ πŸ‘» πŸ‘» πŸ‘» πŸ‘»
jest/valid-describe-callback 🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
jest/valid-expect 🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
jest/valid-expect-in-promise 🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
jest/valid-title πŸ›  🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
jsdoc/check-access 🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
jsdoc/check-alignment πŸ›  🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
jsdoc/check-examples ❌ πŸ‘» πŸ‘» πŸ‘» πŸ‘»
jsdoc/check-indentation ❌ πŸ‘» πŸ‘» πŸ‘» πŸ‘»
jsdoc/check-line-alignment πŸ›  ❌ πŸ‘» πŸ‘» πŸ‘» πŸ‘»
jsdoc/check-param-names πŸ›  🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
jsdoc/check-property-names πŸ›  🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
jsdoc/check-syntax 🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
jsdoc/check-tag-names πŸ›  🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
jsdoc/check-types πŸ›  🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
jsdoc/check-values 🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
jsdoc/empty-tags πŸ›  🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
jsdoc/implements-on-classes 🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
jsdoc/match-description ❌ πŸ‘» πŸ‘» πŸ‘» πŸ‘»
jsdoc/match-name πŸ›  ❌ πŸ‘» πŸ‘» πŸ‘» πŸ‘»
jsdoc/multiline-blocks πŸ›  🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
jsdoc/newline-after-description πŸ›  🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
jsdoc/no-bad-blocks πŸ›  🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
jsdoc/no-defaults πŸ›  🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
jsdoc/no-missing-syntax πŸ›  ❌ πŸ‘» πŸ‘» πŸ‘» πŸ‘»
jsdoc/no-multi-asterisks πŸ›  🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
jsdoc/no-restricted-syntax πŸ›  ❌ πŸ‘» πŸ‘» πŸ‘» πŸ‘»
jsdoc/no-types πŸ›  ❌ πŸ‘» πŸ‘» πŸ‘» πŸ‘»
jsdoc/no-undefined-types 🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
jsdoc/require-asterisk-prefix πŸ›  🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
jsdoc/require-description ❌ πŸ‘» πŸ‘» πŸ‘» πŸ‘»
jsdoc/require-description-complete-sentence πŸ›  ❌ πŸ‘» πŸ‘» πŸ‘» πŸ‘»
jsdoc/require-example πŸ›  ❌ πŸ‘» πŸ‘» πŸ‘» πŸ‘»
jsdoc/require-file-overview ❌ πŸ‘» πŸ‘» πŸ‘» πŸ‘»
jsdoc/require-hyphen-before-param-description πŸ›  ❌ πŸ‘» πŸ‘» πŸ‘» πŸ‘»
jsdoc/require-jsdoc πŸ›  ❌ πŸ‘» πŸ‘» πŸ‘» πŸ‘»
jsdoc/require-param πŸ›  ❌ πŸ‘» πŸ‘» πŸ‘» πŸ‘»
jsdoc/require-param-description ❌ πŸ‘» πŸ‘» πŸ‘» πŸ‘»
jsdoc/require-param-name 🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
jsdoc/require-param-type ❌ πŸ‘» πŸ‘» πŸ‘» πŸ‘»
jsdoc/require-property πŸ›  🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
jsdoc/require-property-description 🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
jsdoc/require-property-name 🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
jsdoc/require-property-type 🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
jsdoc/require-returns ❌ πŸ‘» πŸ‘» πŸ‘» πŸ‘»
jsdoc/require-returns-check ❌ πŸ‘» πŸ‘» πŸ‘» πŸ‘»
jsdoc/require-returns-description ❌ πŸ‘» πŸ‘» πŸ‘» πŸ‘»
jsdoc/require-returns-type ❌ πŸ‘» πŸ‘» πŸ‘» πŸ‘»
jsdoc/require-throws ❌ πŸ‘» πŸ‘» πŸ‘» πŸ‘»
jsdoc/require-yields ❌ πŸ‘» πŸ‘» πŸ‘» πŸ‘»
jsdoc/require-yields-check ❌ πŸ‘» πŸ‘» πŸ‘» πŸ‘»
jsdoc/tag-lines πŸ›  🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
jsdoc/valid-types 🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
jsonc/array-bracket-newline πŸ›  🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
jsonc/array-bracket-spacing πŸ›  🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
jsonc/array-element-newline πŸ›  🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
jsonc/auto πŸ›  ❌ πŸ‘» πŸ‘» πŸ‘» πŸ‘»
jsonc/comma-dangle πŸ›  🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
jsonc/comma-style πŸ›  🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
jsonc/indent πŸ›  🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
jsonc/key-name-casing ❌ πŸ‘» πŸ‘» πŸ‘» πŸ‘»
jsonc/key-spacing πŸ›  🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
jsonc/no-bigint-literals 🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
jsonc/no-binary-expression πŸ›  🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
jsonc/no-binary-numeric-literals πŸ›  🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
jsonc/no-comments 🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
jsonc/no-dupe-keys 🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
jsonc/no-escape-sequence-in-identifier πŸ›  🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
jsonc/no-floating-decimal πŸ›  🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
jsonc/no-hexadecimal-numeric-literals πŸ›  🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
jsonc/no-infinity 🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
jsonc/no-multi-str 🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
jsonc/no-nan 🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
jsonc/no-number-props πŸ›  🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
jsonc/no-numeric-separators πŸ›  🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
jsonc/no-octal 🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
jsonc/no-octal-escape 🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
jsonc/no-octal-numeric-literals πŸ›  🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
jsonc/no-parenthesized πŸ›  🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
jsonc/no-plus-sign πŸ›  🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
jsonc/no-regexp-literals 🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
jsonc/no-sparse-arrays 🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
jsonc/no-template-literals πŸ›  🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
jsonc/no-undefined-value 🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
jsonc/no-unicode-codepoint-escapes πŸ›  🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
jsonc/no-useless-escape 🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
jsonc/object-curly-newline πŸ›  🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
jsonc/object-curly-spacing πŸ›  🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
jsonc/object-property-newline πŸ›  🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
jsonc/quote-props πŸ›  🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
jsonc/quotes πŸ›  🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
jsonc/sort-keys πŸ›  🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
jsonc/space-unary-ops πŸ›  🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
jsonc/valid-json-number πŸ›  🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
jsonc/vue-custom-block/no-parsing-error 🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
jsx-a11y/accessible-emoji ⛔️ πŸ‘» ❌ πŸ‘» πŸ‘» πŸ‘»
jsx-a11y/alt-text 🚨 🚨 πŸ‘» πŸ‘» πŸ‘»
jsx-a11y/anchor-has-content 🚨 🚨 πŸ‘» πŸ‘» πŸ‘»
jsx-a11y/anchor-is-valid 🚨 🚨 πŸ‘» πŸ‘» πŸ‘»
jsx-a11y/aria-activedescendant-has-tabindex 🚨 🚨 πŸ‘» πŸ‘» πŸ‘»
jsx-a11y/aria-props 🚨 🚨 πŸ‘» πŸ‘» πŸ‘»
jsx-a11y/aria-proptypes 🚨 🚨 πŸ‘» πŸ‘» πŸ‘»
jsx-a11y/aria-role 🚨 🚨 πŸ‘» πŸ‘» πŸ‘»
jsx-a11y/aria-unsupported-elements 🚨 🚨 πŸ‘» πŸ‘» πŸ‘»
jsx-a11y/autocomplete-valid 🚨 ❌ πŸ‘» πŸ‘» πŸ‘»
jsx-a11y/click-events-have-key-events 🚨 🚨 πŸ‘» πŸ‘» πŸ‘»
jsx-a11y/control-has-associated-label ❌ 🚨 πŸ‘» πŸ‘» πŸ‘»
jsx-a11y/heading-has-content 🚨 🚨 πŸ‘» πŸ‘» πŸ‘»
jsx-a11y/html-has-lang 🚨 🚨 πŸ‘» πŸ‘» πŸ‘»
jsx-a11y/iframe-has-title 🚨 🚨 πŸ‘» πŸ‘» πŸ‘»
jsx-a11y/img-redundant-alt 🚨 🚨 πŸ‘» πŸ‘» πŸ‘»
jsx-a11y/interactive-supports-focus 🚨 🚨 πŸ‘» πŸ‘» πŸ‘»
jsx-a11y/label-has-associated-control 🚨 🚨 πŸ‘» πŸ‘» πŸ‘»
jsx-a11y/label-has-for ⛔️ πŸ‘» ❌ πŸ‘» πŸ‘» πŸ‘»
jsx-a11y/lang ❌ 🚨 πŸ‘» πŸ‘» πŸ‘»
jsx-a11y/media-has-caption 🚨 🚨 πŸ‘» πŸ‘» πŸ‘»
jsx-a11y/mouse-events-have-key-events 🚨 🚨 πŸ‘» πŸ‘» πŸ‘»
jsx-a11y/no-access-key 🚨 🚨 πŸ‘» πŸ‘» πŸ‘»
jsx-a11y/no-autofocus ❌ 🚨 πŸ‘» πŸ‘» πŸ‘»
jsx-a11y/no-distracting-elements 🚨 🚨 πŸ‘» πŸ‘» πŸ‘»
jsx-a11y/no-interactive-element-to-noninteractive-role 🚨 🚨 πŸ‘» πŸ‘» πŸ‘»
jsx-a11y/no-noninteractive-element-interactions 🚨 🚨 πŸ‘» πŸ‘» πŸ‘»
jsx-a11y/no-noninteractive-element-to-interactive-role 🚨 🚨 πŸ‘» πŸ‘» πŸ‘»
jsx-a11y/no-noninteractive-tabindex 🚨 🚨 πŸ‘» πŸ‘» πŸ‘»
jsx-a11y/no-onchange πŸ‘» ❌ πŸ‘» πŸ‘» πŸ‘»
jsx-a11y/no-redundant-roles 🚨 🚨 πŸ‘» πŸ‘» πŸ‘»
jsx-a11y/no-static-element-interactions 🚨 🚨 πŸ‘» πŸ‘» πŸ‘»
jsx-a11y/role-has-required-aria-props 🚨 🚨 πŸ‘» πŸ‘» πŸ‘»
jsx-a11y/role-supports-aria-props 🚨 🚨 πŸ‘» πŸ‘» πŸ‘»
jsx-a11y/scope 🚨 🚨 πŸ‘» πŸ‘» πŸ‘»
jsx-a11y/tabindex-no-positive 🚨 🚨 πŸ‘» πŸ‘» πŸ‘»
jsx-quotes πŸ›  🚨 🚨 πŸ‘» πŸ‘» 🚨
key-spacing πŸ›  🚨 🚨 🚨 🚨 🚨
keyword-spacing πŸ›  🚨 🚨 🚨 🚨 🚨
line-comment-position 🚨 ❌ πŸ‘» πŸ‘» πŸ‘»
linebreak-style πŸ›  🚨 🚨 🚨 πŸ‘» 🚨
lines-around-comment πŸ›  ❌ ❌ πŸ‘» πŸ‘» πŸ‘»
lines-around-directive πŸ›  ⛔️ πŸ‘» 🚨 πŸ‘» πŸ‘» πŸ‘»
lines-between-class-members πŸ›  🚨 🚨 πŸ‘» 🚨 🚨
lodash/callback-binding 🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
lodash/chain-style 🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
lodash/chaining 🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
lodash/collection-method-value 🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
lodash/collection-ordering 🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
lodash/collection-return 🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
lodash/consistent-compose 🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
lodash/identity-shorthand 🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
lodash/import-scope ❌ πŸ‘» πŸ‘» πŸ‘» πŸ‘»
lodash/matches-prop-shorthand 🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
lodash/matches-shorthand 🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
lodash/no-commit 🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
lodash/no-double-unwrap πŸ›  🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
lodash/no-extra-args 🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
lodash/no-unbound-this 🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
lodash/path-style πŸ›  ❌ πŸ‘» πŸ‘» πŸ‘» πŸ‘»
lodash/prefer-compact 🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
lodash/prefer-constant ❌ πŸ‘» πŸ‘» πŸ‘» πŸ‘»
lodash/prefer-filter 🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
lodash/prefer-find 🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
lodash/prefer-flat-map 🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
lodash/prefer-get 🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
lodash/prefer-immutable-method 🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
lodash/prefer-includes 🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
lodash/prefer-invoke-map ❌ πŸ‘» πŸ‘» πŸ‘» πŸ‘»
lodash/prefer-is-nil 🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
lodash/prefer-lodash-chain 🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
lodash/prefer-lodash-method ❌ πŸ‘» πŸ‘» πŸ‘» πŸ‘»
lodash/prefer-lodash-typecheck 🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
lodash/prefer-map 🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
lodash/prefer-matches 🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
lodash/prefer-noop ❌ πŸ‘» πŸ‘» πŸ‘» πŸ‘»
lodash/prefer-over-quantifier 🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
lodash/prefer-reject ⚠️ πŸ‘» πŸ‘» πŸ‘» πŸ‘»
lodash/prefer-some 🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
lodash/prefer-startswith ❌ πŸ‘» πŸ‘» πŸ‘» πŸ‘»
lodash/prefer-thru 🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
lodash/prefer-times 🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
lodash/prefer-wrapper-method 🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
lodash/preferred-alias 🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
lodash/prop-shorthand 🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
lodash/unwrap 🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
max-classes-per-file ❌ 🚨 πŸ‘» πŸ‘» πŸ‘»
max-depth ❌ ❌ πŸ‘» πŸ‘» ⚠️
max-len ❌ 🚨 🚨 πŸ‘» πŸ‘»
max-lines ❌ ❌ πŸ‘» πŸ‘» πŸ‘»
max-lines-per-function ❌ ❌ πŸ‘» πŸ‘» πŸ‘»
max-nested-callbacks ❌ ❌ πŸ‘» πŸ‘» ⚠️
max-params ❌ ❌ πŸ‘» πŸ‘» ⚠️
max-statements ❌ ❌ πŸ‘» πŸ‘» πŸ‘»
max-statements-per-line 🚨 ❌ πŸ‘» πŸ‘» 🚨
mocha/handle-done-callback 🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
mocha/max-top-level-suites 🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
mocha/no-async-describe πŸ›  🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
mocha/no-exclusive-tests 🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
mocha/no-exports 🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
mocha/no-global-tests 🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
mocha/no-hooks ❌ πŸ‘» πŸ‘» πŸ‘» πŸ‘»
mocha/no-hooks-for-single-case 🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
mocha/no-identical-title 🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
mocha/no-mocha-arrows πŸ›  ❌ πŸ‘» πŸ‘» πŸ‘» πŸ‘»
mocha/no-nested-tests 🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
mocha/no-pending-tests 🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
mocha/no-return-and-callback 🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
mocha/no-return-from-async 🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
mocha/no-setup-in-describe 🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
mocha/no-sibling-hooks 🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
mocha/no-skipped-tests 🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
mocha/no-synchronous-tests ❌ πŸ‘» πŸ‘» πŸ‘» πŸ‘»
mocha/no-top-level-hooks 🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
mocha/prefer-arrow-callback πŸ›  ❌ πŸ‘» πŸ‘» πŸ‘» πŸ‘»
mocha/valid-suite-description ❌ πŸ‘» πŸ‘» πŸ‘» πŸ‘»
mocha/valid-test-description ❌ πŸ‘» πŸ‘» πŸ‘» πŸ‘»
multiline-comment-style πŸ›  ❌ ❌ πŸ‘» πŸ‘» πŸ‘»
multiline-ternary πŸ›  ❌ ❌ πŸ‘» 🚨 πŸ‘»
new-cap ❌ 🚨 🚨 🚨 🚨
new-parens πŸ›  🚨 🚨 πŸ‘» 🚨 🚨
newline-after-var πŸ›  ⛔️ πŸ‘» ❌ πŸ‘» πŸ‘» πŸ‘»
newline-before-return πŸ›  ⛔️ πŸ‘» ❌ πŸ‘» πŸ‘» πŸ‘»
newline-per-chained-call πŸ›  ❌ 🚨 πŸ‘» πŸ‘» πŸ‘»
no-alert 🚨 ⚠️ πŸ‘» πŸ‘» 🚨
no-array-constructor 🚨 🚨 🚨 🚨 🚨
no-async-promise-executor 🚨 🚨 πŸ‘» 🚨 🚨
no-await-in-loop ❌ 🚨 πŸ‘» πŸ‘» 🚨
no-bitwise 🚨 🚨 πŸ‘» πŸ‘» 🚨
no-buffer-constructor ⛔️ πŸ‘» 🚨 πŸ‘» πŸ‘» 🚨
no-caller 🚨 🚨 🚨 🚨 🚨
no-case-declarations 🚨 🚨 πŸ‘» 🚨 🚨
no-catch-shadow ⛔️ πŸ‘» ❌ πŸ‘» πŸ‘» πŸ‘»
no-class-assign 🚨 🚨 πŸ‘» 🚨 🚨
no-compare-neg-zero 🚨 🚨 πŸ‘» 🚨 🚨
no-cond-assign 🚨 🚨 ❌ 🚨 🚨
no-confusing-arrow πŸ›  🚨 🚨 πŸ‘» πŸ‘» πŸ‘»
no-console 🚨 ⚠️ πŸ‘» πŸ‘» πŸ‘»
no-const-assign 🚨 🚨 πŸ‘» 🚨 🚨
no-constant-condition 🚨 ⚠️ πŸ‘» 🚨 🚨
no-constructor-return 🚨 ❌ πŸ‘» πŸ‘» 🚨
no-continue ❌ 🚨 πŸ‘» πŸ‘» πŸ‘»
no-control-regex 🚨 🚨 πŸ‘» 🚨 🚨
no-debugger 🚨 🚨 πŸ‘» 🚨 🚨
no-delete-var 🚨 🚨 πŸ‘» 🚨 🚨
no-div-regex πŸ›  🚨 ❌ πŸ‘» πŸ‘» πŸ‘»
no-dupe-args 🚨 🚨 πŸ‘» 🚨 🚨
no-dupe-class-members 🚨 🚨 πŸ‘» 🚨 🚨
no-dupe-else-if 🚨 ❌ πŸ‘» πŸ‘» 🚨
no-dupe-keys 🚨 🚨 πŸ‘» 🚨 🚨
no-duplicate-case 🚨 🚨 πŸ‘» 🚨 🚨
no-duplicate-imports ❌ ❌ πŸ‘» πŸ‘» πŸ‘»
no-else-return πŸ›  ❌ 🚨 πŸ‘» πŸ‘» 🚨
no-empty 🚨 🚨 πŸ‘» 🚨 🚨
no-empty-character-class 🚨 🚨 πŸ‘» 🚨 🚨
no-empty-function ❌ 🚨 πŸ‘» πŸ‘» πŸ‘»
no-empty-pattern 🚨 🚨 πŸ‘» 🚨 🚨
no-eq-null 🚨 ❌ πŸ‘» πŸ‘» 🚨
no-eval 🚨 🚨 πŸ‘» 🚨 🚨
no-ex-assign 🚨 🚨 πŸ‘» 🚨 🚨
no-extend-native 🚨 🚨 🚨 🚨 🚨
no-extra-bind πŸ›  🚨 🚨 🚨 🚨 🚨
no-extra-boolean-cast πŸ›  🚨 🚨 πŸ‘» 🚨 🚨
no-extra-label πŸ›  🚨 🚨 πŸ‘» πŸ‘» 🚨
no-extra-parens πŸ›  🚨 ❌ πŸ‘» 🚨 πŸ‘»
no-extra-semi πŸ›  🚨 🚨 πŸ‘» πŸ‘» 🚨
no-fallthrough 🚨 🚨 πŸ‘» 🚨 🚨
no-floating-decimal πŸ›  🚨 🚨 πŸ‘» 🚨 🚨
no-func-assign 🚨 🚨 πŸ‘» 🚨 🚨
no-global-assign 🚨 🚨 πŸ‘» 🚨 🚨
no-implicit-coercion πŸ›  🚨 ❌ πŸ‘» πŸ‘» 🚨
no-implicit-globals 🚨 ❌ πŸ‘» πŸ‘» 🚨
no-implied-eval 🚨 🚨 πŸ‘» 🚨 🚨
no-import-assign 🚨 ❌ πŸ‘» 🚨 🚨
no-inline-comments 🚨 ❌ πŸ‘» πŸ‘» πŸ‘»
no-inner-declarations 🚨 🚨 πŸ‘» πŸ‘» 🚨
no-invalid-regexp 🚨 🚨 πŸ‘» 🚨 🚨
no-invalid-this ❌ ❌ 🚨 πŸ‘» πŸ‘»
no-irregular-whitespace 🚨 🚨 🚨 🚨 🚨
no-iterator 🚨 🚨 πŸ‘» 🚨 🚨
no-label-var 🚨 🚨 πŸ‘» πŸ‘» 🚨
no-labels 🚨 🚨 πŸ‘» 🚨 🚨
no-lone-blocks 🚨 🚨 πŸ‘» 🚨 🚨
no-lonely-if πŸ›  🚨 🚨 πŸ‘» πŸ‘» 🚨
no-loop-func 🚨 🚨 πŸ‘» πŸ‘» πŸ‘»
no-loss-of-precision 🚨 ❌ πŸ‘» 🚨 🚨
no-magic-numbers ❌ ❌ πŸ‘» πŸ‘» πŸ‘»
no-misleading-character-class 🚨 🚨 πŸ‘» 🚨 🚨
no-mixed-operators ❌ 🚨 πŸ‘» 🚨 🚨
no-mixed-requires ⛔️ πŸ‘» ❌ πŸ‘» πŸ‘» πŸ‘»
no-mixed-spaces-and-tabs 🚨 🚨 🚨 🚨 🚨
no-multi-assign 🚨 🚨 πŸ‘» πŸ‘» 🚨
no-multi-spaces πŸ›  🚨 🚨 🚨 🚨 🚨
no-multi-str 🚨 🚨 🚨 🚨 🚨
no-multiple-empty-lines πŸ›  🚨 🚨 🚨 🚨 🚨
no-native-reassign ⛔️ πŸ‘» ❌ πŸ‘» πŸ‘» πŸ‘»
no-negated-condition 🚨 ❌ πŸ‘» πŸ‘» 🚨
no-negated-in-lhs ⛔️ πŸ‘» ❌ πŸ‘» πŸ‘» πŸ‘»
no-nested-ternary ❌ 🚨 πŸ‘» πŸ‘» πŸ‘»
no-new 🚨 🚨 πŸ‘» 🚨 🚨
no-new-func 🚨 🚨 πŸ‘» 🚨 🚨
no-new-object 🚨 🚨 🚨 🚨 🚨
no-new-require ⛔️ πŸ‘» 🚨 πŸ‘» πŸ‘» πŸ‘»
no-new-symbol 🚨 🚨 🚨 🚨 🚨
no-new-wrappers 🚨 🚨 🚨 🚨 🚨
no-nonoctal-decimal-escape 🚨 πŸ‘» πŸ‘» πŸ‘» 🚨
no-obj-calls 🚨 🚨 πŸ‘» 🚨 🚨
no-octal 🚨 🚨 πŸ‘» 🚨 🚨
no-octal-escape 🚨 🚨 πŸ‘» 🚨 🚨
no-param-reassign 🚨 🚨 πŸ‘» πŸ‘» πŸ‘»
no-path-concat ⛔️ πŸ‘» 🚨 πŸ‘» πŸ‘» πŸ‘»
no-plusplus ❌ 🚨 πŸ‘» πŸ‘» πŸ‘»
no-process-env ⛔️ πŸ‘» ❌ πŸ‘» πŸ‘» πŸ‘»
no-process-exit ⛔️ πŸ‘» ❌ πŸ‘» πŸ‘» πŸ‘»
no-promise-executor-return 🚨 ❌ πŸ‘» πŸ‘» 🚨
no-proto 🚨 🚨 πŸ‘» 🚨 🚨
no-prototype-builtins 🚨 🚨 πŸ‘» 🚨 🚨
no-redeclare 🚨 🚨 πŸ‘» 🚨 🚨
no-regex-spaces πŸ›  🚨 🚨 πŸ‘» 🚨 🚨
no-restricted-exports ❌ ❌ πŸ‘» πŸ‘» πŸ‘»
no-restricted-globals ❌ 🚨 πŸ‘» πŸ‘» 🚨
no-restricted-imports ❌ ❌ πŸ‘» πŸ‘» 🚨
no-restricted-modules ⛔️ πŸ‘» ❌ πŸ‘» πŸ‘» πŸ‘»
no-restricted-properties ❌ 🚨 πŸ‘» πŸ‘» πŸ‘»
no-restricted-syntax ❌ 🚨 πŸ‘» πŸ‘» πŸ‘»
no-return-assign 🚨 🚨 πŸ‘» 🚨 🚨
no-return-await ❌ 🚨 πŸ‘» πŸ‘» 🚨
no-script-url 🚨 🚨 πŸ‘» πŸ‘» 🚨
no-self-assign 🚨 🚨 πŸ‘» 🚨 🚨
no-self-compare 🚨 🚨 πŸ‘» 🚨 🚨
no-sequences 🚨 🚨 πŸ‘» 🚨 🚨
no-setter-return 🚨 ❌ πŸ‘» πŸ‘» 🚨
no-shadow 🚨 🚨 πŸ‘» πŸ‘» πŸ‘»
no-shadow-restricted-names 🚨 🚨 πŸ‘» 🚨 🚨
no-spaced-func πŸ›  ⛔️ πŸ‘» 🚨 πŸ‘» πŸ‘» πŸ‘»
no-sparse-arrays 🚨 🚨 πŸ‘» 🚨 🚨
no-sync ⛔️ πŸ‘» ❌ πŸ‘» πŸ‘» πŸ‘»
no-tabs 🚨 🚨 🚨 🚨 πŸ‘»
no-template-curly-in-string 🚨 🚨 πŸ‘» 🚨 🚨
no-ternary ❌ ❌ πŸ‘» πŸ‘» πŸ‘»
no-this-before-super 🚨 🚨 🚨 🚨 🚨
no-throw-literal 🚨 🚨 🚨 🚨 🚨
no-trailing-spaces πŸ›  🚨 🚨 🚨 🚨 🚨
no-undef 🚨 🚨 πŸ‘» 🚨 🚨
no-undef-init πŸ›  🚨 🚨 πŸ‘» 🚨 🚨
no-undefined ❌ ❌ πŸ‘» πŸ‘» πŸ‘»
no-underscore-dangle ❌ 🚨 πŸ‘» πŸ‘» πŸ‘»
no-unexpected-multiline 🚨 🚨 🚨 🚨 🚨
no-unmodified-loop-condition 🚨 ❌ πŸ‘» 🚨 🚨
no-unneeded-ternary πŸ›  🚨 🚨 πŸ‘» 🚨 🚨
no-unreachable 🚨 🚨 πŸ‘» 🚨 🚨
no-unreachable-loop 🚨 ❌ πŸ‘» 🚨 🚨
no-unsafe-finally 🚨 🚨 πŸ‘» 🚨 🚨
no-unsafe-negation 🚨 🚨 πŸ‘» 🚨 🚨
no-unsafe-optional-chaining 🚨 πŸ‘» πŸ‘» πŸ‘» 🚨
no-unused-expressions 🚨 🚨 πŸ‘» 🚨 🚨
no-unused-labels πŸ›  🚨 🚨 πŸ‘» πŸ‘» 🚨
no-unused-private-class-members ❌ πŸ‘» πŸ‘» πŸ‘» πŸ‘»
no-unused-vars 🚨 🚨 🚨 🚨 🚨
no-use-before-define 🚨 🚨 πŸ‘» 🚨 πŸ‘»
no-useless-backreference 🚨 ❌ πŸ‘» 🚨 🚨
no-useless-call 🚨 ❌ πŸ‘» 🚨 🚨
no-useless-catch 🚨 🚨 πŸ‘» 🚨 🚨
no-useless-computed-key πŸ›  🚨 🚨 πŸ‘» 🚨 🚨
no-useless-concat 🚨 🚨 πŸ‘» πŸ‘» 🚨
no-useless-constructor 🚨 🚨 πŸ‘» 🚨 🚨
no-useless-escape 🚨 🚨 πŸ‘» 🚨 🚨
no-useless-rename πŸ›  🚨 🚨 πŸ‘» 🚨 🚨
no-useless-return πŸ›  🚨 🚨 πŸ‘» 🚨 🚨
no-var πŸ›  🚨 🚨 🚨 ⚠️ 🚨
no-void 🚨 🚨 πŸ‘» 🚨 🚨
no-warning-comments ⚠️ ❌ πŸ‘» πŸ‘» ⚠️
no-whitespace-before-property πŸ›  🚨 🚨 πŸ‘» 🚨 🚨
no-with 🚨 🚨 🚨 🚨 🚨
node/callback-return 🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
node/exports-style 🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
node/file-extension-in-import πŸ›  ❌ πŸ‘» πŸ‘» πŸ‘» πŸ‘»
node/global-require ❌ πŸ‘» πŸ‘» πŸ‘» πŸ‘»
node/handle-callback-err 🚨 πŸ‘» πŸ‘» 🚨 πŸ‘»
node/no-callback-literal 🚨 πŸ‘» πŸ‘» 🚨 πŸ‘»
node/no-deprecated-api 🚨 πŸ‘» πŸ‘» 🚨 πŸ‘»
node/no-exports-assign 🚨 πŸ‘» πŸ‘» 🚨 πŸ‘»
node/no-extraneous-import 🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
node/no-extraneous-require 🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
node/no-hide-core-modules ⛔️ πŸ‘» πŸ‘» πŸ‘» πŸ‘» πŸ‘»
node/no-missing-import ❌ πŸ‘» πŸ‘» πŸ‘» πŸ‘»
node/no-missing-require ❌ πŸ‘» πŸ‘» πŸ‘» πŸ‘»
node/no-mixed-requires ❌ πŸ‘» πŸ‘» πŸ‘» πŸ‘»
node/no-new-require 🚨 πŸ‘» πŸ‘» 🚨 πŸ‘»
node/no-path-concat 🚨 πŸ‘» πŸ‘» 🚨 πŸ‘»
node/no-process-env 🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
node/no-process-exit 🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
node/no-restricted-import ❌ πŸ‘» πŸ‘» πŸ‘» πŸ‘»
node/no-restricted-require ❌ πŸ‘» πŸ‘» πŸ‘» πŸ‘»
node/no-sync 🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
node/no-unpublished-bin 🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
node/no-unpublished-import ❌ πŸ‘» πŸ‘» πŸ‘» πŸ‘»
node/no-unpublished-require ❌ πŸ‘» πŸ‘» πŸ‘» πŸ‘»
node/no-unsupported-features ⛔️ πŸ‘» πŸ‘» πŸ‘» πŸ‘» πŸ‘»
node/no-unsupported-features/es-builtins ❌ πŸ‘» πŸ‘» πŸ‘» πŸ‘»
node/no-unsupported-features/es-syntax ❌ πŸ‘» πŸ‘» πŸ‘» πŸ‘»
node/no-unsupported-features/node-builtins ❌ πŸ‘» πŸ‘» πŸ‘» πŸ‘»
node/prefer-global/buffer 🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
node/prefer-global/console 🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
node/prefer-global/process 🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
node/prefer-global/text-decoder 🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
node/prefer-global/text-encoder 🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
node/prefer-global/url 🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
node/prefer-global/url-search-params 🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
node/prefer-promises/dns 🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
node/prefer-promises/fs 🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
node/process-exit-as-throw 🚨 πŸ‘» πŸ‘» 🚨 πŸ‘»
node/shebang πŸ›  🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
nonblock-statement-body-position πŸ›  🚨 🚨 πŸ‘» πŸ‘» πŸ‘»
object-curly-newline πŸ›  🚨 🚨 πŸ‘» 🚨 πŸ‘»
object-curly-spacing πŸ›  ❌ 🚨 🚨 🚨 🚨
object-property-newline πŸ›  🚨 🚨 πŸ‘» 🚨 πŸ‘»
object-shorthand πŸ›  🚨 🚨 πŸ‘» πŸ‘» 🚨
one-var πŸ›  🚨 🚨 🚨 🚨 🚨
one-var-declaration-per-line πŸ›  🚨 🚨 πŸ‘» πŸ‘» 🚨
operator-assignment πŸ›  🚨 🚨 πŸ‘» πŸ‘» 🚨
operator-linebreak πŸ›  🚨 🚨 🚨 🚨 🚨
padded-blocks πŸ›  🚨 🚨 🚨 🚨 🚨
padding-line-between-statements πŸ›  🚨 ❌ πŸ‘» πŸ‘» 🚨
prefer-arrow-callback πŸ›  🚨 🚨 πŸ‘» πŸ‘» 🚨
prefer-const πŸ›  🚨 🚨 🚨 🚨 🚨
prefer-destructuring πŸ›  🚨 🚨 πŸ‘» πŸ‘» 🚨
prefer-exponentiation-operator πŸ›  🚨 ❌ πŸ‘» πŸ‘» 🚨
prefer-named-capture-group ❌ ❌ πŸ‘» πŸ‘» πŸ‘»
prefer-numeric-literals πŸ›  🚨 🚨 πŸ‘» πŸ‘» 🚨
prefer-object-spread πŸ›  🚨 🚨 πŸ‘» πŸ‘» 🚨
prefer-promise-reject-errors 🚨 🚨 🚨 🚨 🚨
prefer-reflect ⛔️ πŸ‘» ❌ πŸ‘» πŸ‘» πŸ‘»
prefer-regex-literals 🚨 ❌ πŸ‘» 🚨 🚨
prefer-rest-params 🚨 🚨 🚨 πŸ‘» 🚨
prefer-spread 🚨 🚨 🚨 πŸ‘» 🚨
prefer-template πŸ›  ❌ 🚨 πŸ‘» πŸ‘» πŸ‘»
promise/always-return πŸ‘» πŸ‘» πŸ‘» πŸ‘» πŸ‘»
promise/avoid-new πŸ‘» πŸ‘» πŸ‘» πŸ‘» πŸ‘»
promise/catch-or-return πŸ‘» πŸ‘» πŸ‘» πŸ‘» πŸ‘»
promise/no-callback-in-promise πŸ‘» πŸ‘» πŸ‘» πŸ‘» πŸ‘»
promise/no-native πŸ‘» πŸ‘» πŸ‘» πŸ‘» πŸ‘»
promise/no-nesting πŸ‘» πŸ‘» πŸ‘» πŸ‘» πŸ‘»
promise/no-new-statics πŸ›  πŸ‘» πŸ‘» πŸ‘» πŸ‘» πŸ‘»
promise/no-promise-in-callback πŸ‘» πŸ‘» πŸ‘» πŸ‘» πŸ‘»
promise/no-return-in-finally πŸ‘» πŸ‘» πŸ‘» πŸ‘» πŸ‘»
promise/no-return-wrap πŸ‘» πŸ‘» πŸ‘» πŸ‘» πŸ‘»
promise/param-names πŸ‘» πŸ‘» πŸ‘» 🚨 πŸ‘»
promise/prefer-await-to-callbacks πŸ‘» πŸ‘» πŸ‘» πŸ‘» πŸ‘»
promise/prefer-await-to-then πŸ‘» πŸ‘» πŸ‘» πŸ‘» πŸ‘»
promise/valid-params πŸ‘» πŸ‘» πŸ‘» πŸ‘» πŸ‘»
quote-props πŸ›  🚨 🚨 🚨 🚨 🚨
quotes πŸ›  🚨 🚨 🚨 🚨 🚨
radix 🚨 🚨 πŸ‘» πŸ‘» 🚨
react-hooks/exhaustive-deps πŸ›  🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
react-hooks/rules-of-hooks 🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
react/boolean-prop-naming ❌ ❌ πŸ‘» πŸ‘» πŸ‘»
react/button-has-type 🚨 🚨 πŸ‘» πŸ‘» πŸ‘»
react/default-props-match-prop-types 🚨 🚨 πŸ‘» πŸ‘» πŸ‘»
react/destructuring-assignment ❌ 🚨 πŸ‘» πŸ‘» πŸ‘»
react/display-name ❌ ❌ πŸ‘» πŸ‘» πŸ‘»
react/forbid-component-props 🚨 ❌ πŸ‘» πŸ‘» πŸ‘»
react/forbid-dom-props ❌ ❌ πŸ‘» πŸ‘» πŸ‘»
react/forbid-elements ❌ ❌ πŸ‘» πŸ‘» πŸ‘»
react/forbid-foreign-prop-types ❌ ⚠️ πŸ‘» πŸ‘» πŸ‘»
react/forbid-prop-types ❌ 🚨 πŸ‘» πŸ‘» πŸ‘»
react/function-component-definition πŸ›  🚨 ❌ πŸ‘» πŸ‘» πŸ‘»
react/jsx-boolean-value πŸ›  🚨 🚨 πŸ‘» πŸ‘» πŸ‘»
react/jsx-child-element-spacing ❌ ❌ πŸ‘» πŸ‘» πŸ‘»
react/jsx-closing-bracket-location πŸ›  🚨 🚨 πŸ‘» πŸ‘» πŸ‘»
react/jsx-closing-tag-location πŸ›  🚨 🚨 πŸ‘» πŸ‘» πŸ‘»
react/jsx-curly-brace-presence πŸ›  🚨 🚨 πŸ‘» πŸ‘» πŸ‘»
react/jsx-curly-newline πŸ›  🚨 🚨 πŸ‘» πŸ‘» πŸ‘»
react/jsx-curly-spacing πŸ›  🚨 🚨 πŸ‘» πŸ‘» πŸ‘»
react/jsx-equals-spacing πŸ›  🚨 🚨 πŸ‘» πŸ‘» πŸ‘»
react/jsx-filename-extension ❌ 🚨 πŸ‘» πŸ‘» πŸ‘»
react/jsx-first-prop-new-line πŸ›  🚨 🚨 πŸ‘» πŸ‘» πŸ‘»
react/jsx-fragments πŸ›  🚨 🚨 πŸ‘» πŸ‘» πŸ‘»
react/jsx-handler-names 🚨 ❌ πŸ‘» πŸ‘» πŸ‘»
react/jsx-indent πŸ›  🚨 🚨 πŸ‘» πŸ‘» πŸ‘»
react/jsx-indent-props πŸ›  🚨 🚨 πŸ‘» πŸ‘» πŸ‘»
react/jsx-key 🚨 ❌ πŸ‘» πŸ‘» πŸ‘»
react/jsx-max-depth ❌ ❌ πŸ‘» πŸ‘» πŸ‘»
react/jsx-max-props-per-line πŸ›  🚨 🚨 πŸ‘» πŸ‘» πŸ‘»
react/jsx-newline πŸ›  🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
react/jsx-no-bind 🚨 🚨 πŸ‘» πŸ‘» πŸ‘»
react/jsx-no-comment-textnodes 🚨 🚨 πŸ‘» πŸ‘» πŸ‘»
react/jsx-no-constructed-context-values 🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
react/jsx-no-duplicate-props 🚨 🚨 πŸ‘» πŸ‘» πŸ‘»
react/jsx-no-literals ❌ ❌ πŸ‘» πŸ‘» πŸ‘»
react/jsx-no-script-url 🚨 ❌ πŸ‘» πŸ‘» πŸ‘»
react/jsx-no-target-blank πŸ›  🚨 🚨 πŸ‘» πŸ‘» πŸ‘»
react/jsx-no-undef 🚨 🚨 πŸ‘» πŸ‘» πŸ‘»
react/jsx-no-useless-fragment πŸ›  🚨 ❌ πŸ‘» πŸ‘» πŸ‘»
react/jsx-one-expression-per-line πŸ›  ❌ 🚨 πŸ‘» πŸ‘» πŸ‘»
react/jsx-pascal-case 🚨 🚨 πŸ‘» πŸ‘» πŸ‘»
react/jsx-props-no-multi-spaces πŸ›  🚨 🚨 πŸ‘» πŸ‘» πŸ‘»
react/jsx-props-no-spreading ❌ 🚨 πŸ‘» πŸ‘» πŸ‘»
react/jsx-sort-default-props 🚨 ❌ πŸ‘» πŸ‘» πŸ‘»
react/jsx-sort-props πŸ›  🚨 ❌ πŸ‘» πŸ‘» πŸ‘»
react/jsx-space-before-closing πŸ›  ⛔️ πŸ‘» ❌ πŸ‘» πŸ‘» πŸ‘»
react/jsx-tag-spacing πŸ›  🚨 🚨 πŸ‘» πŸ‘» πŸ‘»
react/jsx-uses-react 🚨 🚨 πŸ‘» πŸ‘» πŸ‘»
react/jsx-uses-vars 🚨 🚨 πŸ‘» πŸ‘» πŸ‘»
react/jsx-wrap-multilines πŸ›  ❌ 🚨 πŸ‘» πŸ‘» πŸ‘»
react/no-access-state-in-setstate 🚨 🚨 πŸ‘» πŸ‘» πŸ‘»
react/no-adjacent-inline-elements ❌ ❌ πŸ‘» πŸ‘» πŸ‘»
react/no-array-index-key 🚨 🚨 πŸ‘» πŸ‘» πŸ‘»
react/no-children-prop 🚨 🚨 πŸ‘» πŸ‘» πŸ‘»
react/no-danger 🚨 ⚠️ πŸ‘» πŸ‘» πŸ‘»
react/no-danger-with-children 🚨 🚨 πŸ‘» πŸ‘» πŸ‘»
react/no-deprecated 🚨 🚨 πŸ‘» πŸ‘» πŸ‘»
react/no-did-mount-set-state 🚨 ❌ πŸ‘» πŸ‘» πŸ‘»
react/no-did-update-set-state 🚨 🚨 πŸ‘» πŸ‘» πŸ‘»
react/no-direct-mutation-state 🚨 ❌ πŸ‘» πŸ‘» πŸ‘»
react/no-find-dom-node 🚨 🚨 πŸ‘» πŸ‘» πŸ‘»
react/no-is-mounted 🚨 🚨 πŸ‘» πŸ‘» πŸ‘»
react/no-multi-comp ❌ ❌ πŸ‘» πŸ‘» πŸ‘»
react/no-namespace 🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
react/no-redundant-should-component-update 🚨 🚨 πŸ‘» πŸ‘» πŸ‘»
react/no-render-return-value 🚨 🚨 πŸ‘» πŸ‘» πŸ‘»
react/no-set-state 🚨 ❌ πŸ‘» πŸ‘» πŸ‘»
react/no-string-refs 🚨 🚨 πŸ‘» πŸ‘» πŸ‘»
react/no-this-in-sfc 🚨 🚨 πŸ‘» πŸ‘» πŸ‘»
react/no-typos 🚨 🚨 πŸ‘» πŸ‘» πŸ‘»
react/no-unescaped-entities ❌ 🚨 πŸ‘» πŸ‘» πŸ‘»
react/no-unknown-property πŸ›  🚨 🚨 πŸ‘» πŸ‘» πŸ‘»
react/no-unsafe 🚨 ❌ πŸ‘» πŸ‘» πŸ‘»
react/no-unstable-nested-components 🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
react/no-unused-prop-types 🚨 🚨 πŸ‘» πŸ‘» πŸ‘»
react/no-unused-state 🚨 🚨 πŸ‘» πŸ‘» πŸ‘»
react/no-will-update-set-state 🚨 🚨 πŸ‘» πŸ‘» πŸ‘»
react/prefer-es6-class 🚨 🚨 πŸ‘» πŸ‘» πŸ‘»
react/prefer-exact-props ❌ πŸ‘» πŸ‘» πŸ‘» πŸ‘»
react/prefer-read-only-props πŸ›  🚨 ❌ πŸ‘» πŸ‘» πŸ‘»
react/prefer-stateless-function 🚨 🚨 πŸ‘» πŸ‘» πŸ‘»
react/prop-types 🚨 🚨 πŸ‘» πŸ‘» πŸ‘»
react/react-in-jsx-scope ❌ 🚨 πŸ‘» πŸ‘» πŸ‘»
react/require-default-props ❌ 🚨 πŸ‘» πŸ‘» πŸ‘»
react/require-optimization ❌ ❌ πŸ‘» πŸ‘» πŸ‘»
react/require-render-return 🚨 🚨 πŸ‘» πŸ‘» πŸ‘»
react/self-closing-comp πŸ›  🚨 🚨 πŸ‘» πŸ‘» πŸ‘»
react/sort-comp 🚨 🚨 πŸ‘» πŸ‘» πŸ‘»
react/sort-prop-types 🚨 ❌ πŸ‘» πŸ‘» πŸ‘»
react/state-in-constructor 🚨 🚨 πŸ‘» πŸ‘» πŸ‘»
react/static-property-placement 🚨 🚨 πŸ‘» πŸ‘» πŸ‘»
react/style-prop-object 🚨 🚨 πŸ‘» πŸ‘» πŸ‘»
react/void-dom-elements-no-children 🚨 🚨 πŸ‘» πŸ‘» πŸ‘»
require-atomic-updates 🚨 ❌ πŸ‘» πŸ‘» πŸ‘»
require-await ❌ ❌ πŸ‘» πŸ‘» πŸ‘»
require-jsdoc ⛔️ πŸ‘» ❌ 🚨 πŸ‘» πŸ‘»
require-unicode-regexp 🚨 ❌ πŸ‘» πŸ‘» πŸ‘»
require-yield 🚨 🚨 πŸ‘» πŸ‘» 🚨
rest-spread-spacing πŸ›  🚨 🚨 🚨 🚨 🚨
semi πŸ›  🚨 🚨 🚨 🚨 🚨
semi-spacing πŸ›  🚨 🚨 🚨 🚨 🚨
semi-style πŸ›  🚨 🚨 πŸ‘» πŸ‘» 🚨
sort-imports πŸ›  ❌ ❌ πŸ‘» πŸ‘» πŸ‘»
sort-keys ❌ ❌ πŸ‘» πŸ‘» πŸ‘»
sort-vars πŸ›  🚨 ❌ πŸ‘» πŸ‘» πŸ‘»
space-before-blocks πŸ›  🚨 🚨 🚨 🚨 🚨
space-before-function-paren πŸ›  🚨 🚨 🚨 🚨 🚨
space-in-parens πŸ›  🚨 🚨 πŸ‘» 🚨 🚨
space-infix-ops πŸ›  🚨 🚨 πŸ‘» 🚨 🚨
space-unary-ops πŸ›  🚨 🚨 πŸ‘» 🚨 🚨
spaced-comment πŸ›  🚨 🚨 🚨 🚨 🚨
strict πŸ›  🚨 🚨 πŸ‘» πŸ‘» πŸ‘»
switch-colon-spacing πŸ›  🚨 🚨 🚨 πŸ‘» 🚨
symbol-description 🚨 🚨 πŸ‘» 🚨 🚨
template-curly-spacing πŸ›  🚨 🚨 πŸ‘» 🚨 🚨
template-tag-spacing πŸ›  🚨 🚨 πŸ‘» 🚨 🚨
typescript-sort-keys/interface πŸ›  🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
typescript-sort-keys/string-enum πŸ›  🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
unicode-bom πŸ›  🚨 🚨 πŸ‘» 🚨 🚨
unicorn/better-regex πŸ›  🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
unicorn/catch-error-name πŸ›  🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
unicorn/consistent-destructuring πŸ›  ❌ πŸ‘» πŸ‘» πŸ‘» πŸ‘»
unicorn/consistent-function-scoping 🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
unicorn/custom-error-definition πŸ›  ❌ πŸ‘» πŸ‘» πŸ‘» πŸ‘»
unicorn/empty-brace-spaces πŸ›  🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
unicorn/error-message 🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
unicorn/escape-case πŸ›  🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
unicorn/expiring-todo-comments 🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
unicorn/explicit-length-check πŸ›  ❌ πŸ‘» πŸ‘» πŸ‘» πŸ‘»
unicorn/filename-case ❌ πŸ‘» πŸ‘» πŸ‘» πŸ‘»
unicorn/import-index πŸ›  🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
unicorn/import-style ❌ πŸ‘» πŸ‘» πŸ‘» πŸ‘»
unicorn/new-for-builtins πŸ›  🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
unicorn/no-abusive-eslint-disable 🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
unicorn/no-array-callback-reference ❌ πŸ‘» πŸ‘» πŸ‘» πŸ‘»
unicorn/no-array-for-each πŸ›  🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
unicorn/no-array-instanceof ⛔️ πŸ‘» πŸ‘» πŸ‘» πŸ‘» πŸ‘»
unicorn/no-array-method-this-argument πŸ›  🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
unicorn/no-array-push-push πŸ›  ❌ πŸ‘» πŸ‘» πŸ‘» πŸ‘»
unicorn/no-array-reduce 🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
unicorn/no-console-spaces πŸ›  ❌ πŸ‘» πŸ‘» πŸ‘» πŸ‘»
unicorn/no-document-cookie 🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
unicorn/no-empty-file 🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
unicorn/no-fn-reference-in-iterator ⛔️ πŸ‘» πŸ‘» πŸ‘» πŸ‘» πŸ‘»
unicorn/no-for-loop πŸ›  🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
unicorn/no-hex-escape πŸ›  🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
unicorn/no-instanceof-array πŸ›  🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
unicorn/no-invalid-remove-event-listener 🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
unicorn/no-keyword-prefix ❌ πŸ‘» πŸ‘» πŸ‘» πŸ‘»
unicorn/no-lonely-if πŸ›  🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
unicorn/no-nested-ternary πŸ›  🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
unicorn/no-new-array πŸ›  🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
unicorn/no-new-buffer πŸ›  🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
unicorn/no-null πŸ›  ❌ πŸ‘» πŸ‘» πŸ‘» πŸ‘»
unicorn/no-object-as-default-parameter 🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
unicorn/no-process-exit ❌ πŸ‘» πŸ‘» πŸ‘» πŸ‘»
unicorn/no-reduce ⛔️ πŸ‘» πŸ‘» πŸ‘» πŸ‘» πŸ‘»
unicorn/no-static-only-class πŸ›  🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
unicorn/no-this-assignment 🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
unicorn/no-unreadable-array-destructuring πŸ›  ❌ πŸ‘» πŸ‘» πŸ‘» πŸ‘»
unicorn/no-unsafe-regex 🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
unicorn/no-unused-properties 🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
unicorn/no-useless-fallback-in-spread πŸ›  🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
unicorn/no-useless-length-check πŸ›  🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
unicorn/no-useless-spread πŸ›  🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
unicorn/no-useless-undefined πŸ›  ❌ πŸ‘» πŸ‘» πŸ‘» πŸ‘»
unicorn/no-zero-fractions πŸ›  🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
unicorn/number-literal-case πŸ›  🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
unicorn/numeric-separators-style πŸ›  🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
unicorn/prefer-add-event-listener πŸ›  ❌ πŸ‘» πŸ‘» πŸ‘» πŸ‘»
unicorn/prefer-array-find πŸ›  🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
unicorn/prefer-array-flat πŸ›  🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
unicorn/prefer-array-flat-map πŸ›  🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
unicorn/prefer-array-index-of πŸ›  🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
unicorn/prefer-array-some πŸ›  🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
unicorn/prefer-at πŸ›  ❌ πŸ‘» πŸ‘» πŸ‘» πŸ‘»
unicorn/prefer-dataset ⛔️ πŸ‘» πŸ‘» πŸ‘» πŸ‘» πŸ‘»
unicorn/prefer-date-now πŸ›  🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
unicorn/prefer-default-parameters πŸ›  🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
unicorn/prefer-dom-node-append πŸ›  🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
unicorn/prefer-dom-node-dataset πŸ›  🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
unicorn/prefer-dom-node-remove πŸ›  🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
unicorn/prefer-dom-node-text-content 🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
unicorn/prefer-event-key ⛔️ πŸ‘» πŸ‘» πŸ‘» πŸ‘» πŸ‘»
unicorn/prefer-exponentiation-operator ⛔️ πŸ‘» πŸ‘» πŸ‘» πŸ‘» πŸ‘»
unicorn/prefer-export-from πŸ›  🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
unicorn/prefer-flat-map ⛔️ πŸ‘» πŸ‘» πŸ‘» πŸ‘» πŸ‘»
unicorn/prefer-includes πŸ›  🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
unicorn/prefer-keyboard-event-key πŸ›  🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
unicorn/prefer-math-trunc πŸ›  🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
unicorn/prefer-modern-dom-apis πŸ›  🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
unicorn/prefer-module πŸ›  🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
unicorn/prefer-negative-index πŸ›  ❌ πŸ‘» πŸ‘» πŸ‘» πŸ‘»
unicorn/prefer-node-append ⛔️ πŸ‘» πŸ‘» πŸ‘» πŸ‘» πŸ‘»
unicorn/prefer-node-protocol πŸ›  🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
unicorn/prefer-node-remove ⛔️ πŸ‘» πŸ‘» πŸ‘» πŸ‘» πŸ‘»
unicorn/prefer-number-properties πŸ›  🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
unicorn/prefer-object-from-entries πŸ›  🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
unicorn/prefer-object-has-own πŸ›  ❌ πŸ‘» πŸ‘» πŸ‘» πŸ‘»
unicorn/prefer-optional-catch-binding πŸ›  🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
unicorn/prefer-prototype-methods πŸ›  ❌ πŸ‘» πŸ‘» πŸ‘» πŸ‘»
unicorn/prefer-query-selector πŸ›  🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
unicorn/prefer-reflect-apply πŸ›  🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
unicorn/prefer-regexp-test πŸ›  🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
unicorn/prefer-replace-all ⛔️ πŸ‘» πŸ‘» πŸ‘» πŸ‘» πŸ‘»
unicorn/prefer-set-has πŸ›  ❌ πŸ‘» πŸ‘» πŸ‘» πŸ‘»
unicorn/prefer-spread πŸ›  ❌ πŸ‘» πŸ‘» πŸ‘» πŸ‘»
unicorn/prefer-starts-ends-with ⛔️ πŸ‘» πŸ‘» πŸ‘» πŸ‘» πŸ‘»
unicorn/prefer-string-replace-all πŸ›  🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
unicorn/prefer-string-slice πŸ›  🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
unicorn/prefer-string-starts-ends-with πŸ›  🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
unicorn/prefer-string-trim-start-end πŸ›  🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
unicorn/prefer-switch πŸ›  ❌ πŸ‘» πŸ‘» πŸ‘» πŸ‘»
unicorn/prefer-ternary πŸ›  ❌ πŸ‘» πŸ‘» πŸ‘» πŸ‘»
unicorn/prefer-text-content ⛔️ πŸ‘» πŸ‘» πŸ‘» πŸ‘» πŸ‘»
unicorn/prefer-top-level-await ❌ πŸ‘» πŸ‘» πŸ‘» πŸ‘»
unicorn/prefer-trim-start-end ⛔️ πŸ‘» πŸ‘» πŸ‘» πŸ‘» πŸ‘»
unicorn/prefer-type-error πŸ›  🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
unicorn/prevent-abbreviations πŸ›  🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
unicorn/regex-shorthand ⛔️ πŸ‘» πŸ‘» πŸ‘» πŸ‘» πŸ‘»
unicorn/require-array-join-separator πŸ›  🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
unicorn/require-number-to-fixed-digits-argument πŸ›  🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
unicorn/require-post-message-target-origin 🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
unicorn/string-content πŸ›  ❌ πŸ‘» πŸ‘» πŸ‘» πŸ‘»
unicorn/template-indent πŸ›  🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
unicorn/throw-new-error πŸ›  🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
use-isnan 🚨 🚨 πŸ‘» 🚨 🚨
valid-jsdoc πŸ›  ⛔️ πŸ‘» ❌ 🚨 πŸ‘» πŸ‘»
valid-typeof 🚨 🚨 πŸ‘» 🚨 🚨
vars-on-top 🚨 🚨 πŸ‘» πŸ‘» πŸ‘»
wrap-iife πŸ›  🚨 🚨 πŸ‘» 🚨 🚨
wrap-regex πŸ›  ❌ ❌ πŸ‘» πŸ‘» πŸ‘»
yield-star-spacing πŸ›  🚨 🚨 🚨 🚨 🚨
yml/block-mapping πŸ›  🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
yml/block-mapping-question-indicator-newline πŸ›  🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
yml/block-sequence πŸ›  🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
yml/block-sequence-hyphen-indicator-newline πŸ›  🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
yml/flow-mapping-curly-newline πŸ›  🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
yml/flow-mapping-curly-spacing πŸ›  🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
yml/flow-sequence-bracket-newline πŸ›  🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
yml/flow-sequence-bracket-spacing πŸ›  🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
yml/indent πŸ›  🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
yml/key-name-casing ❌ πŸ‘» πŸ‘» πŸ‘» πŸ‘»
yml/key-spacing πŸ›  🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
yml/no-empty-document 🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
yml/no-empty-key 🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
yml/no-empty-mapping-value 🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
yml/no-empty-sequence-entry 🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
yml/no-irregular-whitespace 🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
yml/no-tab-indent 🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
yml/plain-scalar πŸ›  ❌ πŸ‘» πŸ‘» πŸ‘» πŸ‘»
yml/quotes πŸ›  🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
yml/require-string-key 🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
yml/sort-keys πŸ›  🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
yml/spaced-comment πŸ›  🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
yml/vue-custom-block/no-parsing-error 🚨 πŸ‘» πŸ‘» πŸ‘» πŸ‘»
yoda πŸ›  🚨 🚨 πŸ‘» 🚨 🚨

Versioning Policy

All breaking changes will bump the major version as per the semver convention. Therefore, every new rule addition will increase the major version.

Development

First, run npm run setup-dev. Then, any time that ESLint dependencies are updated you must:

  1. Run npm run generate-typescript-compatibility-rules script. It disables and override any TypeScript rules that are incompatible with ESLint built-in rules.
  2. Run npm run compare script. It generates ruleset comparison table, updates README.md, and identifies rules that are not configured.