๐งถ Rules
Filter by plugins...
Rule | Plugin | Severity | Options | Docs | Files |
---|---|---|---|---|---|
for-direction | @eslint/js | 2 | No options | Enforce "for" loop update clause moving the counter in the right direction | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
no-async-promise-executor | @eslint/js | 2 | No options | Disallow using an async function as a Promise executor | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
no-case-declarations | @eslint/js | 2 | No options | Disallow lexical declarations in case clauses | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
no-class-assign | @eslint/js | 2 | No options | Disallow reassigning class members | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
no-compare-neg-zero | @eslint/js | 2 | No options | Disallow comparing against -0 | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
no-cond-assign | @eslint/js | 2 | No options | Disallow assignment operators in conditional expressions | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
no-constant-condition | @eslint/js | 2 | No options | Disallow constant expressions in conditions | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
no-control-regex | @eslint/js | 2 | No options | Disallow control characters in regular expressions | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
no-debugger | @eslint/js | 2 | No options | Disallow the use of `debugger` | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
no-delete-var | @eslint/js | 2 | No options | Disallow deleting variables | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
no-dupe-else-if | @eslint/js | 2 | No options | Disallow duplicate conditions in if-else-if chains | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
no-duplicate-case | @eslint/js | 2 | No options | Disallow duplicate case labels | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
no-empty | @eslint/js | 2 | No options | Disallow empty block statements | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
no-empty-character-class | @eslint/js | 2 | No options | Disallow empty character classes in regular expressions | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
no-empty-pattern | @eslint/js | 2 | No options | Disallow empty destructuring patterns | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
no-ex-assign | @eslint/js | 2 | No options | Disallow reassigning exceptions in `catch` clauses | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
no-extra-boolean-cast | @eslint/js | 2 | No options | Disallow unnecessary boolean casts | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
no-extra-semi | @eslint/js | 2 | No options | Disallow unnecessary semicolons | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
no-fallthrough | @eslint/js | 2 | No options | Disallow fallthrough of `case` statements | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
no-global-assign | @eslint/js | 2 | No options | Disallow assignments to native objects or read-only global variables | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
no-inner-declarations | @eslint/js | 2 | No options | Disallow variable or `function` declarations in nested blocks | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
no-invalid-regexp | @eslint/js | 2 | No options | Disallow invalid regular expression strings in `RegExp` constructors | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
no-irregular-whitespace | @eslint/js | 2 | No options | Disallow irregular whitespace | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
no-misleading-character-class | @eslint/js | 2 | No options | Disallow characters which are made with multiple code points in character class syntax | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
no-mixed-spaces-and-tabs | @eslint/js | 2 | No options | Disallow mixed spaces and tabs for indentation | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
no-nonoctal-decimal-escape | @eslint/js | 2 | No options | Disallow `\8` and `\9` escape sequences in string literals | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
no-octal | @eslint/js | 2 | No options | Disallow octal literals | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
no-prototype-builtins | @eslint/js | 2 | No options | Disallow calling some `Object.prototype` methods directly on objects | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
no-regex-spaces | @eslint/js | 2 | No options | Disallow multiple spaces in regular expressions | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
no-self-assign | @eslint/js | 2 | No options | Disallow assignments where both sides are exactly the same | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
no-shadow-restricted-names | @eslint/js | 2 | No options | Disallow identifiers from shadowing restricted names | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
no-sparse-arrays | @eslint/js | 2 | No options | Disallow sparse arrays | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
no-unexpected-multiline | @eslint/js | 2 | No options | Disallow confusing multiline expressions | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
no-unsafe-finally | @eslint/js | 2 | No options | Disallow control flow statements in `finally` blocks | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
no-unsafe-optional-chaining | @eslint/js | 2 | No options | Disallow use of optional chaining in contexts where the `undefined` value is not allowed | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
no-unused-labels | @eslint/js | 2 | No options | Disallow unused labels | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
no-useless-backreference | @eslint/js | 2 | No options | Disallow useless backreferences in regular expressions | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
no-useless-catch | @eslint/js | 2 | No options | Disallow unnecessary `catch` clauses | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
no-useless-escape | @eslint/js | 2 | No options | Disallow unnecessary escape characters | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
no-with | @eslint/js | 2 | No options | Disallow `with` statements | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
require-yield | @eslint/js | 2 | No options | Require generator functions to contain `yield` | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
use-isnan | @eslint/js | 2 | No options | Require calls to `isNaN()` when checking for `NaN` | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
valid-typeof | @eslint/js | 2 | No options | Enforce comparing `typeof` expressions against valid strings | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
constructor-super | @eslint/js | 0 | No options | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} | |
getter-return | @eslint/js | 0 | No options | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} | |
no-const-assign | @eslint/js | 0 | No options | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} | |
no-dupe-args | @eslint/js | 0 | No options | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} | |
no-dupe-class-members | @eslint/js | 0 | No options | Disallow duplicate class members | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
no-dupe-keys | @eslint/js | 0 | No options | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} | |
no-func-assign | @eslint/js | 0 | No options | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} | |
no-import-assign | @eslint/js | 0 | No options | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} | |
no-new-symbol | @eslint/js | 0 | No options | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} | |
no-obj-calls | @eslint/js | 0 | No options | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} | |
no-setter-return | @eslint/js | 0 | No options | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} | |
no-this-before-super | @eslint/js | 0 | No options | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} | |
no-undef | @eslint/js | 0 | No options | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} | |
no-unreachable | @eslint/js | 0 | No options | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} | |
no-unsafe-negation | @eslint/js | 0 | No options | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} | |
no-var | @eslint/js | 2 | No options | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} | |
prefer-const | @eslint/js | 2 | No options | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} | |
prefer-rest-params | @eslint/js | 2 | No options | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} | |
prefer-spread | @eslint/js | 2 | No options | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} | |
@typescript-eslint/await-thenable | @typescript-eslint/eslint-plugin | 2 | No options | Disallow awaiting a value that is not a Thenable | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
@typescript-eslint/ban-ts-comment | @typescript-eslint/eslint-plugin | 0 | No options | Disallow `@ts-<directive>` comments or require descriptions after directives | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
@typescript-eslint/ban-types | @typescript-eslint/eslint-plugin | 2 | No options | Disallow certain types | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
@typescript-eslint/no-array-constructor | @typescript-eslint/eslint-plugin | 0 | No options | Disallow generic `Array` constructors | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
@typescript-eslint/no-base-to-string | @typescript-eslint/eslint-plugin | 2 | No options | Require `.toString()` to only be called on objects which provide useful information when stringified | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
@typescript-eslint/no-confusing-void-expression | @typescript-eslint/eslint-plugin | 2 | No options | Require expressions of type void to appear in statement position | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
@typescript-eslint/no-duplicate-enum-values | @typescript-eslint/eslint-plugin | 2 | No options | Disallow duplicate enum member values | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
@typescript-eslint/no-duplicate-type-constituents | @typescript-eslint/eslint-plugin | 2 | No options | Disallow duplicate constituents of union or intersection types | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
@typescript-eslint/no-dynamic-delete | @typescript-eslint/eslint-plugin | 2 | No options | Disallow using the `delete` operator on computed key expressions | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
@typescript-eslint/no-explicit-any | @typescript-eslint/eslint-plugin | 2 | No options | Disallow the `any` type | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
@typescript-eslint/no-extra-non-null-assertion | @typescript-eslint/eslint-plugin | 2 | No options | Disallow extra non-null assertions | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
@typescript-eslint/no-extraneous-class | @typescript-eslint/eslint-plugin | 2 | No options | Disallow classes used as namespaces | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
@typescript-eslint/no-floating-promises | @typescript-eslint/eslint-plugin | 2 | No options | Require Promise-like statements to be handled appropriately | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
@typescript-eslint/no-for-in-array | @typescript-eslint/eslint-plugin | 2 | No options | Disallow iterating over an array with a for-in loop | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
no-implied-eval | @eslint/js | 0 | No options | Disallow the use of `eval()`-like methods | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
@typescript-eslint/no-implied-eval | @typescript-eslint/eslint-plugin | 2 | No options | Disallow the use of `eval()`-like methods | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
@typescript-eslint/no-invalid-void-type | @typescript-eslint/eslint-plugin | 2 | No options | Disallow `void` type outside of generic or return types | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
no-loss-of-precision | @eslint/js | 0 | No options | Disallow literal numbers that lose precision | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
@typescript-eslint/no-loss-of-precision | @typescript-eslint/eslint-plugin | 2 | No options | Disallow literal numbers that lose precision | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
@typescript-eslint/no-meaningless-void-operator | @typescript-eslint/eslint-plugin | 2 | No options | Disallow the `void` operator except when used to discard a value | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
@typescript-eslint/no-misused-new | @typescript-eslint/eslint-plugin | 2 | No options | Enforce valid definition of `new` and `constructor` | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
@typescript-eslint/no-misused-promises | @typescript-eslint/eslint-plugin | 2 | No options | Disallow Promises in places not designed to handle them | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
@typescript-eslint/no-mixed-enums | @typescript-eslint/eslint-plugin | 2 | No options | Disallow enums from having both number and string members | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
@typescript-eslint/no-namespace | @typescript-eslint/eslint-plugin | 2 | No options | Disallow TypeScript namespaces | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
@typescript-eslint/no-non-null-asserted-nullish-coalescing | @typescript-eslint/eslint-plugin | 2 | No options | Disallow non-null assertions in the left operand of a nullish coalescing operator | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
@typescript-eslint/no-non-null-asserted-optional-chain | @typescript-eslint/eslint-plugin | 2 | No options | Disallow non-null assertions after an optional chain expression | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
@typescript-eslint/no-non-null-assertion | @typescript-eslint/eslint-plugin | 2 | No options | Disallow non-null assertions using the `!` postfix operator | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
@typescript-eslint/no-redundant-type-constituents | @typescript-eslint/eslint-plugin | 2 | No options | Disallow members of unions and intersections that do nothing or override type information | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
@typescript-eslint/no-this-alias | @typescript-eslint/eslint-plugin | 2 | No options | Disallow aliasing `this` | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
no-throw-literal | @eslint/js | 0 | No options | Disallow throwing literals as exceptions | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
@typescript-eslint/no-throw-literal | @typescript-eslint/eslint-plugin | 2 | No options | Disallow throwing literals as exceptions | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
@typescript-eslint/no-unnecessary-boolean-literal-compare | @typescript-eslint/eslint-plugin | 2 | No options | Disallow unnecessary equality comparisons against boolean literals | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
@typescript-eslint/no-unnecessary-condition | @typescript-eslint/eslint-plugin | 2 | No options | Disallow conditionals where the type is always truthy or always falsy | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
@typescript-eslint/no-unnecessary-type-arguments | @typescript-eslint/eslint-plugin | 2 | No options | Disallow type arguments that are equal to the default | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
@typescript-eslint/no-unnecessary-type-assertion | @typescript-eslint/eslint-plugin | 2 | No options | Disallow type assertions that do not change the type of an expression | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
@typescript-eslint/no-unnecessary-type-constraint | @typescript-eslint/eslint-plugin | 2 | No options | Disallow unnecessary constraints on generic types | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
@typescript-eslint/no-unsafe-argument | @typescript-eslint/eslint-plugin | 2 | No options | Disallow calling a function with a value with type `any` | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
@typescript-eslint/no-unsafe-assignment | @typescript-eslint/eslint-plugin | 0 | No options | Disallow assigning a value with type `any` to variables and properties | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
@typescript-eslint/no-unsafe-call | @typescript-eslint/eslint-plugin | 2 | No options | Disallow calling a value with type `any` | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
@typescript-eslint/no-unsafe-declaration-merging | @typescript-eslint/eslint-plugin | 2 | No options | Disallow unsafe declaration merging | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
@typescript-eslint/no-unsafe-enum-comparison | @typescript-eslint/eslint-plugin | 2 | No options | Disallow comparing an enum value with a non-enum value | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
@typescript-eslint/no-unsafe-member-access | @typescript-eslint/eslint-plugin | 2 | No options | Disallow member access on a value with type `any` | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
@typescript-eslint/no-unsafe-return | @typescript-eslint/eslint-plugin | 2 | No options | Disallow returning a value with type `any` from a function | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
no-unused-vars | @eslint/js | 0 | No options | Disallow unused variables | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
@typescript-eslint/no-unused-vars | @typescript-eslint/eslint-plugin | 2 | No options | Disallow unused variables | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
no-useless-constructor | @eslint/js | 0 | No options | Disallow unnecessary constructors | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
@typescript-eslint/no-useless-constructor | @typescript-eslint/eslint-plugin | 2 | No options | Disallow unnecessary constructors | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
@typescript-eslint/no-var-requires | @typescript-eslint/eslint-plugin | 2 | No options | Disallow `require` statements except in import statements | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
@typescript-eslint/prefer-as-const | @typescript-eslint/eslint-plugin | 2 | No options | Enforce the use of `as const` over literal type | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
@typescript-eslint/prefer-includes | @typescript-eslint/eslint-plugin | 2 | No options | Enforce `includes` method over `indexOf` method | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
@typescript-eslint/prefer-literal-enum-member | @typescript-eslint/eslint-plugin | 2 | No options | Require all enum members to be literal values | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
@typescript-eslint/prefer-reduce-type-parameter | @typescript-eslint/eslint-plugin | 2 | No options | Enforce using type parameter when calling `Array#reduce` instead of casting | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
@typescript-eslint/prefer-return-this-type | @typescript-eslint/eslint-plugin | 2 | No options | Enforce that `this` is used when only `this` type is returned | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
@typescript-eslint/prefer-ts-expect-error | @typescript-eslint/eslint-plugin | 2 | No options | Enforce using `@ts-expect-error` over `@ts-ignore` | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
require-await | @eslint/js | 0 | No options | Disallow async functions which have no `await` expression | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
@typescript-eslint/require-await | @typescript-eslint/eslint-plugin | 2 | No options | Disallow async functions which have no `await` expression | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
@typescript-eslint/restrict-plus-operands | @typescript-eslint/eslint-plugin | 2 | No options | Require both operands of addition to be the same type and be `bigint`, `number`, or `string` | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
@typescript-eslint/restrict-template-expressions | @typescript-eslint/eslint-plugin | 2 | No options | Enforce template literal expressions to be of `string` type | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
@typescript-eslint/triple-slash-reference | @typescript-eslint/eslint-plugin | 2 | No options | Disallow certain triple slash directives in favor of ES6-style import declarations | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
@typescript-eslint/unbound-method | @typescript-eslint/eslint-plugin | 2 | No options | Enforce unbound methods are called with their expected scope | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
@typescript-eslint/unified-signatures | @typescript-eslint/eslint-plugin | 2 | No options | Disallow two overloads that could be unified into one with a union or an optional/rest parameter | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
@typescript-eslint/no-use-before-define | @typescript-eslint/eslint-plugin | 2 | No options | Disallow the use of variables before they are defined | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
@typescript-eslint/no-inferrable-types | @typescript-eslint/eslint-plugin | 2 | No options | Disallow explicit type declarations for variables or parameters initialized to a number, string, or boolean | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
@typescript-eslint/no-loop-func | @typescript-eslint/eslint-plugin | 2 | No options | Disallow function declarations that contain unsafe references inside loop statements | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
@typescript-eslint/prefer-function-type | @typescript-eslint/eslint-plugin | 2 | No options | Enforce using function types instead of interfaces with call signatures | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
@typescript-eslint/prefer-string-starts-ends-with | @typescript-eslint/eslint-plugin | 2 | No options | Enforce using `String#startsWith` and `String#endsWith` over other equivalent methods of checking substrings | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
@typescript-eslint/return-await | @typescript-eslint/eslint-plugin | 2 | No options | Enforce consistent returning of awaited values | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
@typescript-eslint/consistent-type-definitions | @typescript-eslint/eslint-plugin | 2 | No options | Enforce type definitions to consistently use either `interface` or `type` | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
@typescript-eslint/consistent-type-assertions | @typescript-eslint/eslint-plugin | 2 | No options | Enforce consistent usage of type assertions | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
@typescript-eslint/consistent-type-imports | @typescript-eslint/eslint-plugin | 2 | [{"fixStyle":"inline-type-imports"}] | Enforce consistent usage of type imports | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
@typescript-eslint/consistent-type-exports | @typescript-eslint/eslint-plugin | 2 | [{"fixMixedExportsWithInlineTypeSpecifier":true}] | Enforce consistent usage of type exports | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
@typescript-eslint/explicit-module-boundary-types | @typescript-eslint/eslint-plugin | 2 | No options | Require explicit return and argument types on exported functions' and classes' public class methods | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
@typescript-eslint/switch-exhaustiveness-check | @typescript-eslint/eslint-plugin | 2 | No options | Require switch-case statements to be exhaustive with union type | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
@typescript-eslint/method-signature-style | @typescript-eslint/eslint-plugin | 2 | No options | Enforce using a particular method signature syntax | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
@typescript-eslint/prefer-nullish-coalescing | @typescript-eslint/eslint-plugin | 2 | [{"ignorePrimitives":{"string":true}}] | Enforce using the nullish coalescing operator instead of logical assignments or chaining | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
@typescript-eslint/no-unused-expressions | @typescript-eslint/eslint-plugin | 2 | [{"allowShortCircuit":true,"allowTernary":true,"allowTaggedTemplates":true,"enforceForJSX":true}] | Disallow unused expressions | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
@typescript-eslint/array-type | @typescript-eslint/eslint-plugin | 2 | No options | Require consistently using either `T[]` or `Array<T>` for arrays | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
@typescript-eslint/no-empty-function | @typescript-eslint/eslint-plugin | 2 | No options | Disallow empty functions | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
@typescript-eslint/prefer-optional-chain | @typescript-eslint/eslint-plugin | 2 | No options | Enforce using concise optional chain expressions instead of chained logical ands, negated logical ors, or empty objects | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
@typescript-eslint/dot-notation | @typescript-eslint/eslint-plugin | 2 | No options | Enforce dot notation whenever possible | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
@typescript-eslint/no-import-type-side-effects | @typescript-eslint/eslint-plugin | 2 | No options | Enforce the use of top-level import type qualifier when an import only has specifiers with inline type qualifiers | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
@typescript-eslint/default-param-last | @typescript-eslint/eslint-plugin | 2 | No options | Enforce default parameters to be last | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
@typescript-eslint/no-shadow | @typescript-eslint/eslint-plugin | 2 | [{"hoist":"all","allow":["resolve","reject","done","next","err","error"],"ignoreTypeValueShadow":true,"ignoreFunctionTypeParameterNameValueShadow":true}] | Disallow variable declarations from shadowing variables declared in the outer scope | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
@typescript-eslint/naming-convention | @typescript-eslint/eslint-plugin | 2 | [{"selector":"default","format":["camelCase"],"leadingUnderscore":"forbid","trailingUnderscore":"forbid"},{"selector":"variable","format":["camelCase","UPPER_CASE"],"modifiers":["const"],"types":["boolean","string","number"],"leadingUnderscore":"forbid","trailingUnderscore":"forbid"},{"selector":"objectLiteralProperty","format":null,"leadingUnderscore":"allowSingleOrDouble","trailingUnderscore":"forbid"},{"selector":"typeLike","format":["PascalCase"],"leadingUnderscore":"forbid","trailingUnderscore":"forbid"},{"selector":"variable","types":["boolean"],"format":["camelCase"],"prefix":["is","has","should","can"],"leadingUnderscore":"forbid","trailingUnderscore":"forbid"},{"selector":"variable","modifiers":["destructured"],"format":null},{"selector":"typeProperty","format":null}] | Enforce naming conventions for everything across a codebase | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
tsdoc/syntax | eslint-plugin-tsdoc | 2 | No options | Validates that TypeScript documentation comments conform to the TSDoc standard | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
func-style | @eslint/js | 2 | No options | Enforce the consistent use of either `function` declarations or expressions | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
no-promise-executor-return | @eslint/js | 2 | No options | Disallow returning values from Promise executor functions | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
no-unreachable-loop | @eslint/js | 2 | No options | Disallow loops with a body that allows only one iteration | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
no-caller | @eslint/js | 2 | No options | Disallow the use of `arguments.caller` or `arguments.callee` | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
no-restricted-imports | @eslint/js | 2 | [{"paths":["prop-types"]}] | Disallow specified modules when loaded by `import` | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
no-extend-native | @eslint/js | 2 | No options | Disallow extending native types | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
no-extra-bind | @eslint/js | 2 | No options | Disallow unnecessary calls to `.bind()` | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
no-extra-label | @eslint/js | 2 | No options | Disallow unnecessary labels | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
no-implicit-coercion | @eslint/js | 2 | No options | Disallow shorthand type conversions | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
no-multi-str | @eslint/js | 2 | No options | Disallow multiline strings | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
no-negated-condition | @eslint/js | 2 | No options | Disallow negated conditions | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
no-new-wrappers | @eslint/js | 2 | No options | Disallow `new` operators with the `String`, `Number`, and `Boolean` objects | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
no-new-object | @eslint/js | 2 | No options | Disallow `Object` constructors | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
no-restricted-properties | @eslint/js | 2 | [{"object":"global","property":"isFinite","message":"Please use Number.isFinite instead"},{"object":"self","property":"isFinite","message":"Please use Number.isFinite instead"},{"object":"window","property":"isFinite","message":"Please use Number.isFinite instead"},{"object":"global","property":"isNaN","message":"Please use Number.isNaN instead"},{"object":"self","property":"isNaN","message":"Please use Number.isNaN instead"},{"object":"window","property":"isNaN","message":"Please use Number.isNaN instead"}] | Disallow certain properties on certain objects | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
strict | @eslint/js | 2 | ["never"] | Require or disallow strict mode directives | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
no-octal-escape | @eslint/js | 2 | No options | Disallow octal escape sequences in string literals | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
no-proto | @eslint/js | 2 | No options | Disallow the use of the `__proto__` property | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
no-sequences | @eslint/js | 2 | [{"allowInParentheses":false}] | Disallow comma operators | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
no-unmodified-loop-condition | @eslint/js | 2 | No options | Disallow unmodified loop conditions | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
no-void | @eslint/js | 2 | No options | Disallow `void` operators | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
max-statements-per-line | @eslint/js | 2 | [{"max":1}] | Enforce a maximum number of statements allowed per line | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
no-array-constructor | @eslint/js | 2 | No options | Disallow `Array` constructors | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
no-multi-assign | @eslint/js | 2 | No options | Disallow use of chained assignment expressions | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
no-plusplus | @eslint/js | 2 | No options | Disallow the unary operators `++` and `--` | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
prefer-destructuring | @eslint/js | 2 | [{"VariableDeclarator":{"array":false,"object":true},"AssignmentExpression":{"array":false,"object":false}},{"enforceForRenamedProperties":false}] | Require destructuring from arrays and/or objects | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
no-useless-call | @eslint/js | 2 | No options | Disallow unnecessary calls to `.call()` and `.apply()` | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
prefer-object-has-own | @eslint/js | 2 | No options | Disallow use of `Object.prototype.hasOwnProperty.call()` and prefer use of `Object.hasOwn()` | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
no-constant-binary-expression | @eslint/js | 2 | No options | Disallow expressions where the operation doesn't affect the value | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
no-lone-blocks | @eslint/js | 2 | No options | Disallow unnecessary nested blocks | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
no-eval | @eslint/js | 2 | No options | Disallow the use of `eval()` | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
no-return-assign | @eslint/js | 2 | ["always"] | Disallow assignment operators in `return` statements | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
no-else-return | @eslint/js | 2 | [{"allowElseIf":false}] | Disallow `else` blocks after `return` statements in `if` statements | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
prefer-template | @eslint/js | 2 | No options | Require template literals instead of string concatenation | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
operator-assignment | @eslint/js | 2 | ["never"] | Require or disallow assignment operator shorthand where possible | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
logical-assignment-operators | @eslint/js | 2 | ["never"] | Require or disallow logical assignment operator shorthand | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
padding-line-between-statements | @eslint/js | 2 | [{"blankLine":"always","prev":["const","let"],"next":"*"},{"blankLine":"any","prev":["const","let"],"next":["const","let"]},{"blankLine":"always","prev":"*","next":"return"}] | Require or disallow padding lines between statements | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
prefer-object-spread | @eslint/js | 2 | No options | Disallow using Object.assign with an object literal as the first argument and prefer the use of object spread instead | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
no-param-reassign | @eslint/js | 2 | [{"props":true}] | Disallow reassigning `function` parameters | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
no-redeclare | @eslint/js | 2 | No options | Disallow variable redeclaration | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
array-callback-return | @eslint/js | 2 | [{"allowImplicit":true,"checkForEach":true}] | Enforce `return` statements in callbacks of array methods | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
object-shorthand | @eslint/js | 2 | No options | Require or disallow method and property shorthand syntax for object literals | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
no-unneeded-ternary | @eslint/js | 2 | [{"defaultAssignment":false}] | Disallow ternary operators when simpler alternatives exist | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
require-atomic-updates | @eslint/js | 2 | No options | Disallow assignments that can lead to race conditions due to usage of `await` or `yield` | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
no-nested-ternary | @eslint/js | 2 | No options | Disallow nested ternary expressions | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
no-console | @eslint/js | 2 | [{"allow":["warn","error","debug"]}] | Disallow the use of `console` | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
eqeqeq | @eslint/js | 2 | No options | Require the use of `===` and `!==` | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
prefer-arrow-callback | @eslint/js | 2 | No options | Require using arrow functions for callbacks | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
arrow-body-style | @eslint/js | 2 | ["as-needed"] | Require braces around arrow function bodies | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
no-restricted-syntax | @eslint/js | 2 | [{"selector":"LabeledStatement","message":"Labels are a form of GOTO; using them makes code confusing and hard to maintain and understand."},{"selector":"ForInStatement","message":"for..in loops iterate over the entire prototype chain, which is virtually never what you want. Use Object.{keys,values,entries}, and iterate over the resulting array."},{"selector":"Identifier[name='Reflect']","message":"Avoid the Reflect API. It is a very low-level feature that has only rare and specific use-cases if building complex and hacky libraries. There is no need to use this feature for any kind of normal development."},{"selector":"BinaryExpression[operator='in']","message":"Avoid the 'in' operator. In real-world scenarios there is rarely a need for this operator. For most usecases, basic property access is all you need. For every other case, use the Object.hasOwn() or the Object.prototype.hasOwnProperty() method. In the really niche cases where you actually need to check for the existence of a property both in the object itself AND in it's prototype chain, feel free to disable this rule with the inline eslint-disable syntax."},{"selector":"PropertyDefinition[accessibility='public']","message":"Avoid access modifiers. In Javascript modules there is no need to limit developer access to properties."},{"selector":"PropertyDefinition[accessibility='protected']","message":"Avoid access modifiers. In Javascript modules there is no need to limit developer access to properties."},{"selector":"PropertyDefinition[accessibility='private']","message":"Avoid access modifiers. In Javascript modules there is no need to limit developer access to properties."},{"selector":"Identifier[name='PropTypes']","message":"Avoid PropTypes. Use Typescript instead."},{"selector":"Identifier[name='propTypes']","message":"Avoid PropTypes. Use Typescript instead."},{"selector":"TSEnumDeclaration","message":"Avoid enums."}] | Disallow specified syntax | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
no-return-await | @eslint/js | 0 | No options | Disallow unnecessary `return await` | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
no-use-before-define | @eslint/js | 0 | No options | Disallow the use of variables before they are defined | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
no-unused-expressions | @eslint/js | 0 | No options | Disallow unused expressions | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
no-empty-function | @eslint/js | 0 | No options | Disallow empty functions | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
dot-notation | @eslint/js | 0 | No options | Enforce dot notation whenever possible | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
no-shadow | @eslint/js | 0 | No options | Disallow variable declarations from shadowing variables declared in the outer scope | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
default-param-last | @eslint/js | 0 | No options | Enforce default parameters to be last | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
fp/no-arguments | eslint-plugin-fp | 2 | No options | Forbid the use of `arguments`. | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
fp/no-class | eslint-plugin-fp | 2 | No options | Forbid the use of `class`. | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
fp/no-delete | eslint-plugin-fp | 2 | No options | Forbid the use of `delete`. | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
fp/no-proxy | eslint-plugin-fp | 2 | No options | Forbid the use of `Proxy`. | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
@regru/prefer-early-return/prefer-early-return | @regru/eslint-plugin-prefer-early-return | 2 | [{"maximumStatements":1}] | Prefer early returns over full-body conditional wrapping in function declarations. | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
unicorn/better-regex | eslint-plugin-unicorn | 2 | No options | Improve regexes by making them shorter, consistent, and safer. | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
unicorn/explicit-length-check | eslint-plugin-unicorn | 2 | No options | Enforce explicitly comparing the `length` or `size` property of a value. | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
unicorn/consistent-function-scoping | eslint-plugin-unicorn | 2 | No options | Move function definitions to the highest possible scope. | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
unicorn/prefer-default-parameters | eslint-plugin-unicorn | 2 | No options | Prefer default parameters over reassignment. | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
unicorn/no-array-push-push | eslint-plugin-unicorn | 2 | No options | Enforce combining multiple `Array#push()` into one call. | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
unicorn/prefer-array-index-of | eslint-plugin-unicorn | 2 | No options | Prefer `Array#{indexOf,lastIndexOf}()` over `Array#{findIndex,findLastIndex}()` when looking for the index of an item. | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
unicorn/prefer-array-flat-map | eslint-plugin-unicorn | 2 | No options | Prefer `.flatMap(โฆ)` over `.map(โฆ).flat()`. | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
unicorn/prefer-array-some | eslint-plugin-unicorn | 2 | No options | Prefer `.some(โฆ)` over `.filter(โฆ).length` check and `.{find,findLast}(โฆ)`. | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
unicorn/prefer-array-find | eslint-plugin-unicorn | 2 | No options | Prefer `.find(โฆ)` and `.findLast(โฆ)` over the first or last element from `.filter(โฆ)`. | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
unicorn/prefer-array-flat | eslint-plugin-unicorn | 2 | No options | Prefer `Array#flat()` over legacy techniques to flatten arrays. | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
unicorn/prefer-includes | eslint-plugin-unicorn | 2 | No options | Prefer `.includes()` over `.indexOf()` and `Array#some()` when checking for existence or non-existence. | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
unicorn/prefer-top-level-await | eslint-plugin-unicorn | 2 | No options | Prefer top-level await over top-level promises and async function calls. | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
unicorn/prefer-spread | eslint-plugin-unicorn | 2 | No options | Prefer the spread operator over `Array.from(โฆ)`, `Array#concat(โฆ)`, `Array#{slice,toSpliced}()` and `String#split('')`. | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
unicorn/no-useless-spread | eslint-plugin-unicorn | 2 | No options | Disallow unnecessary spread. | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
unicorn/no-for-loop | eslint-plugin-unicorn | 2 | No options | Do not use a `for` loop that can be replaced with a `for-of` loop. | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
unicorn/prefer-set-size | eslint-plugin-unicorn | 2 | No options | Prefer using `Set#size` instead of `Array#length`. | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
unicorn/prefer-type-error | eslint-plugin-unicorn | 2 | No options | Enforce throwing `TypeError` in type checking conditions. | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
unicorn/prefer-object-from-entries | eslint-plugin-unicorn | 2 | No options | Prefer using `Object.fromEntries(โฆ)` to transform a list of key-value pairs into an object. | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
unicorn/prefer-native-coercion-functions | eslint-plugin-unicorn | 2 | No options | Prefer using `String`, `Number`, `BigInt`, `Boolean`, and `Symbol` directly. | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
unicorn/prefer-logical-operator-over-ternary | eslint-plugin-unicorn | 2 | No options | Prefer using a logical operator over a ternary. | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
unicorn/prefer-event-target | eslint-plugin-unicorn | 2 | No options | Prefer `EventTarget` over `EventEmitter`. | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
unicorn/no-await-expression-member | eslint-plugin-unicorn | 2 | No options | Disallow member access from await expression. | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
unicorn/no-new-array | eslint-plugin-unicorn | 2 | No options | Disallow `new Array()`. | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
unicorn/throw-new-error | eslint-plugin-unicorn | 2 | No options | Require `new` when throwing an error. | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
unicorn/no-array-reduce | eslint-plugin-unicorn | 2 | No options | Disallow `Array#reduce()` and `Array#reduceRight()`. | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
unicorn/no-useless-length-check | eslint-plugin-unicorn | 2 | No options | Disallow useless array length check. | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
unicorn/prefer-prototype-methods | eslint-plugin-unicorn | 2 | No options | Prefer borrowing methods from the prototype instead of the instance. | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
unicorn/prefer-date-now | eslint-plugin-unicorn | 2 | No options | Prefer `Date.now()` to get the number of milliseconds since the Unix Epoch. | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
unicorn/prefer-export-from | eslint-plugin-unicorn | 2 | [{"ignoreUsedVariables":true}] | Prefer `exportโฆfrom` when re-exporting. | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
unicorn/no-new-buffer | eslint-plugin-unicorn | 2 | No options | Enforce the use of `Buffer.from()` and `Buffer.alloc()` instead of the deprecated `new Buffer()`. | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
unicorn/prefer-query-selector | eslint-plugin-unicorn | 2 | No options | Prefer `.querySelector()` over `.getElementById()`, `.querySelectorAll()` over `.getElementsByClassName()` and `.getElementsByTagName()`. | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
unicorn/prefer-string-replace-all | eslint-plugin-unicorn | 2 | No options | Prefer `String#replaceAll()` over regex searches with the global flag. | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
unicorn/prefer-switch | eslint-plugin-unicorn | 2 | [{"emptyDefaultCase":"do-nothing-comment"}] | Prefer `switch` over multiple `else-if`. | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
unicorn/switch-case-braces | eslint-plugin-unicorn | 2 | No options | Enforce consistent brace style for `case` clauses. | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
unicorn/catch-error-name | eslint-plugin-unicorn | 2 | No options | Enforce a specific parameter name in catch clauses. | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
sonarjs/cognitive-complexity | eslint-plugin-sonarjs | 0 | No options | Cognitive Complexity of functions should not be too high | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
sonarjs/elseif-without-else | eslint-plugin-sonarjs | 0 | No options | "if ... else if" constructs should end with "else" clauses | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
sonarjs/max-switch-cases | eslint-plugin-sonarjs | 2 | No options | "switch" statements should not have too many "case" clauses | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
sonarjs/no-all-duplicated-branches | eslint-plugin-sonarjs | 2 | No options | All branches in a conditional structure should not have exactly the same implementation | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
sonarjs/no-collapsible-if | eslint-plugin-sonarjs | 2 | No options | Collapsible "if" statements should be merged | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
sonarjs/no-collection-size-mischeck | eslint-plugin-sonarjs | 2 | No options | Collection sizes and array length comparisons should make sense | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
sonarjs/no-duplicate-string | eslint-plugin-sonarjs | 2 | No options | String literals should not be duplicated | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
sonarjs/no-duplicated-branches | eslint-plugin-sonarjs | 2 | No options | Two branches in a conditional structure should not have exactly the same implementation | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
sonarjs/no-element-overwrite | eslint-plugin-sonarjs | 2 | No options | Collection elements should not be replaced unconditionally | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
sonarjs/no-empty-collection | eslint-plugin-sonarjs | 2 | No options | Empty collections should not be accessed or iterated | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
sonarjs/no-extra-arguments | eslint-plugin-sonarjs | 2 | No options | Function calls should not pass extra arguments | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
sonarjs/no-gratuitous-expressions | eslint-plugin-sonarjs | 2 | No options | Boolean expressions should not be gratuitous | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
sonarjs/no-identical-conditions | eslint-plugin-sonarjs | 2 | No options | Related "if-else-if" and "switch-case" statements should not have the same condition | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
sonarjs/no-identical-expressions | eslint-plugin-sonarjs | 2 | No options | Identical expressions should not be used on both sides of a binary operator | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
sonarjs/no-identical-functions | eslint-plugin-sonarjs | 2 | No options | Functions should not have identical implementations | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
sonarjs/no-ignored-return | eslint-plugin-sonarjs | 2 | No options | Return values from functions without side effects should not be ignored | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
sonarjs/no-inverted-boolean-check | eslint-plugin-sonarjs | 0 | No options | Boolean checks should not be inverted | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
sonarjs/no-nested-switch | eslint-plugin-sonarjs | 2 | No options | "switch" statements should not be nested | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
sonarjs/no-nested-template-literals | eslint-plugin-sonarjs | 2 | No options | Template literals should not be nested | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
sonarjs/no-one-iteration-loop | eslint-plugin-sonarjs | 2 | No options | Loops with at most one iteration should be refactored | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
sonarjs/no-redundant-boolean | eslint-plugin-sonarjs | 2 | No options | Boolean literals should not be redundant | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
sonarjs/no-redundant-jump | eslint-plugin-sonarjs | 2 | No options | Jump statements should not be redundant | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
sonarjs/no-same-line-conditional | eslint-plugin-sonarjs | 2 | No options | Conditionals should start on new lines | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
sonarjs/no-small-switch | eslint-plugin-sonarjs | 2 | No options | "switch" statements should have at least 3 "case" clauses | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
sonarjs/no-unused-collection | eslint-plugin-sonarjs | 2 | No options | Collection and array contents should be used | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
sonarjs/no-use-of-empty-return-value | eslint-plugin-sonarjs | 2 | No options | The output of functions that don't return anything should not be used | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
sonarjs/no-useless-catch | eslint-plugin-sonarjs | 2 | No options | "catch" clauses should do more than rethrow | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
sonarjs/non-existent-operator | eslint-plugin-sonarjs | 2 | No options | Non-existent operators "=+", "=-" and "=!" should not be used | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
sonarjs/prefer-immediate-return | eslint-plugin-sonarjs | 0 | No options | Local variables should not be declared and then immediately returned or thrown | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
sonarjs/prefer-object-literal | eslint-plugin-sonarjs | 2 | No options | Object literal syntax should be used | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
sonarjs/prefer-single-boolean-return | eslint-plugin-sonarjs | 2 | No options | Return of boolean expressions should not be wrapped into an "if-then-else" statement | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
sonarjs/prefer-while | eslint-plugin-sonarjs | 2 | No options | A "while" loop should be used instead of a "for" loop | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
import/named | eslint-plugin-import | 0 | No options | Ensure named imports correspond to a named export in the remote file. | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
import/namespace | eslint-plugin-import | 0 | No options | Ensure imported namespaces contain dereferenced properties as they are dereferenced. | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
import/default | eslint-plugin-import | 0 | No options | Ensure a default export is present, given a default import. | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
import/no-named-as-default-member | eslint-plugin-import | 0 | No options | Forbid use of exported name as property of default export. | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
import/no-unresolved | eslint-plugin-import | 2 | [{"commonjs":true,"caseSensitiveStrict":true}] | Ensure imports point to a file/module that can be resolved. | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
import/first | eslint-plugin-import | 2 | No options | Ensure all imports appear before other statements. | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
import/order | eslint-plugin-import | 2 | [{"newlines-between":"never"}] | Enforce a convention in module import order. | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
import/no-default-export | eslint-plugin-import | 2 | No options | Forbid default exports. | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
import/no-named-as-default | eslint-plugin-import | 2 | No options | Forbid use of exported name as identifier of default export. | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
import/no-duplicates | eslint-plugin-import | 2 | [{"prefer-inline":true}] | Forbid repeated import of the same module in multiple places. | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
import/newline-after-import | eslint-plugin-import | 2 | [{"considerComments":true}] | Enforce a newline after import statements. | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
import/no-useless-path-segments | eslint-plugin-import | 2 | [{"noUselessIndex":true}] | Forbid unnecessary path segments in import and require statements. | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
import/no-anonymous-default-export | eslint-plugin-import | 0 | No options | **/*.stories.@(ts|tsx|js|jsx|mjs|cjs), **/*.story.@(ts|tsx|js|jsx|mjs|cjs) | |
storybook/await-interactions | eslint-plugin-storybook | 2 | No options | Interactions should be awaited | **/*.stories.@(ts|tsx|js|jsx|mjs|cjs), **/*.story.@(ts|tsx|js|jsx|mjs|cjs) |
storybook/context-in-play-function | eslint-plugin-storybook | 2 | No options | Pass a context when invoking play function of another story | **/*.stories.@(ts|tsx|js|jsx|mjs|cjs), **/*.story.@(ts|tsx|js|jsx|mjs|cjs) |
storybook/default-exports | eslint-plugin-storybook | 2 | No options | Story files should have a default export | **/*.stories.@(ts|tsx|js|jsx|mjs|cjs), **/*.story.@(ts|tsx|js|jsx|mjs|cjs) |
storybook/hierarchy-separator | eslint-plugin-storybook | 1 | No options | Deprecated hierarchy separator in title property | **/*.stories.@(ts|tsx|js|jsx|mjs|cjs), **/*.story.@(ts|tsx|js|jsx|mjs|cjs) |
storybook/no-redundant-story-name | eslint-plugin-storybook | 1 | No options | A story should not have a redundant name property | **/*.stories.@(ts|tsx|js|jsx|mjs|cjs), **/*.story.@(ts|tsx|js|jsx|mjs|cjs) |
storybook/prefer-pascal-case | eslint-plugin-storybook | 1 | No options | Stories should use PascalCase | **/*.stories.@(ts|tsx|js|jsx|mjs|cjs), **/*.story.@(ts|tsx|js|jsx|mjs|cjs) |
storybook/story-exports | eslint-plugin-storybook | 2 | No options | A story file must contain at least one story export | **/*.stories.@(ts|tsx|js|jsx|mjs|cjs), **/*.story.@(ts|tsx|js|jsx|mjs|cjs) |
storybook/use-storybook-expect | eslint-plugin-storybook | 2 | No options | Use expect from `@storybook/jest` | **/*.stories.@(ts|tsx|js|jsx|mjs|cjs), **/*.story.@(ts|tsx|js|jsx|mjs|cjs) |
storybook/use-storybook-testing-library | eslint-plugin-storybook | 2 | No options | Do not use testing-library directly on stories | **/*.stories.@(ts|tsx|js|jsx|mjs|cjs), **/*.story.@(ts|tsx|js|jsx|mjs|cjs) |
storybook/csf-component | eslint-plugin-storybook | 1 | No options | The component property should be set | **/*.stories.@(ts|tsx|js|jsx|mjs|cjs), **/*.story.@(ts|tsx|js|jsx|mjs|cjs) |
storybook/no-stories-of | eslint-plugin-storybook | 2 | No options | storiesOf is deprecated and should not be used | **/*.stories.@(ts|tsx|js|jsx|mjs|cjs), **/*.story.@(ts|tsx|js|jsx|mjs|cjs) |
storybook/no-title-property-in-meta | eslint-plugin-storybook | 2 | No options | Do not define a title in meta | **/*.stories.@(ts|tsx|js|jsx|mjs|cjs), **/*.story.@(ts|tsx|js|jsx|mjs|cjs) |
import/no-default-export | eslint-plugin-import | 0 | No options | **/*.stories.@(ts|tsx|js|jsx|mjs|cjs), **/*.story.@(ts|tsx|js|jsx|mjs|cjs) | |
storybook/no-uninstalled-addons | eslint-plugin-storybook | 2 | No options | This rule identifies storybook addons that are invalid because they are either not installed or contain a typo in their name. | **/.storybook/main.@(js|cjs|mjs|ts) |
jsdoc/require-description | eslint-plugin-jsdoc | 2 | No options | Requires that all functions have a description. | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
jsdoc/require-description-complete-sentence | eslint-plugin-jsdoc | 2 | No options | Requires that block description, explicit `@description`, and `@param`/`@returns` tag descriptions are written in complete sentences. | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
jsdoc/require-hyphen-before-param-description | eslint-plugin-jsdoc | 2 | No options | Requires a hyphen before the `@param` description. | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
jsdoc/require-returns-description | eslint-plugin-jsdoc | 2 | No options | Requires that the `@returns` tag has a `description` value. | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
jsdoc/require-param-name | eslint-plugin-jsdoc | 2 | No options | Requires that all function parameters have names. | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
jsdoc/require-param-description | eslint-plugin-jsdoc | 2 | No options | Requires that each `@param` tag has a `description` value. | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
jsdoc/require-asterisk-prefix | eslint-plugin-jsdoc | 2 | No options | Requires that each JSDoc line starts with an `*`. | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
jsdoc/no-types | eslint-plugin-jsdoc | 2 | No options | This rule reports types being used on `@param` or `@returns`. | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
jsdoc/no-multi-asterisks | eslint-plugin-jsdoc | 2 | No options | https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/no-multi-asterisks.md#repos-sticky-header | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
jsdoc/no-defaults | eslint-plugin-jsdoc | 2 | No options | This rule reports defaults being used on the relevant portion of `@param` or `@default`. | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
jsdoc/no-blank-block-descriptions | eslint-plugin-jsdoc | 2 | No options | Detects and removes extra lines of a blank block description | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
jsdoc/check-indentation | eslint-plugin-jsdoc | 2 | No options | Reports invalid padding inside JSDoc blocks. | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
jsdoc/check-tag-names | eslint-plugin-jsdoc | 2 | [{"jsxTags":true}] | Reports invalid block tag names. | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
jsdoc/check-param-names | eslint-plugin-jsdoc | 2 | [{"checkDestructured":false,"enableFixer":false}] | Ensures that parameter names in JSDoc match those in the function declaration. | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
jsdoc/sort-tags | eslint-plugin-jsdoc | 2 | No options | Sorts tags by a specified sequence according to tag name. | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
jsdoc/tag-lines | eslint-plugin-jsdoc | 2 | ["any",{"startLines":1}] | Enforces lines (or no lines) between tags. | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
astro/no-conflict-set-directives | eslint-plugin-astro | 2 | No options | disallow conflicting set directives and child contents | **/*.astro |
astro/no-deprecated-astro-canonicalurl | eslint-plugin-astro | 2 | No options | disallow using deprecated `Astro.canonicalURL` | **/*.astro |
astro/no-deprecated-astro-fetchcontent | eslint-plugin-astro | 2 | No options | disallow using deprecated `Astro.fetchContent()` | **/*.astro |
astro/no-deprecated-astro-resolve | eslint-plugin-astro | 2 | No options | disallow using deprecated `Astro.resolve()` | **/*.astro |
astro/no-deprecated-getentrybyslug | eslint-plugin-astro | 2 | No options | disallow using deprecated `getEntryBySlug()` | **/*.astro |
astro/no-unused-define-vars-in-style | eslint-plugin-astro | 2 | No options | disallow unused `define:vars={...}` in `style` tag | **/*.astro |
astro/valid-compile | eslint-plugin-astro | 0 | No options | disallow warnings when compiling. | **/*.astro |
astro/jsx-a11y/alt-text | eslint-plugin-astro | 2 | No options | **/*.astro | |
astro/jsx-a11y/anchor-ambiguous-text | eslint-plugin-astro | 0 | No options | **/*.astro | |
astro/jsx-a11y/anchor-has-content | eslint-plugin-astro | 2 | No options | **/*.astro | |
astro/jsx-a11y/anchor-is-valid | eslint-plugin-astro | 2 | No options | **/*.astro | |
astro/jsx-a11y/aria-activedescendant-has-tabindex | eslint-plugin-astro | 2 | No options | **/*.astro | |
astro/jsx-a11y/aria-props | eslint-plugin-astro | 2 | No options | **/*.astro | |
astro/jsx-a11y/aria-proptypes | eslint-plugin-astro | 2 | No options | **/*.astro | |
astro/jsx-a11y/aria-role | eslint-plugin-astro | 2 | No options | **/*.astro | |
astro/jsx-a11y/aria-unsupported-elements | eslint-plugin-astro | 2 | No options | **/*.astro | |
astro/jsx-a11y/autocomplete-valid | eslint-plugin-astro | 2 | No options | **/*.astro | |
astro/jsx-a11y/click-events-have-key-events | eslint-plugin-astro | 2 | No options | **/*.astro | |
astro/jsx-a11y/control-has-associated-label | eslint-plugin-astro | 0 | [{"ignoreElements":["audio","canvas","embed","input","textarea","tr","video"],"ignoreRoles":["grid","listbox","menu","menubar","radiogroup","row","tablist","toolbar","tree","treegrid"],"includeRoles":["alert","dialog"]}] | **/*.astro | |
astro/jsx-a11y/heading-has-content | eslint-plugin-astro | 2 | No options | **/*.astro | |
astro/jsx-a11y/html-has-lang | eslint-plugin-astro | 2 | No options | **/*.astro | |
astro/jsx-a11y/iframe-has-title | eslint-plugin-astro | 2 | No options | **/*.astro | |
astro/jsx-a11y/img-redundant-alt | eslint-plugin-astro | 2 | No options | **/*.astro | |
astro/jsx-a11y/interactive-supports-focus | eslint-plugin-astro | 2 | [{"tabbable":["button","checkbox","link","searchbox","spinbutton","switch","textbox"]}] | **/*.astro | |
astro/jsx-a11y/label-has-associated-control | eslint-plugin-astro | 2 | No options | **/*.astro | |
astro/jsx-a11y/label-has-for | eslint-plugin-astro | 0 | No options | **/*.astro | |
astro/jsx-a11y/media-has-caption | eslint-plugin-astro | 2 | No options | **/*.astro | |
astro/jsx-a11y/mouse-events-have-key-events | eslint-plugin-astro | 2 | No options | **/*.astro | |
astro/jsx-a11y/no-access-key | eslint-plugin-astro | 2 | No options | **/*.astro | |
astro/jsx-a11y/no-autofocus | eslint-plugin-astro | 2 | No options | **/*.astro | |
astro/jsx-a11y/no-distracting-elements | eslint-plugin-astro | 2 | No options | **/*.astro | |
astro/jsx-a11y/no-interactive-element-to-noninteractive-role | eslint-plugin-astro | 2 | [{"tr":["none","presentation"],"canvas":["img"]}] | **/*.astro | |
astro/jsx-a11y/no-noninteractive-element-interactions | eslint-plugin-astro | 2 | [{"handlers":["onClick","onError","onLoad","onMouseDown","onMouseUp","onKeyPress","onKeyDown","onKeyUp"],"alert":["onKeyUp","onKeyDown","onKeyPress"],"body":["onError","onLoad"],"dialog":["onKeyUp","onKeyDown","onKeyPress"],"iframe":["onError","onLoad"],"img":["onError","onLoad"]}] | **/*.astro | |
astro/jsx-a11y/no-noninteractive-element-to-interactive-role | eslint-plugin-astro | 2 | [{"ul":["listbox","menu","menubar","radiogroup","tablist","tree","treegrid"],"ol":["listbox","menu","menubar","radiogroup","tablist","tree","treegrid"],"li":["menuitem","option","row","tab","treeitem"],"table":["grid"],"td":["gridcell"],"fieldset":["radiogroup","presentation"]}] | **/*.astro | |
astro/jsx-a11y/no-noninteractive-tabindex | eslint-plugin-astro | 2 | [{"tags":[],"roles":["tabpanel"],"allowExpressionValues":true}] | **/*.astro | |
astro/jsx-a11y/no-redundant-roles | eslint-plugin-astro | 2 | No options | **/*.astro | |
astro/jsx-a11y/no-static-element-interactions | eslint-plugin-astro | 2 | [{"allowExpressionValues":true,"handlers":["onClick","onMouseDown","onMouseUp","onKeyPress","onKeyDown","onKeyUp"]}] | **/*.astro | |
astro/jsx-a11y/role-has-required-aria-props | eslint-plugin-astro | 2 | No options | **/*.astro | |
astro/jsx-a11y/role-supports-aria-props | eslint-plugin-astro | 2 | No options | **/*.astro | |
astro/jsx-a11y/scope | eslint-plugin-astro | 2 | No options | **/*.astro | |
astro/jsx-a11y/tabindex-no-positive | eslint-plugin-astro | 2 | No options | **/*.astro | |
import/no-default-export | eslint-plugin-import | 0 | No options | **/*.config.{js,mjs,cjs,ts,mts,cts} | |
react/display-name | eslint-plugin-react | 2 | No options | Disallow missing displayName in a React component definition | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
react/jsx-key | eslint-plugin-react | 2 | No options | Disallow missing `key` props in iterators/collection literals | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
react/jsx-no-comment-textnodes | eslint-plugin-react | 2 | No options | Disallow comments from being inserted as text nodes | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
react/jsx-no-duplicate-props | eslint-plugin-react | 2 | No options | Disallow duplicate properties in JSX | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
react/jsx-no-target-blank | eslint-plugin-react | 2 | No options | Disallow `target="_blank"` attribute without `rel="noreferrer"` | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
react/jsx-no-undef | eslint-plugin-react | 2 | No options | Disallow undeclared variables in JSX | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
react/jsx-uses-react | eslint-plugin-react | 0 | No options | Disallow React to be incorrectly marked as unused | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
react/jsx-uses-vars | eslint-plugin-react | 2 | No options | Disallow variables used in JSX to be incorrectly marked as unused | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
react/no-children-prop | eslint-plugin-react | 2 | No options | Disallow passing of children as props | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
react/no-danger-with-children | eslint-plugin-react | 2 | No options | Disallow when a DOM element is using both children and dangerouslySetInnerHTML | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
react/no-deprecated | eslint-plugin-react | 2 | No options | Disallow usage of deprecated methods | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
react/no-direct-mutation-state | eslint-plugin-react | 2 | No options | Disallow direct mutation of this.state | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
react/no-find-dom-node | eslint-plugin-react | 2 | No options | Disallow usage of findDOMNode | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
react/no-is-mounted | eslint-plugin-react | 2 | No options | Disallow usage of isMounted | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
react/no-render-return-value | eslint-plugin-react | 2 | No options | Disallow usage of the return value of ReactDOM.render | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
react/no-string-refs | eslint-plugin-react | 2 | No options | Disallow using string references | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
react/no-unescaped-entities | eslint-plugin-react | 2 | No options | Disallow unescaped HTML entities from appearing in markup | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
react/no-unknown-property | eslint-plugin-react | 2 | No options | Disallow usage of unknown DOM property | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
react/no-unsafe | eslint-plugin-react | 0 | No options | Disallow usage of unsafe lifecycle methods | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
react/prop-types | eslint-plugin-react | 0 | No options | Disallow missing props validation in a React component definition | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
react/react-in-jsx-scope | eslint-plugin-react | 0 | No options | Disallow missing React when using JSX | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
react/require-render-return | eslint-plugin-react | 2 | No options | Enforce ES5 or ES6 class for returning value in render function | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
react/no-unstable-nested-components | eslint-plugin-react | 2 | [{"allowAsProps":false}] | Disallow creating unstable components inside components | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
react/jsx-no-useless-fragment | eslint-plugin-react | 2 | [{"allowExpressions":true}] | Disallow unnecessary fragments | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
react/function-component-definition | eslint-plugin-react | 2 | [{"namedComponents":"arrow-function"}] | Enforce a specific function type for function components | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
react/jsx-boolean-value | eslint-plugin-react | 2 | No options | Enforce boolean attributes notation in JSX | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
react/jsx-fragments | eslint-plugin-react | 2 | No options | Enforce shorthand or standard form for React fragments | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
react/hook-use-state | eslint-plugin-react | 2 | No options | Ensure destructuring and symmetric naming of useState hook value and setter variables | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
react/jsx-no-leaked-render | eslint-plugin-react | 2 | [{"validStrategies":["coerce","ternary"]}] | Disallow problematic leaked values from being rendered | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
react/destructuring-assignment | eslint-plugin-react | 2 | No options | Enforce consistent usage of destructuring assignment of props, state, and context | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
react/jsx-filename-extension | eslint-plugin-react | 2 | [{"extensions":[".jsx",".tsx",".mtsx",".mjsx"]}] | Disallow file extensions that may contain JSX | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
react/no-multi-comp | eslint-plugin-react | 2 | No options | Disallow multiple component definition per file | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
react/no-array-index-key | eslint-plugin-react | 2 | No options | Disallow usage of Array index in keys | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
react/jsx-props-no-spreading | eslint-plugin-react | 2 | No options | Disallow JSX prop spreading | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
react/jsx-sort-props | eslint-plugin-react | 2 | [{"callbacksLast":true,"shorthandFirst":true,"shorthandLast":false,"ignoreCase":true,"noSortAlphabetically":true,"multiline":"last","reservedFirst":false}] | Enforce props alphabetical sorting | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
@typescript-eslint/naming-convention | @typescript-eslint/eslint-plugin | 2 | [{"selector":"default","format":["camelCase","StrictPascalCase"],"leadingUnderscore":"forbid","trailingUnderscore":"forbid"},{"selector":"variable","format":["camelCase","UPPER_CASE"],"modifiers":["const"],"types":["boolean","string","number"],"leadingUnderscore":"forbid","trailingUnderscore":"forbid"},{"selector":"objectLiteralProperty","format":null,"leadingUnderscore":"allowSingleOrDouble","trailingUnderscore":"forbid"},{"selector":"typeLike","format":["PascalCase"],"leadingUnderscore":"forbid","trailingUnderscore":"forbid"},{"selector":"variable","types":["boolean"],"format":["camelCase"],"prefix":["is","has","should","can"],"leadingUnderscore":"forbid","trailingUnderscore":"forbid"},{"selector":"variable","modifiers":["destructured"],"format":null},{"selector":"typeProperty","format":null}] | **/*{jsx,tsx,mtsx,mjsx} | |
react-refresh/only-export-components | eslint-plugin-react-refresh | 2 | No options | **/*{jsx,tsx,mtsx,mjsx} | |
jsx-a11y/alt-text | eslint-plugin-jsx-a11y | 2 | No options | Enforce all elements that require alternative text have meaningful information to relay back to end user. | **/*{jsx,tsx,mtsx,mjsx} |
jsx-a11y/anchor-ambiguous-text | eslint-plugin-jsx-a11y | 0 | No options | Enforce `<a>` text to not exactly match "click here", "here", "link", or "a link". | **/*{jsx,tsx,mtsx,mjsx} |
jsx-a11y/anchor-has-content | eslint-plugin-jsx-a11y | 2 | No options | Enforce all anchors to contain accessible content. | **/*{jsx,tsx,mtsx,mjsx} |
jsx-a11y/anchor-is-valid | eslint-plugin-jsx-a11y | 2 | No options | Enforce all anchors are valid, navigable elements. | **/*{jsx,tsx,mtsx,mjsx} |
jsx-a11y/aria-activedescendant-has-tabindex | eslint-plugin-jsx-a11y | 2 | No options | Enforce elements with aria-activedescendant are tabbable. | **/*{jsx,tsx,mtsx,mjsx} |
jsx-a11y/aria-props | eslint-plugin-jsx-a11y | 2 | No options | Enforce all `aria-*` props are valid. | **/*{jsx,tsx,mtsx,mjsx} |
jsx-a11y/aria-proptypes | eslint-plugin-jsx-a11y | 2 | No options | Enforce ARIA state and property values are valid. | **/*{jsx,tsx,mtsx,mjsx} |
jsx-a11y/aria-role | eslint-plugin-jsx-a11y | 2 | No options | Enforce that elements with ARIA roles must use a valid, non-abstract ARIA role. | **/*{jsx,tsx,mtsx,mjsx} |
jsx-a11y/aria-unsupported-elements | eslint-plugin-jsx-a11y | 2 | No options | Enforce that elements that do not support ARIA roles, states, and properties do not have those attributes. | **/*{jsx,tsx,mtsx,mjsx} |
jsx-a11y/autocomplete-valid | eslint-plugin-jsx-a11y | 2 | No options | Enforce that autocomplete attributes are used correctly. | **/*{jsx,tsx,mtsx,mjsx} |
jsx-a11y/click-events-have-key-events | eslint-plugin-jsx-a11y | 2 | No options | Enforce a clickable non-interactive element has at least one keyboard event listener. | **/*{jsx,tsx,mtsx,mjsx} |
jsx-a11y/control-has-associated-label | eslint-plugin-jsx-a11y | 0 | [{"ignoreElements":["audio","canvas","embed","input","textarea","tr","video"],"ignoreRoles":["grid","listbox","menu","menubar","radiogroup","row","tablist","toolbar","tree","treegrid"],"includeRoles":["alert","dialog"]}] | Enforce that a control (an interactive element) has a text label. | **/*{jsx,tsx,mtsx,mjsx} |
jsx-a11y/heading-has-content | eslint-plugin-jsx-a11y | 2 | No options | Enforce heading (`h1`, `h2`, etc) elements contain accessible content. | **/*{jsx,tsx,mtsx,mjsx} |
jsx-a11y/html-has-lang | eslint-plugin-jsx-a11y | 2 | No options | Enforce `<html>` element has `lang` prop. | **/*{jsx,tsx,mtsx,mjsx} |
jsx-a11y/iframe-has-title | eslint-plugin-jsx-a11y | 2 | No options | Enforce iframe elements have a title attribute. | **/*{jsx,tsx,mtsx,mjsx} |
jsx-a11y/img-redundant-alt | eslint-plugin-jsx-a11y | 2 | No options | Enforce `<img>` alt prop does not contain the word "image", "picture", or "photo". | **/*{jsx,tsx,mtsx,mjsx} |
jsx-a11y/interactive-supports-focus | eslint-plugin-jsx-a11y | 2 | [{"tabbable":["button","checkbox","link","searchbox","spinbutton","switch","textbox"]}] | Enforce that elements with interactive handlers like `onClick` must be focusable. | **/*{jsx,tsx,mtsx,mjsx} |
jsx-a11y/label-has-associated-control | eslint-plugin-jsx-a11y | 2 | No options | Enforce that a `label` tag has a text label and an associated control. | **/*{jsx,tsx,mtsx,mjsx} |
jsx-a11y/label-has-for | eslint-plugin-jsx-a11y | 0 | No options | Enforce that `<label>` elements have the `htmlFor` prop. | **/*{jsx,tsx,mtsx,mjsx} |
jsx-a11y/media-has-caption | eslint-plugin-jsx-a11y | 2 | No options | Enforces that `<audio>` and `<video>` elements must have a `<track>` for captions. | **/*{jsx,tsx,mtsx,mjsx} |
jsx-a11y/mouse-events-have-key-events | eslint-plugin-jsx-a11y | 2 | No options | Enforce that `onMouseOver`/`onMouseOut` are accompanied by `onFocus`/`onBlur` for keyboard-only users. | **/*{jsx,tsx,mtsx,mjsx} |
jsx-a11y/no-access-key | eslint-plugin-jsx-a11y | 2 | No options | Enforce that the `accessKey` prop is not used on any element to avoid complications with keyboard commands used by a screenreader. | **/*{jsx,tsx,mtsx,mjsx} |
jsx-a11y/no-autofocus | eslint-plugin-jsx-a11y | 2 | No options | Enforce autoFocus prop is not used. | **/*{jsx,tsx,mtsx,mjsx} |
jsx-a11y/no-distracting-elements | eslint-plugin-jsx-a11y | 2 | No options | Enforce distracting elements are not used. | **/*{jsx,tsx,mtsx,mjsx} |
jsx-a11y/no-interactive-element-to-noninteractive-role | eslint-plugin-jsx-a11y | 2 | [{"tr":["none","presentation"],"canvas":["img"]}] | Interactive elements should not be assigned non-interactive roles. | **/*{jsx,tsx,mtsx,mjsx} |
jsx-a11y/no-noninteractive-element-interactions | eslint-plugin-jsx-a11y | 2 | [{"handlers":["onClick","onError","onLoad","onMouseDown","onMouseUp","onKeyPress","onKeyDown","onKeyUp"],"alert":["onKeyUp","onKeyDown","onKeyPress"],"body":["onError","onLoad"],"dialog":["onKeyUp","onKeyDown","onKeyPress"],"iframe":["onError","onLoad"],"img":["onError","onLoad"]}] | Non-interactive elements should not be assigned mouse or keyboard event listeners. | **/*{jsx,tsx,mtsx,mjsx} |
jsx-a11y/no-noninteractive-element-to-interactive-role | eslint-plugin-jsx-a11y | 2 | [{"ul":["listbox","menu","menubar","radiogroup","tablist","tree","treegrid"],"ol":["listbox","menu","menubar","radiogroup","tablist","tree","treegrid"],"li":["menuitem","option","row","tab","treeitem"],"table":["grid"],"td":["gridcell"],"fieldset":["radiogroup","presentation"]}] | Non-interactive elements should not be assigned interactive roles. | **/*{jsx,tsx,mtsx,mjsx} |
jsx-a11y/no-noninteractive-tabindex | eslint-plugin-jsx-a11y | 2 | [{"tags":[],"roles":["tabpanel"],"allowExpressionValues":true}] | `tabIndex` should only be declared on interactive elements. | **/*{jsx,tsx,mtsx,mjsx} |
jsx-a11y/no-redundant-roles | eslint-plugin-jsx-a11y | 2 | No options | Enforce explicit role property is not the same as implicit/default role property on element. | **/*{jsx,tsx,mtsx,mjsx} |
jsx-a11y/no-static-element-interactions | eslint-plugin-jsx-a11y | 2 | [{"allowExpressionValues":true,"handlers":["onClick","onMouseDown","onMouseUp","onKeyPress","onKeyDown","onKeyUp"]}] | Enforce that non-interactive, visible elements (such as `<div>`) that have click handlers use the role attribute. | **/*{jsx,tsx,mtsx,mjsx} |
jsx-a11y/role-has-required-aria-props | eslint-plugin-jsx-a11y | 2 | No options | Enforce that elements with ARIA roles must have all required attributes for that role. | **/*{jsx,tsx,mtsx,mjsx} |
jsx-a11y/role-supports-aria-props | eslint-plugin-jsx-a11y | 2 | No options | Enforce that elements with explicit or implicit roles defined contain only `aria-*` properties supported by that `role`. | **/*{jsx,tsx,mtsx,mjsx} |
jsx-a11y/scope | eslint-plugin-jsx-a11y | 2 | No options | Enforce `scope` prop is only used on `<th>` elements. | **/*{jsx,tsx,mtsx,mjsx} |
jsx-a11y/tabindex-no-positive | eslint-plugin-jsx-a11y | 2 | No options | Enforce `tabIndex` value is not greater than zero. | **/*{jsx,tsx,mtsx,mjsx} |
react-hooks/rules-of-hooks | eslint-plugin-react-hooks | 2 | No options | enforces the Rules of Hooks | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx} |
react-hooks/exhaustive-deps | eslint-plugin-react-hooks | 1 | No options | verifies the list of dependencies for Hooks like useEffect and similar | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx} |
react-refresh/only-export-components | eslint-plugin-react-refresh | 0 | No options | **/*.stories.tsx | |
react/no-unknown-property | eslint-plugin-react | 0 | No options | Disallow usage of unknown DOM property | **/*.astro |
react/jsx-filename-extension | eslint-plugin-react | 2 | [{"allow":"always","extensions":[".jsx",".tsx",".mtsx",".mjsx",".astro"]}] | Disallow file extensions that may contain JSX | **/*.astro |
vitest/consistent-test-it | eslint-plugin-vitest | 2 | [{"fn":"test","withinDescribe":"test"}] | Prefer test or it but not both | **/*.{test,spec}.{js,mjs,cjs,ts,mts,cts}, **/tests/**/*.{js,mjs,cjs,ts,mts,cts}, **/__tests__/**/*.{js,mjs,cjs,ts,mts,cts} |
vitest/expect-expect | eslint-plugin-vitest | 2 | No options | Enforce having expectation in test body | **/*.{test,spec}.{js,mjs,cjs,ts,mts,cts}, **/tests/**/*.{js,mjs,cjs,ts,mts,cts}, **/__tests__/**/*.{js,mjs,cjs,ts,mts,cts} |
vitest/no-commented-out-tests | eslint-plugin-vitest | 2 | No options | Disallow commented out tests | **/*.{test,spec}.{js,mjs,cjs,ts,mts,cts}, **/tests/**/*.{js,mjs,cjs,ts,mts,cts}, **/__tests__/**/*.{js,mjs,cjs,ts,mts,cts} |
vitest/no-conditional-expect | eslint-plugin-vitest | 2 | No options | Disallow conditional expects | **/*.{test,spec}.{js,mjs,cjs,ts,mts,cts}, **/tests/**/*.{js,mjs,cjs,ts,mts,cts}, **/__tests__/**/*.{js,mjs,cjs,ts,mts,cts} |
vitest/no-conditional-in-test | eslint-plugin-vitest | 2 | No options | Disallow conditional tests | **/*.{test,spec}.{js,mjs,cjs,ts,mts,cts}, **/tests/**/*.{js,mjs,cjs,ts,mts,cts}, **/__tests__/**/*.{js,mjs,cjs,ts,mts,cts} |
vitest/no-disabled-tests | eslint-plugin-vitest | 2 | No options | Disallow disabled tests | **/*.{test,spec}.{js,mjs,cjs,ts,mts,cts}, **/tests/**/*.{js,mjs,cjs,ts,mts,cts}, **/__tests__/**/*.{js,mjs,cjs,ts,mts,cts} |
vitest/no-done-callback | eslint-plugin-vitest | 2 | No options | Disallow using a callback in asynchronous tests and hooks | **/*.{test,spec}.{js,mjs,cjs,ts,mts,cts}, **/tests/**/*.{js,mjs,cjs,ts,mts,cts}, **/__tests__/**/*.{js,mjs,cjs,ts,mts,cts} |
vitest/no-duplicate-hooks | eslint-plugin-vitest | 2 | No options | Disallow duplicate hooks and teardown hooks | **/*.{test,spec}.{js,mjs,cjs,ts,mts,cts}, **/tests/**/*.{js,mjs,cjs,ts,mts,cts}, **/__tests__/**/*.{js,mjs,cjs,ts,mts,cts} |
vitest/no-identical-title | eslint-plugin-vitest | 2 | No options | Disallow identical titles | **/*.{test,spec}.{js,mjs,cjs,ts,mts,cts}, **/tests/**/*.{js,mjs,cjs,ts,mts,cts}, **/__tests__/**/*.{js,mjs,cjs,ts,mts,cts} |
vitest/no-focused-tests | eslint-plugin-vitest | 2 | No options | Disallow focused tests | **/*.{test,spec}.{js,mjs,cjs,ts,mts,cts}, **/tests/**/*.{js,mjs,cjs,ts,mts,cts}, **/__tests__/**/*.{js,mjs,cjs,ts,mts,cts} |
vitest/no-standalone-expect | eslint-plugin-vitest | 2 | No options | Disallow using `expect` outside of `it` or `test` blocks | **/*.{test,spec}.{js,mjs,cjs,ts,mts,cts}, **/tests/**/*.{js,mjs,cjs,ts,mts,cts}, **/__tests__/**/*.{js,mjs,cjs,ts,mts,cts} |
vitest/no-test-prefixes | eslint-plugin-vitest | 2 | No options | Disallow using `test` as a prefix | **/*.{test,spec}.{js,mjs,cjs,ts,mts,cts}, **/tests/**/*.{js,mjs,cjs,ts,mts,cts}, **/__tests__/**/*.{js,mjs,cjs,ts,mts,cts} |
vitest/no-test-return-statement | eslint-plugin-vitest | 2 | No options | Disallow return statements in tests | **/*.{test,spec}.{js,mjs,cjs,ts,mts,cts}, **/tests/**/*.{js,mjs,cjs,ts,mts,cts}, **/__tests__/**/*.{js,mjs,cjs,ts,mts,cts} |
vitest/prefer-comparison-matcher | eslint-plugin-vitest | 2 | No options | Suggest using the built-in comparison matchers | **/*.{test,spec}.{js,mjs,cjs,ts,mts,cts}, **/tests/**/*.{js,mjs,cjs,ts,mts,cts}, **/__tests__/**/*.{js,mjs,cjs,ts,mts,cts} |
vitest/prefer-each | eslint-plugin-vitest | 2 | No options | Prefer `each` rather than manual loops | **/*.{test,spec}.{js,mjs,cjs,ts,mts,cts}, **/tests/**/*.{js,mjs,cjs,ts,mts,cts}, **/__tests__/**/*.{js,mjs,cjs,ts,mts,cts} |
vitest/prefer-equality-matcher | eslint-plugin-vitest | 2 | No options | Suggest using the built-in quality matchers | **/*.{test,spec}.{js,mjs,cjs,ts,mts,cts}, **/tests/**/*.{js,mjs,cjs,ts,mts,cts}, **/__tests__/**/*.{js,mjs,cjs,ts,mts,cts} |
vitest/prefer-expect-resolves | eslint-plugin-vitest | 2 | No options | Suggest using `expect().resolves` over `expect(await ...)` syntax | **/*.{test,spec}.{js,mjs,cjs,ts,mts,cts}, **/tests/**/*.{js,mjs,cjs,ts,mts,cts}, **/__tests__/**/*.{js,mjs,cjs,ts,mts,cts} |
vitest/prefer-hooks-in-order | eslint-plugin-vitest | 2 | No options | Prefer having hooks in consistent order | **/*.{test,spec}.{js,mjs,cjs,ts,mts,cts}, **/tests/**/*.{js,mjs,cjs,ts,mts,cts}, **/__tests__/**/*.{js,mjs,cjs,ts,mts,cts} |
vitest/prefer-hooks-on-top | eslint-plugin-vitest | 2 | No options | Suggest having hooks before any test cases | **/*.{test,spec}.{js,mjs,cjs,ts,mts,cts}, **/tests/**/*.{js,mjs,cjs,ts,mts,cts}, **/__tests__/**/*.{js,mjs,cjs,ts,mts,cts} |
vitest/prefer-lowercase-title | eslint-plugin-vitest | 2 | No options | Enforce lowercase titles | **/*.{test,spec}.{js,mjs,cjs,ts,mts,cts}, **/tests/**/*.{js,mjs,cjs,ts,mts,cts}, **/__tests__/**/*.{js,mjs,cjs,ts,mts,cts} |
vitest/prefer-mock-promise-shorthand | eslint-plugin-vitest | 2 | No options | Prefer mock resolved/rejected shorthands for promises | **/*.{test,spec}.{js,mjs,cjs,ts,mts,cts}, **/tests/**/*.{js,mjs,cjs,ts,mts,cts}, **/__tests__/**/*.{js,mjs,cjs,ts,mts,cts} |
vitest/prefer-spy-on | eslint-plugin-vitest | 2 | No options | Suggest using `vi.spyOn` | **/*.{test,spec}.{js,mjs,cjs,ts,mts,cts}, **/tests/**/*.{js,mjs,cjs,ts,mts,cts}, **/__tests__/**/*.{js,mjs,cjs,ts,mts,cts} |
vitest/prefer-strict-equal | eslint-plugin-vitest | 2 | No options | Prefer strict equal over equal | **/*.{test,spec}.{js,mjs,cjs,ts,mts,cts}, **/tests/**/*.{js,mjs,cjs,ts,mts,cts}, **/__tests__/**/*.{js,mjs,cjs,ts,mts,cts} |
vitest/prefer-to-be | eslint-plugin-vitest | 2 | No options | Suggest using toBe() | **/*.{test,spec}.{js,mjs,cjs,ts,mts,cts}, **/tests/**/*.{js,mjs,cjs,ts,mts,cts}, **/__tests__/**/*.{js,mjs,cjs,ts,mts,cts} |
vitest/prefer-to-be-falsy | eslint-plugin-vitest | 2 | No options | Suggest using toBeFalsy() | **/*.{test,spec}.{js,mjs,cjs,ts,mts,cts}, **/tests/**/*.{js,mjs,cjs,ts,mts,cts}, **/__tests__/**/*.{js,mjs,cjs,ts,mts,cts} |
vitest/prefer-to-be-object | eslint-plugin-vitest | 2 | No options | Prefer toBeObject() | **/*.{test,spec}.{js,mjs,cjs,ts,mts,cts}, **/tests/**/*.{js,mjs,cjs,ts,mts,cts}, **/__tests__/**/*.{js,mjs,cjs,ts,mts,cts} |
vitest/prefer-to-be-truthy | eslint-plugin-vitest | 2 | No options | Suggest using `toBeTruthy` | **/*.{test,spec}.{js,mjs,cjs,ts,mts,cts}, **/tests/**/*.{js,mjs,cjs,ts,mts,cts}, **/__tests__/**/*.{js,mjs,cjs,ts,mts,cts} |
vitest/prefer-to-contain | eslint-plugin-vitest | 2 | No options | Prefer using toContain() | **/*.{test,spec}.{js,mjs,cjs,ts,mts,cts}, **/tests/**/*.{js,mjs,cjs,ts,mts,cts}, **/__tests__/**/*.{js,mjs,cjs,ts,mts,cts} |
vitest/prefer-to-have-length | eslint-plugin-vitest | 2 | No options | Suggest using toHaveLength() | **/*.{test,spec}.{js,mjs,cjs,ts,mts,cts}, **/tests/**/*.{js,mjs,cjs,ts,mts,cts}, **/__tests__/**/*.{js,mjs,cjs,ts,mts,cts} |
vitest/prefer-todo | eslint-plugin-vitest | 2 | No options | Suggest using `test.todo` | **/*.{test,spec}.{js,mjs,cjs,ts,mts,cts}, **/tests/**/*.{js,mjs,cjs,ts,mts,cts}, **/__tests__/**/*.{js,mjs,cjs,ts,mts,cts} |
vitest/require-hook | eslint-plugin-vitest | 2 | No options | Require setup and teardown to be within a hook | **/*.{test,spec}.{js,mjs,cjs,ts,mts,cts}, **/tests/**/*.{js,mjs,cjs,ts,mts,cts}, **/__tests__/**/*.{js,mjs,cjs,ts,mts,cts} |
vitest/require-to-throw-message | eslint-plugin-vitest | 2 | No options | Require toThrow() to be called with an error message | **/*.{test,spec}.{js,mjs,cjs,ts,mts,cts}, **/tests/**/*.{js,mjs,cjs,ts,mts,cts}, **/__tests__/**/*.{js,mjs,cjs,ts,mts,cts} |
vitest/require-top-level-describe | eslint-plugin-vitest | 2 | No options | Enforce that all tests are in a top-level describe | **/*.{test,spec}.{js,mjs,cjs,ts,mts,cts}, **/tests/**/*.{js,mjs,cjs,ts,mts,cts}, **/__tests__/**/*.{js,mjs,cjs,ts,mts,cts} |
vitest/valid-describe-callback | eslint-plugin-vitest | 2 | No options | Enforce valid describe callback | **/*.{test,spec}.{js,mjs,cjs,ts,mts,cts}, **/tests/**/*.{js,mjs,cjs,ts,mts,cts}, **/__tests__/**/*.{js,mjs,cjs,ts,mts,cts} |
vitest/valid-expect | eslint-plugin-vitest | 2 | No options | Enforce valid `expect()` usage | **/*.{test,spec}.{js,mjs,cjs,ts,mts,cts}, **/tests/**/*.{js,mjs,cjs,ts,mts,cts}, **/__tests__/**/*.{js,mjs,cjs,ts,mts,cts} |
@next/next/google-font-display | @next/eslint-plugin-next | 1 | No options | Enforce font-display behavior with Google Fonts. | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
@next/next/google-font-preconnect | @next/eslint-plugin-next | 1 | No options | Ensure `preconnect` is used with Google Fonts. | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
@next/next/next-script-for-ga | @next/eslint-plugin-next | 1 | No options | Prefer `next/script` component when using the inline script for Google Analytics. | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
@next/next/no-before-interactive-script-outside-document | @next/eslint-plugin-next | 1 | No options | Prevent usage of `next/script`'s `beforeInteractive` strategy outside of `pages/_document.js`. | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
@next/next/no-css-tags | @next/eslint-plugin-next | 1 | No options | Prevent manual stylesheet tags. | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
@next/next/no-head-element | @next/eslint-plugin-next | 1 | No options | Prevent usage of `<head>` element. | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
@next/next/no-html-link-for-pages | @next/eslint-plugin-next | 2 | No options | Prevent usage of `<a>` elements to navigate to internal Next.js pages. | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
@next/next/no-img-element | @next/eslint-plugin-next | 1 | No options | Prevent usage of `<img>` element due to slower LCP and higher bandwidth. | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
@next/next/no-page-custom-font | @next/eslint-plugin-next | 1 | No options | Prevent page-only custom fonts. | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
@next/next/no-styled-jsx-in-document | @next/eslint-plugin-next | 1 | No options | Prevent usage of `styled-jsx` in `pages/_document.js`. | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
@next/next/no-sync-scripts | @next/eslint-plugin-next | 2 | No options | Prevent synchronous scripts. | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
@next/next/no-title-in-document-head | @next/eslint-plugin-next | 1 | No options | Prevent usage of `<title>` with `Head` component from `next/document`. | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
@next/next/no-typos | @next/eslint-plugin-next | 1 | No options | Prevent common typos in Next.js data fetching functions. | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
@next/next/no-unwanted-polyfillio | @next/eslint-plugin-next | 1 | No options | Prevent duplicate polyfills from Polyfill.io. | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
@next/next/inline-script-id | @next/eslint-plugin-next | 2 | No options | Enforce `id` attribute on `next/script` components with inline content. | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
@next/next/no-assign-module-variable | @next/eslint-plugin-next | 2 | No options | Prevent assignment to the `module` variable. | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
@next/next/no-document-import-in-page | @next/eslint-plugin-next | 2 | No options | Prevent importing `next/document` outside of `pages/_document.js`. | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
@next/next/no-duplicate-head | @next/eslint-plugin-next | 2 | No options | Prevent duplicate usage of `<Head>` in `pages/_document.js`. | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
@next/next/no-head-import-in-document | @next/eslint-plugin-next | 2 | No options | Prevent usage of `next/head` in `pages/_document.js`. | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
@next/next/no-script-component-in-head | @next/eslint-plugin-next | 2 | No options | Prevent usage of `next/script` in `next/head` component. | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
lodash-f/callback-binding | eslint-plugin-lodash-f | 1 | No options | https://github.com/wix/eslint-plugin-lodash/blob/v7.5.3/docs/rules/callback-binding.md | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
lodash-f/chain-style | eslint-plugin-lodash-f | 1 | ["as-needed"] | https://github.com/wix/eslint-plugin-lodash/blob/v7.5.3/docs/rules/chain-style.md | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
lodash-f/chaining | eslint-plugin-lodash-f | 1 | No options | https://github.com/wix/eslint-plugin-lodash/blob/v7.5.3/docs/rules/chaining.md | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
lodash-f/collection-method-value | eslint-plugin-lodash-f | 1 | No options | https://github.com/wix/eslint-plugin-lodash/blob/v7.5.3/docs/rules/collection-method-value.md | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
lodash-f/collection-ordering | eslint-plugin-lodash-f | 1 | No options | https://github.com/wix/eslint-plugin-lodash/blob/v7.5.3/docs/rules/collection-ordering.md | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
lodash-f/collection-return | eslint-plugin-lodash-f | 1 | No options | https://github.com/wix/eslint-plugin-lodash/blob/v7.5.3/docs/rules/collection-return.md | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
lodash-f/consistent-compose | eslint-plugin-lodash-f | 1 | ["flow"] | https://github.com/wix/eslint-plugin-lodash/blob/v7.5.3/docs/rules/consistent-compose.md | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
lodash-f/identity-shorthand | eslint-plugin-lodash-f | 1 | ["always"] | https://github.com/wix/eslint-plugin-lodash/blob/v7.5.3/docs/rules/identity-shorthand.md | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
lodash-f/import-scope | eslint-plugin-lodash-f | 2 | ["member"] | https://github.com/wix/eslint-plugin-lodash/blob/v7.5.3/docs/rules/import-scope.md | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
lodash-f/matches-prop-shorthand | eslint-plugin-lodash-f | 1 | ["always"] | https://github.com/wix/eslint-plugin-lodash/blob/v7.5.3/docs/rules/matches-prop-shorthand.md | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
lodash-f/matches-shorthand | eslint-plugin-lodash-f | 1 | ["always",3] | https://github.com/wix/eslint-plugin-lodash/blob/v7.5.3/docs/rules/matches-shorthand.md | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
lodash-f/no-commit | eslint-plugin-lodash-f | 1 | No options | https://github.com/wix/eslint-plugin-lodash/blob/v7.5.3/docs/rules/no-commit.md | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
lodash-f/no-double-unwrap | eslint-plugin-lodash-f | 1 | No options | https://github.com/wix/eslint-plugin-lodash/blob/v7.5.3/docs/rules/no-double-unwrap.md | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
lodash-f/no-extra-args | eslint-plugin-lodash-f | 1 | No options | https://github.com/wix/eslint-plugin-lodash/blob/v7.5.3/docs/rules/no-extra-args.md | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
lodash-f/no-unbound-this | eslint-plugin-lodash-f | 1 | No options | https://github.com/wix/eslint-plugin-lodash/blob/v7.5.3/docs/rules/no-unbound-this.md | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
lodash-f/path-style | eslint-plugin-lodash-f | 1 | ["string"] | https://github.com/wix/eslint-plugin-lodash/blob/v7.5.3/docs/rules/path-style.md | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
lodash-f/prefer-compact | eslint-plugin-lodash-f | 1 | No options | https://github.com/wix/eslint-plugin-lodash/blob/v7.5.3/docs/rules/prefer-compact.md | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
lodash-f/prefer-constant | eslint-plugin-lodash-f | 1 | No options | https://github.com/wix/eslint-plugin-lodash/blob/v7.5.3/docs/rules/prefer-constant.md | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
lodash-f/prefer-filter | eslint-plugin-lodash-f | 2 | [3] | https://github.com/wix/eslint-plugin-lodash/blob/v7.5.3/docs/rules/prefer-filter.md | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
lodash-f/prefer-find | eslint-plugin-lodash-f | 1 | No options | https://github.com/wix/eslint-plugin-lodash/blob/v7.5.3/docs/rules/prefer-find.md | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
lodash-f/prefer-flat-map | eslint-plugin-lodash-f | 1 | No options | https://github.com/wix/eslint-plugin-lodash/blob/v7.5.3/docs/rules/prefer-flat-map.md | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
lodash-f/prefer-get | eslint-plugin-lodash-f | 0 | No options | https://github.com/wix/eslint-plugin-lodash/blob/v7.5.3/docs/rules/prefer-get.md | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
lodash-f/prefer-immutable-method | eslint-plugin-lodash-f | 1 | No options | https://github.com/wix/eslint-plugin-lodash/blob/v7.5.3/docs/rules/prefer-immutable-method.md | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
lodash-f/prefer-includes | eslint-plugin-lodash-f | 2 | [{"includeNative":false}] | https://github.com/wix/eslint-plugin-lodash/blob/v7.5.3/docs/rules/prefer-includes.md | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
lodash-f/prefer-invoke-map | eslint-plugin-lodash-f | 1 | No options | https://github.com/wix/eslint-plugin-lodash/blob/v7.5.3/docs/rules/prefer-invoke-map.md | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
lodash-f/prefer-is-empty | eslint-plugin-lodash-f | 1 | No options | https://github.com/wix/eslint-plugin-lodash/blob/v7.5.3/docs/rules/prefer-is-empty.md | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
lodash-f/prefer-is-nil | eslint-plugin-lodash-f | 1 | No options | https://github.com/wix/eslint-plugin-lodash/blob/v7.5.3/docs/rules/prefer-is-nil.md | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
lodash-f/prefer-lodash-chain | eslint-plugin-lodash-f | 1 | No options | https://github.com/wix/eslint-plugin-lodash/blob/v7.5.3/docs/rules/prefer-lodash-chain.md | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
lodash-f/prefer-lodash-method | eslint-plugin-lodash-f | 0 | No options | https://github.com/wix/eslint-plugin-lodash/blob/v7.5.3/docs/rules/prefer-lodash-method.md | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
lodash-f/prefer-lodash-typecheck | eslint-plugin-lodash-f | 1 | No options | https://github.com/wix/eslint-plugin-lodash/blob/v7.5.3/docs/rules/prefer-lodash-typecheck.md | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
lodash-f/prefer-map | eslint-plugin-lodash-f | 1 | No options | https://github.com/wix/eslint-plugin-lodash/blob/v7.5.3/docs/rules/prefer-map.md | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
lodash-f/prefer-matches | eslint-plugin-lodash-f | 0 | No options | https://github.com/wix/eslint-plugin-lodash/blob/v7.5.3/docs/rules/prefer-matches.md | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
lodash-f/prefer-nullish-coalescing | eslint-plugin-lodash-f | 1 | No options | https://github.com/wix/eslint-plugin-lodash/blob/v7.5.3/docs/rules/prefer-nullish-coalescing.md | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
lodash-f/prefer-noop | eslint-plugin-lodash-f | 0 | No options | https://github.com/wix/eslint-plugin-lodash/blob/v7.5.3/docs/rules/prefer-noop.md | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
lodash-f/prefer-over-quantifier | eslint-plugin-lodash-f | 0 | No options | https://github.com/wix/eslint-plugin-lodash/blob/v7.5.3/docs/rules/prefer-over-quantifier.md | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
lodash-f/prefer-reject | eslint-plugin-lodash-f | 2 | [3] | https://github.com/wix/eslint-plugin-lodash/blob/v7.5.3/docs/rules/prefer-reject.md | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
lodash-f/prefer-some | eslint-plugin-lodash-f | 2 | [{"includeNative":false}] | https://github.com/wix/eslint-plugin-lodash/blob/v7.5.3/docs/rules/prefer-some.md | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
lodash-f/prefer-startswith | eslint-plugin-lodash-f | 1 | No options | https://github.com/wix/eslint-plugin-lodash/blob/v7.5.3/docs/rules/prefer-startswith.md | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
lodash-f/prefer-thru | eslint-plugin-lodash-f | 1 | No options | https://github.com/wix/eslint-plugin-lodash/blob/v7.5.3/docs/rules/prefer-thru.md | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
lodash-f/prefer-times | eslint-plugin-lodash-f | 1 | No options | https://github.com/wix/eslint-plugin-lodash/blob/v7.5.3/docs/rules/prefer-times.md | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
lodash-f/prefer-wrapper-method | eslint-plugin-lodash-f | 1 | No options | https://github.com/wix/eslint-plugin-lodash/blob/v7.5.3/docs/rules/prefer-wrapper-method.md | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
lodash-f/preferred-alias | eslint-plugin-lodash-f | 1 | No options | https://github.com/wix/eslint-plugin-lodash/blob/v7.5.3/docs/rules/preferred-alias.md | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
lodash-f/prop-shorthand | eslint-plugin-lodash-f | 1 | ["always"] | https://github.com/wix/eslint-plugin-lodash/blob/v7.5.3/docs/rules/prop-shorthand.md | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
lodash-f/unwrap | eslint-plugin-lodash-f | 1 | No options | https://github.com/wix/eslint-plugin-lodash/blob/v7.5.3/docs/rules/unwrap.md | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |
unicorn/no-instanceof-array | eslint-plugin-unicorn | 0 | No options | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} | |
no-empty-pattern | @eslint/js | 0 | No options | **/*{js,mjs,cjs,ts,mts,cts} | |
playwright/missing-playwright-await | eslint-plugin-playwright | 2 | No options | Identify false positives when async Playwright APIs are not properly awaited. | **/*{js,mjs,cjs,ts,mts,cts} |
playwright/no-page-pause | eslint-plugin-playwright | 1 | No options | Prevent usage of page.pause() | **/*{js,mjs,cjs,ts,mts,cts} |
playwright/no-element-handle | eslint-plugin-playwright | 1 | No options | The use of ElementHandle is discouraged, use Locator instead | **/*{js,mjs,cjs,ts,mts,cts} |
playwright/no-eval | eslint-plugin-playwright | 1 | No options | The use of `page.$eval` and `page.$$eval` are discouraged, use `locator.evaluate` or `locator.evaluateAll` instead | **/*{js,mjs,cjs,ts,mts,cts} |
playwright/no-focused-test | eslint-plugin-playwright | 2 | No options | Prevent usage of `.only()` focus test annotation | **/*{js,mjs,cjs,ts,mts,cts} |
playwright/no-skipped-test | eslint-plugin-playwright | 1 | No options | Prevent usage of the `.skip()` skip test annotation. | **/*{js,mjs,cjs,ts,mts,cts} |
playwright/no-wait-for-timeout | eslint-plugin-playwright | 1 | No options | Prevent usage of page.waitForTimeout() | **/*{js,mjs,cjs,ts,mts,cts} |
playwright/no-force-option | eslint-plugin-playwright | 0 | No options | Prevent usage of `{ force: true }` option. | **/*{js,mjs,cjs,ts,mts,cts} |
playwright/max-nested-describe | eslint-plugin-playwright | 1 | No options | Enforces a maximum depth to nested describe calls | **/*{js,mjs,cjs,ts,mts,cts} |
playwright/no-conditional-in-test | eslint-plugin-playwright | 1 | No options | Disallow conditional logic in tests | **/*{js,mjs,cjs,ts,mts,cts} |
playwright/no-useless-not | eslint-plugin-playwright | 1 | No options | Disallow usage of 'not' matchers when a more specific matcher exists | **/*{js,mjs,cjs,ts,mts,cts} |
playwright/valid-expect | eslint-plugin-playwright | 2 | No options | Enforce valid `expect()` usage | **/*{js,mjs,cjs,ts,mts,cts} |
playwright/prefer-lowercase-title | eslint-plugin-playwright | 2 | No options | Enforce lowercase test names | **/*{js,mjs,cjs,ts,mts,cts} |
playwright/prefer-to-have-length | eslint-plugin-playwright | 2 | No options | Suggest using `toHaveLength()` | **/*{js,mjs,cjs,ts,mts,cts} |
playwright/require-top-level-describe | eslint-plugin-playwright | 2 | No options | Require test cases and hooks to be inside a `test.describe` block | **/*{js,mjs,cjs,ts,mts,cts} |
playwright/prefer-to-be | eslint-plugin-playwright | 2 | No options | Suggest using `toBe()` for primitive literals | **/*{js,mjs,cjs,ts,mts,cts} |
playwright/prefer-strict-equal | eslint-plugin-playwright | 2 | No options | Suggest using `toStrictEqual()` | **/*{js,mjs,cjs,ts,mts,cts} |
curly | @eslint/js | 0 | No options | Enforce consistent brace style for all control statements | * |
lines-around-comment | @eslint/js | 0 | No options | Require empty lines around comments | * |
max-len | @eslint/js | 0 | No options | Enforce a maximum line length | * |
no-confusing-arrow | @eslint/js | 0 | No options | Disallow arrow functions where they could be confused with comparisons | * |
no-mixed-operators | @eslint/js | 0 | No options | Disallow mixed binary operators | * |
no-tabs | @eslint/js | 0 | No options | Disallow all tabs | * |
no-unexpected-multiline | @eslint/js | 0 | No options | Disallow confusing multiline expressions | * |
quotes | @eslint/js | 0 | No options | Enforce the consistent use of either backticks, double, or single quotes | * |
@typescript-eslint/lines-around-comment | @typescript-eslint/eslint-plugin | 0 | No options | * | |
@typescript-eslint/quotes | @typescript-eslint/eslint-plugin | 0 | No options | * | |
babel/quotes | eslint-plugin-babel | 0 | No options | * | |
vue/html-self-closing | eslint-plugin-vue | 0 | No options | * | |
vue/max-len | eslint-plugin-vue | 0 | No options | * | |
array-bracket-newline | @eslint/js | 0 | No options | Enforce linebreaks after opening and before closing array brackets | * |
array-bracket-spacing | @eslint/js | 0 | No options | Enforce consistent spacing inside array brackets | * |
array-element-newline | @eslint/js | 0 | No options | Enforce line breaks after each array element | * |
arrow-parens | @eslint/js | 0 | No options | Require parentheses around arrow function arguments | * |
arrow-spacing | @eslint/js | 0 | No options | Enforce consistent spacing before and after the arrow in arrow functions | * |
block-spacing | @eslint/js | 0 | No options | Disallow or enforce spaces inside of blocks after opening block and before closing block | * |
brace-style | @eslint/js | 0 | No options | Enforce consistent brace style for blocks | * |
comma-dangle | @eslint/js | 0 | No options | Require or disallow trailing commas | * |
comma-spacing | @eslint/js | 0 | No options | Enforce consistent spacing before and after commas | * |
comma-style | @eslint/js | 0 | No options | Enforce consistent comma style | * |
computed-property-spacing | @eslint/js | 0 | No options | Enforce consistent spacing inside computed property brackets | * |
dot-location | @eslint/js | 0 | No options | Enforce consistent newlines before and after dots | * |
eol-last | @eslint/js | 0 | No options | Require or disallow newline at the end of files | * |
func-call-spacing | @eslint/js | 0 | No options | Require or disallow spacing between function identifiers and their invocations | * |
function-call-argument-newline | @eslint/js | 0 | No options | Enforce line breaks between arguments of a function call | * |
function-paren-newline | @eslint/js | 0 | No options | Enforce consistent line breaks inside function parentheses | * |
generator-star-spacing | @eslint/js | 0 | No options | Enforce consistent spacing around `*` operators in generator functions | * |
implicit-arrow-linebreak | @eslint/js | 0 | No options | Enforce the location of arrow function bodies | * |
indent | @eslint/js | 0 | No options | Enforce consistent indentation | * |
jsx-quotes | @eslint/js | 0 | No options | Enforce the consistent use of either double or single quotes in JSX attributes | * |
key-spacing | @eslint/js | 0 | No options | Enforce consistent spacing between keys and values in object literal properties | * |
keyword-spacing | @eslint/js | 0 | No options | Enforce consistent spacing before and after keywords | * |
linebreak-style | @eslint/js | 0 | No options | Enforce consistent linebreak style | * |
max-statements-per-line | @eslint/js | 0 | No options | Enforce a maximum number of statements allowed per line | * |
multiline-ternary | @eslint/js | 0 | No options | Enforce newlines between operands of ternary expressions | * |
newline-per-chained-call | @eslint/js | 0 | No options | Require a newline after each call in a method chain | * |
new-parens | @eslint/js | 0 | No options | Enforce or disallow parentheses when invoking a constructor with no arguments | * |
no-extra-parens | @eslint/js | 0 | No options | Disallow unnecessary parentheses | * |
no-extra-semi | @eslint/js | 0 | No options | Disallow unnecessary semicolons | * |
no-floating-decimal | @eslint/js | 0 | No options | Disallow leading or trailing decimal points in numeric literals | * |
no-mixed-spaces-and-tabs | @eslint/js | 0 | No options | Disallow mixed spaces and tabs for indentation | * |
no-multi-spaces | @eslint/js | 0 | No options | Disallow multiple spaces | * |
no-multiple-empty-lines | @eslint/js | 0 | No options | Disallow multiple empty lines | * |
no-trailing-spaces | @eslint/js | 0 | No options | Disallow trailing whitespace at the end of lines | * |
no-whitespace-before-property | @eslint/js | 0 | No options | Disallow whitespace before properties | * |
nonblock-statement-body-position | @eslint/js | 0 | No options | Enforce the location of single-line statements | * |
object-curly-newline | @eslint/js | 0 | No options | Enforce consistent line breaks after opening and before closing braces | * |
object-curly-spacing | @eslint/js | 0 | No options | Enforce consistent spacing inside braces | * |
object-property-newline | @eslint/js | 0 | No options | Enforce placing object properties on separate lines | * |
one-var-declaration-per-line | @eslint/js | 0 | No options | Require or disallow newlines around variable declarations | * |
operator-linebreak | @eslint/js | 0 | No options | Enforce consistent linebreak style for operators | * |
padded-blocks | @eslint/js | 0 | No options | Require or disallow padding within blocks | * |
quote-props | @eslint/js | 0 | No options | Require quotes around object literal property names | * |
rest-spread-spacing | @eslint/js | 0 | No options | Enforce spacing between rest and spread operators and their expressions | * |
semi | @eslint/js | 0 | No options | Require or disallow semicolons instead of ASI | * |
semi-spacing | @eslint/js | 0 | No options | Enforce consistent spacing before and after semicolons | * |
semi-style | @eslint/js | 0 | No options | Enforce location of semicolons | * |
space-before-blocks | @eslint/js | 0 | No options | Enforce consistent spacing before blocks | * |
space-before-function-paren | @eslint/js | 0 | No options | Enforce consistent spacing before `function` definition opening parenthesis | * |
space-in-parens | @eslint/js | 0 | No options | Enforce consistent spacing inside parentheses | * |
space-infix-ops | @eslint/js | 0 | No options | Require spacing around infix operators | * |
space-unary-ops | @eslint/js | 0 | No options | Enforce consistent spacing before or after unary operators | * |
switch-colon-spacing | @eslint/js | 0 | No options | Enforce spacing around colons of switch statements | * |
template-curly-spacing | @eslint/js | 0 | No options | Require or disallow spacing around embedded expressions of template strings | * |
template-tag-spacing | @eslint/js | 0 | No options | Require or disallow spacing between template tags and their literals | * |
wrap-iife | @eslint/js | 0 | No options | Require parentheses around immediate `function` invocations | * |
wrap-regex | @eslint/js | 0 | No options | Require parenthesis around regex literals | * |
yield-star-spacing | @eslint/js | 0 | No options | Require or disallow spacing around the `*` in `yield*` expressions | * |
@babel/object-curly-spacing | @babel/eslint-plugin | 0 | No options | * | |
@babel/semi | @babel/eslint-plugin | 0 | No options | * | |
@typescript-eslint/block-spacing | @typescript-eslint/eslint-plugin | 0 | No options | * | |
@typescript-eslint/brace-style | @typescript-eslint/eslint-plugin | 0 | No options | * | |
@typescript-eslint/comma-dangle | @typescript-eslint/eslint-plugin | 0 | No options | * | |
@typescript-eslint/comma-spacing | @typescript-eslint/eslint-plugin | 0 | No options | * | |
@typescript-eslint/func-call-spacing | @typescript-eslint/eslint-plugin | 0 | No options | * | |
@typescript-eslint/indent | @typescript-eslint/eslint-plugin | 0 | No options | * | |
@typescript-eslint/key-spacing | @typescript-eslint/eslint-plugin | 0 | No options | * | |
@typescript-eslint/keyword-spacing | @typescript-eslint/eslint-plugin | 0 | No options | * | |
@typescript-eslint/member-delimiter-style | @typescript-eslint/eslint-plugin | 0 | No options | * | |
@typescript-eslint/no-extra-parens | @typescript-eslint/eslint-plugin | 0 | No options | * | |
@typescript-eslint/no-extra-semi | @typescript-eslint/eslint-plugin | 0 | No options | * | |
@typescript-eslint/object-curly-spacing | @typescript-eslint/eslint-plugin | 0 | No options | * | |
@typescript-eslint/semi | @typescript-eslint/eslint-plugin | 0 | No options | * | |
@typescript-eslint/space-before-blocks | @typescript-eslint/eslint-plugin | 0 | No options | * | |
@typescript-eslint/space-before-function-paren | @typescript-eslint/eslint-plugin | 0 | No options | * | |
@typescript-eslint/space-infix-ops | @typescript-eslint/eslint-plugin | 0 | No options | * | |
@typescript-eslint/type-annotation-spacing | @typescript-eslint/eslint-plugin | 0 | No options | * | |
babel/object-curly-spacing | eslint-plugin-babel | 0 | No options | * | |
babel/semi | eslint-plugin-babel | 0 | No options | * | |
flowtype/boolean-style | eslint-plugin-flowtype | 0 | No options | * | |
flowtype/delimiter-dangle | eslint-plugin-flowtype | 0 | No options | * | |
flowtype/generic-spacing | eslint-plugin-flowtype | 0 | No options | * | |
flowtype/object-type-curly-spacing | eslint-plugin-flowtype | 0 | No options | * | |
flowtype/object-type-delimiter | eslint-plugin-flowtype | 0 | No options | * | |
flowtype/quotes | eslint-plugin-flowtype | 0 | No options | * | |
flowtype/semi | eslint-plugin-flowtype | 0 | No options | * | |
flowtype/space-after-type-colon | eslint-plugin-flowtype | 0 | No options | * | |
flowtype/space-before-generic-bracket | eslint-plugin-flowtype | 0 | No options | * | |
flowtype/space-before-type-colon | eslint-plugin-flowtype | 0 | No options | * | |
flowtype/union-intersection-spacing | eslint-plugin-flowtype | 0 | No options | * | |
react/jsx-child-element-spacing | eslint-plugin-react | 0 | No options | * | |
react/jsx-closing-bracket-location | eslint-plugin-react | 0 | No options | * | |
react/jsx-closing-tag-location | eslint-plugin-react | 0 | No options | * | |
react/jsx-curly-newline | eslint-plugin-react | 0 | No options | * | |
react/jsx-curly-spacing | eslint-plugin-react | 0 | No options | * | |
react/jsx-equals-spacing | eslint-plugin-react | 0 | No options | * | |
react/jsx-first-prop-new-line | eslint-plugin-react | 0 | No options | * | |
react/jsx-indent | eslint-plugin-react | 0 | No options | * | |
react/jsx-indent-props | eslint-plugin-react | 0 | No options | * | |
react/jsx-max-props-per-line | eslint-plugin-react | 0 | No options | * | |
react/jsx-newline | eslint-plugin-react | 0 | No options | * | |
react/jsx-one-expression-per-line | eslint-plugin-react | 0 | No options | * | |
react/jsx-props-no-multi-spaces | eslint-plugin-react | 0 | No options | * | |
react/jsx-tag-spacing | eslint-plugin-react | 0 | No options | * | |
react/jsx-wrap-multilines | eslint-plugin-react | 0 | No options | * | |
standard/array-bracket-even-spacing | eslint-plugin-standard | 0 | No options | * | |
standard/computed-property-even-spacing | eslint-plugin-standard | 0 | No options | * | |
standard/object-curly-even-spacing | eslint-plugin-standard | 0 | No options | * | |
unicorn/empty-brace-spaces | eslint-plugin-unicorn | 0 | No options | * | |
unicorn/no-nested-ternary | eslint-plugin-unicorn | 0 | No options | * | |
unicorn/number-literal-case | eslint-plugin-unicorn | 0 | No options | * | |
vue/array-bracket-newline | eslint-plugin-vue | 0 | No options | * | |
vue/array-bracket-spacing | eslint-plugin-vue | 0 | No options | * | |
vue/array-element-newline | eslint-plugin-vue | 0 | No options | * | |
vue/arrow-spacing | eslint-plugin-vue | 0 | No options | * | |
vue/block-spacing | eslint-plugin-vue | 0 | No options | * | |
vue/block-tag-newline | eslint-plugin-vue | 0 | No options | * | |
vue/brace-style | eslint-plugin-vue | 0 | No options | * | |
vue/comma-dangle | eslint-plugin-vue | 0 | No options | * | |
vue/comma-spacing | eslint-plugin-vue | 0 | No options | * | |
vue/comma-style | eslint-plugin-vue | 0 | No options | * | |
vue/dot-location | eslint-plugin-vue | 0 | No options | * | |
vue/func-call-spacing | eslint-plugin-vue | 0 | No options | * | |
vue/html-closing-bracket-newline | eslint-plugin-vue | 0 | No options | * | |
vue/html-closing-bracket-spacing | eslint-plugin-vue | 0 | No options | * | |
vue/html-end-tags | eslint-plugin-vue | 0 | No options | * | |
vue/html-indent | eslint-plugin-vue | 0 | No options | * | |
vue/html-quotes | eslint-plugin-vue | 0 | No options | * | |
vue/key-spacing | eslint-plugin-vue | 0 | No options | * | |
vue/keyword-spacing | eslint-plugin-vue | 0 | No options | * | |
vue/max-attributes-per-line | eslint-plugin-vue | 0 | No options | * | |
vue/multiline-html-element-content-newline | eslint-plugin-vue | 0 | No options | * | |
vue/multiline-ternary | eslint-plugin-vue | 0 | No options | * | |
vue/mustache-interpolation-spacing | eslint-plugin-vue | 0 | No options | * | |
vue/no-extra-parens | eslint-plugin-vue | 0 | No options | * | |
vue/no-multi-spaces | eslint-plugin-vue | 0 | No options | * | |
vue/no-spaces-around-equal-signs-in-attribute | eslint-plugin-vue | 0 | No options | * | |
vue/object-curly-newline | eslint-plugin-vue | 0 | No options | * | |
vue/object-curly-spacing | eslint-plugin-vue | 0 | No options | * | |
vue/object-property-newline | eslint-plugin-vue | 0 | No options | * | |
vue/operator-linebreak | eslint-plugin-vue | 0 | No options | * | |
vue/quote-props | eslint-plugin-vue | 0 | No options | * | |
vue/script-indent | eslint-plugin-vue | 0 | No options | * | |
vue/singleline-html-element-content-newline | eslint-plugin-vue | 0 | No options | * | |
vue/space-in-parens | eslint-plugin-vue | 0 | No options | * | |
vue/space-infix-ops | eslint-plugin-vue | 0 | No options | * | |
vue/space-unary-ops | eslint-plugin-vue | 0 | No options | * | |
vue/template-curly-spacing | eslint-plugin-vue | 0 | No options | * | |
generator-star | @eslint/js | 0 | No options | * | |
indent-legacy | @eslint/js | 0 | No options | Enforce consistent indentation | * |
no-arrow-condition | @eslint/js | 0 | No options | * | |
no-comma-dangle | @eslint/js | 0 | No options | * | |
no-reserved-keys | @eslint/js | 0 | No options | * | |
no-space-before-semi | @eslint/js | 0 | No options | * | |
no-spaced-func | @eslint/js | 0 | No options | Disallow spacing between function identifiers and their applications (deprecated) | * |
no-wrap-func | @eslint/js | 0 | No options | * | |
space-after-function-name | @eslint/js | 0 | No options | * | |
space-after-keywords | @eslint/js | 0 | No options | * | |
space-before-function-parentheses | @eslint/js | 0 | No options | * | |
space-before-keywords | @eslint/js | 0 | No options | * | |
space-in-brackets | @eslint/js | 0 | No options | * | |
space-return-throw-case | @eslint/js | 0 | No options | * | |
space-unary-word-ops | @eslint/js | 0 | No options | * | |
react/jsx-space-before-closing | eslint-plugin-react | 0 | No options | * | |
curly | @eslint/js | 2 | ["all"] | Enforce consistent brace style for all control statements | **/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx,astro} |