Enforce `return` statements in callbacks of array methods
Require braces around arrow function bodies
Enforce camelcase naming convention
Require `super()` calls in constructors
Enforce consistent brace style for all control statements
Require the use of `===` and `!==`
Enforce `for` loop update clause moving the counter in the right direction
Enforce `return` statements in getters
Enforce minimum and maximum identifier lengths
logical-assignment-operators
Require or disallow logical assignment operator shorthand
Enforce a maximum number of classes per file
Enforce a maximum depth that blocks can be nested
Enforce a maximum number of lines per file
Enforce a maximum number of lines of code in a function
Disallow the use of `alert`, `confirm`, and `prompt`
Disallow `Array` constructors
no-async-promise-executor
Disallow using an async function as a Promise executor
Disallow reassigning class members
Disallow assignment operators in conditional expressions
Disallow the use of `console`
Disallow reassigning `const` variables
Disallow constant expressions in conditions
Disallow control characters in regular expressions
Disallow duplicate arguments in `function` definitions
Disallow duplicate class members
Disallow duplicate keys in object literals
Disallow `else` blocks after `return` statements in `if` statements
Disallow empty block statements
Disallow empty character classes in regular expressions
Disallow empty destructuring patterns
Disallow empty static blocks
Disallow reassigning exceptions in `catch` clauses
Disallow unnecessary boolean casts
Disallow reassigning `function` declarations
Disallow assigning to imported bindings
Disallow inline comments after code
Disallow irregular whitespace
Disallow labeled statements
Disallow unnecessary nested blocks
Disallow `if` statements as the only statement in `else` blocks
Disallow literal numbers that lose precision
Disallow multiline strings
no-new-native-nonconstructor
Disallow `new` operators with global non-constructor functions
Disallow calling global object properties as functions
Disallow variable redeclaration
Disallow multiple spaces in regular expressions
Disallow specified syntax
Disallow assignment operators in `return` statements
Disallow assignments where both sides are exactly the same
Disallow comparisons where both sides are exactly the same
Disallow returning values from setters
Disallow variable declarations from shadowing variables declared in the outer scope
no-template-curly-in-string
Disallow template literal placeholder syntax in regular strings
Disallow `this`/`super` before calling `super()` in constructors
Disallow the use of undeclared variables unless mentioned in `/*global */` comments
Disallow initializing variables to `undefined`
Disallow confusing multiline expressions
no-unmodified-loop-condition
Disallow unmodified loop conditions
Disallow ternary operators when simpler alternatives exist
Disallow unreachable code after `return`, `throw`, `continue`, and `break` statements
Disallow control flow statements in `finally` blocks
Disallow negating the left operand of relational operators
Disallow unused expressions
no-unused-private-class-members
Disallow unused private class members
Disallow unused variables
Disallow the use of variables before they are defined
Disallow useless backreferences in regular expressions
Disallow unnecessary computed property keys in objects and classes
Disallow unnecessary constructors
Disallow renaming import, export, and destructured assignments to the same name
Disallow redundant return statements
Require `let` or `const` instead of `var`
Disallow `with` statements
Require or disallow method and property shorthand syntax for object literals
Enforce variables to be declared either together or separately in functions
Require using arrow functions for callbacks
Require `const` declarations for variables that are never reassigned after declared
Require destructuring from arrays and/or objects
Require rest parameters instead of `arguments`
Require spread operators instead of `.apply()`
Require or disallow Unicode byte order mark (BOM)
Require or disallow "Yoda" conditions
comment-length / limit-single-line-comments
Reflows single-line comments to ensure that blocks never exceed the configured length
comment-length / limit-multi-line-comments
Reflows multi-line comments to ensure that blocks never exceed the configured length
eslint-comments / disable-enable-pair
Require a `eslint-enable` comment for every `eslint-disable` comment
eslint-comments / no-aggregating-enable
Disallow a `eslint-enable` comment for multiple `eslint-disable` comments
eslint-comments / no-duplicate-disable
Disallow duplicate `eslint-disable` comments
eslint-comments / no-unlimited-disable
Disallow `eslint-disable` comments without rule names
eslint-comments / no-unused-enable
Disallow unused `eslint-enable` comments
eslint-comments / require-description
Require include descriptions in ESLint directive-comments
antfu / consistent-list-newline
Having line breaks styles to object, array and named imports
Fix duplication in imports
Prevent importing modules in `dist` folder
antfu / no-import-node-modules-by-path
Prevent importing modules in `node_modules` folder by relative or absolute path
Prevent using top-level await
Enforce top-level functions to be declared with function keyword
Forbid namespace (a.k.a. "wildcard" `*`) imports.
import / no-mutable-exports
Forbid the use of mutable exports with `var` or `let`.
Forbid a module from importing itself.
Forbid named default exports.
Forbid repeated import of the same module in multiple places.
Ensure all imports appear before other statements.
import / no-webpack-loader-syntax
Forbid webpack loader syntax in imports.
Enforce a convention in module import order.
import / newline-after-import
Enforce a newline after import statements.
simple-import-sort / imports
Automatically sort imports.
simple-import-sort / exports
Automatically sort exports.
Checks that `@access` tags have a valid value.
Reports invalid alignment of JSDoc block asterisks.
Ensures that parameter names in JSDoc match those in the function declaration.
jsdoc / check-property-names
Ensures that property names in JSDoc are not duplicated on the same block and that nested properties have defined roots.
jsdoc / convert-to-jsdoc-comments
Converts non-JSDoc comments preceding or following nodes into JSDoc ones
Expects specific tags to be empty of any content.
jsdoc / implements-on-classes
Reports an issue with any non-constructor function using `@implements`.
This rule reports doc comments that only restate their attached name.
Controls how and whether jsdoc blocks can be expressed as single or multiple line blocks.
jsdoc / no-blank-block-descriptions
Detects and removes extra lines of a blank block description
Removes empty blocks with nothing but possibly line breaks
This rule reports defaults being used on the relevant portion of `@param` or `@default`.
Prevents use of multiple asterisks at the beginning of lines.
This rule reports types being used on `@param` or `@returns`.
jsdoc / require-asterisk-prefix
Requires that each JSDoc line starts with an `*`.
jsdoc / require-description
Requires that all functions have a description.
jsdoc / require-description-complete-sentence
Requires that block description, explicit `@description`, and `@param`/`@returns` tag descriptions are written in complete sentences.
jsdoc / require-hyphen-before-param-description
Requires a hyphen before the `@param` description.
Requires that all function parameters are documented.
jsdoc / require-param-description
Requires that each `@param` tag has a `description` value.
Requires that all function parameters have names.
Requires that all `@typedef` and `@namespace` tags have `@property` when their type is a plain `object`, `Object`, or `PlainObject`.
jsdoc / require-property-description
Requires that each `@property` tag has a `description` value.
jsdoc / require-property-name
Requires that all function `@property` tags have names.
Requires that returns are documented.
jsdoc / require-returns-check
Requires a return statement in function body if a `@returns` tag is specified in jsdoc comment.
jsdoc / require-returns-description
Requires that the `@returns` tag has a `description` value.
Requires template tags for each generic type parameter
jsdoc / require-yields-check
Requires a yield statement in function body if a `@yields` tag is specified in jsdoc comment.
Sorts tags by a specified sequence according to tag name.
package-json / no-empty-fields
Reports on unnecessary empty arrays and objects.
package-json / no-redundant-files
Prevents adding unnecessary / redundant files.
package-json / order-properties
Package properties must be declared in standard order
package-json / require-author
Requires the `author` property to be present.
package-json / require-files
Requires the `files` property to be present.
package-json / require-keywords
Requires the `keywords` property to be present.
package-json / require-name
Requires the `name` property to be present.
package-json / require-types
Requires the `types` property to be present.
package-json / require-version
Requires the `version` property to be present.
package-json / repository-shorthand
Enforce either object or shorthand declaration for repository.
package-json / sort-collections
Dependencies, scripts, and configuration values must be declared in alphabetical order.
package-json / unique-dependencies
Checks a dependency isn't specified more than once (i.e. in `dependencies` and `devDependencies`)
package-json / valid-local-dependency
Checks existence of local dependencies in the package.json
Enforce that package names are valid npm package names
package-json / valid-package-definition
Enforce that package.json has all properties required by the npm spec
package-json / valid-repository-directory
Enforce that if repository directory is specified, it matches the path to the package.json file
package-json / valid-version
Enforce that package versions are valid semver specifiers
Enforce consistent param names and ordering when creating new promises.
Disallow wrapping values in `Promise.resolve` or `Promise.reject` when not needed.
Require returning inside each `then()` to create readable and reusable Promise chains.
Enforce the use of `catch()` on un-returned promises.
promise / prefer-await-to-callbacks
Prefer `async`/`await` to the callback pattern.
promise / prefer-await-to-then
Prefer `await` to `then()`/`catch()`/`finally()` for reading Promise values.
Require creating a `Promise` constructor before using it in an ES5 environment.
promise / no-callback-in-promise
Disallow calling `cb()` inside of a `then()` (use [util.callbackify][] instead).
promise / no-promise-in-callback
Disallow using promises inside of callbacks.
Disallow nested `then()` or `catch()` statements.
Disallow creating `new` promises outside of utility libs (use [util.promisify][] instead).
Disallow calling `new` on a Promise static method.
promise / no-return-in-finally
Disallow return statements in `finally()`.
promise / no-multiple-resolved
Disallow creating new promises with paths that resolve multiple times.
shopify / prefer-class-properties
Prefer class properties to assignment of literals in constructors.
shopify / prefer-early-return
Prefer early returns over full-body conditional wrapping in function declarations.
shopify / prefer-module-scope-constants
Prefer that screaming snake case variables always be defined using `const`, and always appear at module scope.
shopify / react-hooks-strict-return
Restrict the number of returned items from React hooks.
shopify / strict-component-boundaries
Prevent module imports between components.
shopify / typescript-prefer-pascal-case-enums
Enforce Pascal case when naming enums.
shopify / typescript-prefer-singular-enums
Prefer singular TypeScript enums.
Sections of code should not be commented out
sonar / elseif-without-else
"if ... else if" constructs should end with "else" clauses
Increment (++) and decrement (--) operators should not be used in a method call or mixed with other operators in an expression
Mergeable "if" statements should be combined
sonar / no-redundant-boolean
Boolean literals should not be used in comparisons
sonar / prefer-single-boolean-return
Return of boolean expressions should not be wrapped into an "if-then-else" statement
Track uses of "FIXME" tags
Track uses of "TODO" tags
sonar / no-duplicate-string
String literals should not be duplicated
sonar / no-parameter-reassignment
Initial values of parameters, caught exceptions, and loop variables should not be ignored
A "while" loop should be used instead of a "for" loop
sonar / public-static-readonly
Public "static" fields should be read-only
"switch" statements should not have too many "case" clauses
sonar / prefer-immediate-return
Local variables should not be declared and then immediately returned or thrown
sonar / no-one-iteration-loop
Loops with at most one iteration should be refactored
sonar / no-identical-expressions
Identical expressions should not be used on both sides of a binary operator
"switch" statements should not be nested
sonar / constructor-for-side-effects
Objects should not be created to be dropped immediately without being used
Unused assignments should be removed
sonar / no-identical-conditions
"if/else if" chains and "switch" cases should not have the same condition
sonar / no-duplicated-branches
Two branches in a conditional structure should not have exactly the same implementation
sonar / no-inverted-boolean-check
Boolean checks should not be inverted
sonar / misplaced-loop-counter
"for" loop increment clauses should modify the loops' counters
sonar / no-useless-increment
Values should not be uselessly incremented
Return values from functions without side effects should not be ignored
sonar / prefer-object-literal
Object literal syntax should be used
sonar / no-gratuitous-expressions
Boolean expressions should not be gratuitous
"catch" clauses should do more than rethrow
sonar / non-existent-operator
Non-existent operators '=+', '=-' and '=!' should not be used
sonar / file-name-differ-from-class
Default export names and file names should match
sonar / no-nested-conditional
Ternary operators should not be nested
sonar / destructuring-assignment-syntax
Destructuring syntax should be used for assignments
Jump statements should not be redundant
sonar / no-use-of-empty-return-value
The return value of void functions should not be used
sonar / cognitive-complexity
Cognitive Complexity of functions should not be too high
"super()" should be invoked appropriately
sonar / no-all-duplicated-branches
All branches in a conditional structure should not have exactly the same implementation
Errors should not be created without being thrown
sonar / no-unused-collection
Collection contents should be used
sonar / no-element-overwrite
Collection elements should not be replaced unconditionally
sonar / no-identical-functions
Functions should not have identical implementations
sonar / no-empty-collection
Empty collections should not be accessed or iterated
Type aliases should be used
sonar / no-nested-template-literals
Template literals should not be nested
sonar / prefer-promise-shorthand
Shorthand promises should be used
sonar / no-redundant-optional
Optional property declarations should not use both '?' and 'undefined' syntax
Optional boolean parameters should have default value
Promise rejections should not be caught by "try" blocks
sonar / no-async-constructor
Constructors should not contain asynchronous operations
better-max-params / better-max-params
Set a max param number for your constructors, functions, methods etc.
de-morgan / no-negated-conjunction
Transforms the negation of a conjunction !(A && B) into the equivalent !A || !B according to De Morgan’s law
de-morgan / no-negated-disjunction
Transforms the negation of a disjunction !(A || B) into the equivalent !A && !B according to De Morgan’s law
ts / adjacent-overload-signatures
Require that function overload signatures be consecutive
Require consistently using either `T[]` or `Array<T>` for arrays
Disallow `@ts-<directive>` comments or require descriptions after directives
ts / consistent-generic-constructors
Enforce specifying generic type arguments on type annotation or constructor name of a constructor call
ts / consistent-indexed-object-style
Require or disallow the `Record` type
ts / consistent-type-definitions
Enforce type definitions to consistently use either `interface` or `type`
ts / consistent-type-imports
Enforce consistent usage of type imports
Enforce default parameters to be last
ts / explicit-function-return-type
Require explicit return types on functions and class methods
ts / explicit-member-accessibility
Require explicit accessibility modifiers on class properties and methods
ts / method-signature-style
Enforce using a particular method signature syntax
Disallow generic `Array` constructors
ts / no-confusing-non-null-assertion
Disallow non-null assertion in locations that may be confusing
Disallow duplicate class members
ts / no-duplicate-enum-values
Disallow duplicate enum member values
Disallow using the `delete` operator on computed key expressions
Disallow accidentally using the "empty object" type
ts / no-extra-non-null-assertion
Disallow extra non-null assertions
Disallow classes used as namespaces
Disallow iterating over an array with a for-in loop
ts / no-import-type-side-effects
Enforce the use of top-level import type qualifier when an import only has specifiers with inline type qualifiers
Disallow explicit type declarations for variables or parameters initialized to a number, string, or boolean
Disallow `void` type outside of generic or return types
Enforce valid definition of `new` and `constructor`
Disallow TypeScript namespaces
ts / no-non-null-asserted-nullish-coalescing
Disallow non-null assertions in the left operand of a nullish coalescing operator
ts / no-non-null-asserted-optional-chain
Disallow non-null assertions after an optional chain expression
Disallow non-null assertions using the `!` postfix operator
Disallow variable redeclaration
Disallow invocation of `require()`
Disallow variable declarations from shadowing variables declared in the outer scope
ts / no-unnecessary-type-constraint
Disallow unnecessary constraints on generic types
ts / no-unsafe-declaration-merging
Disallow unsafe declaration merging
ts / no-unsafe-function-type
Disallow using the unsafe built-in Function type
Disallow unused expressions
Disallow unused variables
Disallow the use of variables before they are defined
ts / no-useless-constructor
Disallow unnecessary constructors
ts / no-wrapper-object-types
Disallow using confusing built-in primitive class wrappers
Enforce the use of `as const` over literal type
Enforce the use of `for-of` loop over the standard `for` loop where possible
Enforce using function types instead of interfaces with call signatures
ts / prefer-literal-enum-member
Require all enum members to be literal values
ts / prefer-namespace-keyword
Require using `namespace` keyword over `module` keyword to declare custom TypeScript modules
ts / triple-slash-reference
Disallow certain triple slash directives in favor of ES6-style import declarations
Disallow two overloads that could be unified into one with a union or an optional/rest parameter
Enforce a specific parameter name in catch clauses.
unicorn / consistent-destructuring
Use destructured variables over properties.
unicorn / consistent-function-scoping
Move function definitions to the highest possible scope.
unicorn / empty-brace-spaces
Enforce no spaces between braces.
Enforce passing a `message` value when creating a built-in error.
Enforce a case style for filenames.
unicorn / no-array-for-each
Prefer `for…of` over the `forEach` method.
unicorn / no-array-push-push
Enforce combining multiple `Array#push()` into one call.
unicorn / no-await-expression-member
Disallow member access from await expression.
Do not use a `for` loop that can be replaced with a `for-of` loop.
unicorn / no-keyword-prefix
Disallow identifiers starting with `new` or `class`.
Disallow `if` statements as the only statement in `if` blocks without `else`.
unicorn / no-negated-condition
Disallow negated conditions.
unicorn / no-negation-in-equality-check
Disallow negated expression in equality check.
unicorn / no-nested-ternary
Disallow nested ternary expressions.
unicorn / no-object-as-default-parameter
Disallow the use of objects as default parameters.
unicorn / no-static-only-class
Disallow classes that only have static members.
unicorn / no-unreadable-array-destructuring
Disallow unreadable array destructuring.
unicorn / no-unused-properties
Disallow unused object properties.
unicorn / no-useless-promise-resolve-reject
Disallow returning/yielding `Promise.resolve/reject()` in async functions or promise callbacks
unicorn / no-useless-spread
Disallow unnecessary spread.
unicorn / no-useless-undefined
Disallow useless `undefined`.
unicorn / number-literal-case
Enforce proper case for numeric literals.
unicorn / prefer-default-parameters
Prefer default parameters over reassignment.
unicorn / prefer-export-from
Prefer `export…from` when re-exporting.
Prefer `.includes()` over `.indexOf()`, `.lastIndexOf()`, and `Array#some()` when checking for existence or non-existence.
unicorn / prefer-logical-operator-over-ternary
Prefer using a logical operator over a ternary.
unicorn / prefer-math-min-max
Prefer `Math.min()` and `Math.max()` over ternaries for simple comparisons.
unicorn / prefer-optional-catch-binding
Prefer omitting the `catch` binding parameter.
Prefer `Set#has()` over `Array#includes()` when checking for existence or non-existence.
Prefer `switch` over multiple `else-if`.
Prefer ternary expressions over simple `if-else` statements.
unicorn / prevent-abbreviations
unicorn / switch-case-braces
Enforce consistent brace style for `case` clauses.
Fix whitespace-insensitive template indentation.
Require `new` when creating an error.
arrow-style / arrow-return-style
Enforce arrow function return style
arrow-style / no-export-default-arrow
Disallow export default anonymous arrow function<br/>_**Automatically fix using the current file name.**_
style / array-bracket-newline
Enforce linebreaks after opening and before closing array brackets
style / array-bracket-spacing
Enforce consistent spacing inside array brackets
style / array-element-newline
Enforce line breaks after each array element
Require parentheses around arrow function arguments
Enforce consistent spacing before and after the arrow in arrow functions
Disallow or enforce spaces inside of blocks after opening block and before closing block
Enforce consistent brace style for blocks
Require or disallow trailing commas
Enforce consistent spacing before and after commas
Enforce consistent comma style
style / computed-property-spacing
Enforce consistent spacing inside computed property brackets
Enforce consistent newlines before and after dots
Require or disallow newline at the end of files
Require or disallow spacing between function identifiers and their invocations
style / function-call-argument-newline
Enforce line breaks between arguments of a function call
style / function-call-spacing
Require or disallow spacing between function identifiers and their invocations
style / function-paren-newline
Enforce consistent line breaks inside function parentheses
style / generator-star-spacing
Enforce consistent spacing around `*` operators in generator functions
style / implicit-arrow-linebreak
Enforce the location of arrow function bodies
Enforce consistent indentation
Indentation for binary operators
style / jsx-child-element-spacing
Enforce or disallow spaces inside of curly braces in JSX attributes and expressions
style / jsx-closing-bracket-location
Enforce closing bracket location in JSX
style / jsx-closing-tag-location
Enforce closing tag location for multiline JSX
style / jsx-curly-brace-presence
Disallow unnecessary JSX expressions when literals alone are sufficient or enforce JSX expressions on literals in JSX children or attributes
Enforce consistent linebreaks in curly braces in JSX attributes and expressions
Enforce or disallow spaces inside of curly braces in JSX attributes and expressions
Enforce or disallow spaces around equal signs in JSX attributes
style / jsx-first-prop-new-line
Enforce proper position of the first property in JSX
style / jsx-function-call-newline
Enforce line breaks before and after JSX elements when they are used as arguments to a function.
Enforce props indentation in JSX
style / jsx-max-props-per-line
Enforce maximum of props on a single line in JSX
Require or prevent a new line after jsx elements and expressions.
style / jsx-one-expression-per-line
Require one JSX element per line
style / jsx-props-no-multi-spaces
Disallow multiple spaces between inline JSX props
Enforce the consistent use of either double or single quotes in JSX attributes
Enforce whitespace in and around the JSX opening and closing brackets
style / jsx-wrap-multilines
Disallow missing parentheses around multiline JSX
Enforce consistent spacing between property names and type annotations in types and interfaces
Enforce consistent spacing before and after keywords
Enforce consistent linebreak style
style / lines-around-comment
Require empty lines around comments
style / lines-between-class-members
Require or disallow an empty line between class members
Enforce a maximum line length
style / max-statements-per-line
Enforce a maximum number of statements allowed per line
style / member-delimiter-style
Require a specific member delimiter style for interfaces and type literals
style / multiline-comment-style
Enforce a particular style for multiline comments
Enforce newlines between operands of ternary expressions
Enforce or disallow parentheses when invoking a constructor with no arguments
style / newline-per-chained-call
Require a newline after each call in a method chain
Disallow arrow functions where they could be confused with comparisons
Disallow unnecessary parentheses
Disallow unnecessary semicolons
style / no-floating-decimal
Disallow leading or trailing decimal points in numeric literals
Disallow mixed binary operators
style / no-mixed-spaces-and-tabs
Disallow mixed spaces and tabs for indentation
style / no-multiple-empty-lines
Disallow multiple empty lines
Disallow trailing whitespace at the end of lines
style / no-whitespace-before-property
Disallow whitespace before properties
style / nonblock-statement-body-position
Enforce the location of single-line statements
style / object-curly-newline
Enforce consistent line breaks after opening and before closing braces
style / object-curly-spacing
Enforce consistent spacing inside braces
style / object-property-newline
Enforce placing object properties on separate lines
style / one-var-declaration-per-line
Require or disallow newlines around variable declarations
Enforce consistent linebreak style for operators
Require or disallow padding within blocks
style / padding-line-between-statements
Require or disallow padding lines between statements
Require quotes around object literal, type literal, interfaces and enums property names
Enforce the consistent use of either backticks, double, or single quotes
style / rest-spread-spacing
Enforce spacing between rest and spread operators and their expressions
Require or disallow semicolons instead of ASI
Enforce consistent spacing before and after semicolons
Enforce location of semicolons
style / space-before-blocks
Enforce consistent spacing before blocks
style / space-before-function-paren
Enforce consistent spacing before function parenthesis
Enforce consistent spacing inside parentheses
Require spacing around infix operators
Enforce consistent spacing before or after unary operators
Enforce consistent spacing after the `//` or `/*` in a comment
style / switch-colon-spacing
Enforce spacing around colons of switch statements
style / template-curly-spacing
Require or disallow spacing around embedded expressions of template strings
style / template-tag-spacing
Require or disallow spacing between template tags and their literals
style / type-annotation-spacing
Require consistent spacing around type annotations
style / type-generic-spacing
Enforces consistent spacing inside TypeScript type generics
style / type-named-tuple-spacing
Expect space before the type declaration in the named tuple
Require parentheses around immediate `function` invocations
Require parenthesis around regex literals
Require or disallow spacing around the `*` in `yield*` expressions
perfectionist / sort-variable-declarations
Enforce sorted variable declarations.
perfectionist / sort-intersection-types
Enforce sorted intersection types.
perfectionist / sort-heritage-clauses
Enforce sorted heritage clauses.
perfectionist / sort-array-includes
Enforce sorted arrays before include method.
perfectionist / sort-object-types
Enforce sorted object types.
perfectionist / sort-union-types
Enforce sorted union types.
perfectionist / sort-switch-case
Enforce sorted switch cases.
perfectionist / sort-interfaces
Enforce sorted interface properties.
perfectionist / sort-jsx-props
Enforce sorted JSX props.
perfectionist / sort-modules
perfectionist / sort-classes
perfectionist / sort-objects
Enforce sorted TypeScript enums.
Enforce sorted Map elements.
Enforce `test` and `it` usage conventions
Enforce assertion to be made in a test body
Enforces a maximum number assertion calls in a test body
Enforces a maximum depth to nested describe calls
test / no-commented-out-tests
Disallow commented out tests
test / no-conditional-expect
Disallow calling `expect` conditionally
test / no-conditional-in-test
Disallow conditional logic in tests
Disallow using a callback in asynchronous tests and hooks
Disallow duplicate setup and teardown hooks
Disallow using `exports` in files containing tests
Disallow identical titles
test / no-standalone-expect
Disallow using `expect` outside of `it` or `test` blocks
Require using `.only` and `.skip` over `f` and `x`
test / no-test-return-statement
Disallow explicitly returning from tests
test / no-untyped-mock-factory
Disallow using `jest.mock()` factories without an explicit type parameter
Enforce padding around Jest functions
Suggest using `toBeCalledWith()` or `toHaveBeenCalledWith()`
test / prefer-comparison-matcher
Suggest using the built-in comparison matchers
Prefer using `.each` rather than manual loops
test / prefer-equality-matcher
Suggest using the built-in equality matchers
test / prefer-hooks-in-order
Prefer having hooks in a consistent order
test / prefer-lowercase-title
Enforce lowercase test names
test / prefer-mock-promise-shorthand
Prefer mock resolved/rejected shorthands for promises
Suggest using `toStrictEqual()`
Suggest using `toBe()` for primitive literals
Suggest using `toContain()`
test / prefer-to-have-length
Suggest using `toHaveLength()`
Suggest using `test.todo`
Require setup and teardown code to be within a hook
test / require-to-throw-message
Require a message for `toThrow()`
test / require-top-level-describe
Require test cases and hooks to be inside a `describe` block
Enforce unbound methods are called with their expected scope
test / valid-describe-callback
Enforce valid `describe()` callback
test / valid-expect-in-promise
Require promises that have expectations in their chain to be valid
Enforce valid `expect()` usage
jsonc / array-bracket-spacing
Disallow or enforce spaces inside of brackets
Require or disallow trailing commas
Enforce consistent comma style
Enforce consistent indentation
Enforce consistent spacing between keys and values in object literal properties
jsonc / no-binary-expression
Disallow binary expression
jsonc / no-binary-numeric-literals
Disallow binary numeric literals
Disallow duplicate keys in object literals
jsonc / no-escape-sequence-in-identifier
Disallow escape sequences in identifiers.
jsonc / no-floating-decimal
Disallow leading or trailing decimal points in numeric literals
jsonc / no-hexadecimal-numeric-literals
Disallow hexadecimal numeric literals
Disallow multiline strings
Disallow number property keys
jsonc / no-numeric-separators
Disallow numeric separators
Disallow octal escape sequences in string literals
jsonc / no-octal-numeric-literals
Disallow octal numeric literals
Disallow legacy octal literals
Disallow parentheses around the expression
jsonc / no-template-literals
Disallow template literals
jsonc / no-unicode-codepoint-escapes
Disallow Unicode code point escape sequences.
Disallow unnecessary escape usage
jsonc / object-curly-newline
Enforce consistent line breaks inside braces
jsonc / object-curly-spacing
Enforce consistent spacing inside braces
jsonc / object-property-newline
Enforce placing object properties on separate lines
Require quotes around object literal property names
Enforce use of double or single quotes
Require object keys to be sorted
Disallow spaces after unary operators
Disallow invalid number for JSON
pnpm / json-enforce-catalog
Enforce using "catalog:" in `package.json`
Enforce using valid catalog in `package.json`
pnpm / json-prefer-workspace-settings
Prefer having pnpm settings in `pnpm-workspace.yaml` instead of `package.json`. This would requires pnpm v10.6+, see https://github.com/orgs/pnpm/discussions/9037.
pnpm / yaml-no-unused-catalog-item
Disallow unused catalogs in `pnpm-workspace.yaml`
pnpm / yaml-no-duplicate-catalog-item
Disallow unused catalogs in `pnpm-workspace.yaml`
yaml / block-mapping-colon-indicator-newline
Enforce consistent line breaks after `:` indicator
yaml / block-mapping-question-indicator-newline
Enforce consistent line breaks after `?` indicator
Require or disallow block style mappings.
yaml / block-sequence-hyphen-indicator-newline
Enforce consistent line breaks after `-` indicator
Require or disallow block style sequences.
Enforce YAML file extension
yaml / flow-mapping-curly-newline
Enforce consistent line breaks inside braces
yaml / flow-mapping-curly-spacing
Enforce consistent spacing inside braces
yaml / flow-sequence-bracket-newline
Enforce linebreaks after opening and before closing flow sequence brackets
yaml / flow-sequence-bracket-spacing
Enforce consistent spacing inside flow sequence brackets
Enforce consistent indentation
Enforce consistent spacing between keys and values in mapping pairs
Disallow empty mapping keys
yaml / no-empty-sequence-entry
Disallow empty sequence entries
yaml / no-irregular-whitespace
Disallow irregular whitespace
Disallow tabs for indentation.
Require or disallow plain style scalar.
Enforce the consistent use of either double, or single quotes
Enforce consistent spacing after the `#` in a comment
toml / array-bracket-newline
Enforce linebreaks after opening and before closing array brackets
toml / array-bracket-spacing
Enforce consistent spacing inside array brackets
toml / array-element-newline
Enforce line breaks between array elements
Enforce consistent comma style in array
Enforce consistent indentation
toml / inline-table-curly-spacing
Enforce consistent spacing inside braces
Enforce consistent spacing between keys and values in key/value pairs
Disallow defining pair keys out-of-order
Disallow spacing around infix operators
toml / no-unreadable-number-separator
Disallow number separators that to not enhance readability.
toml / padding-line-between-pairs
Require or disallow padding lines between pairs
toml / padding-line-between-tables
Require or disallow padding lines between tables
toml / precision-of-fractional-seconds
Disallow precision of fractional seconds greater than the specified value.
toml / precision-of-integer
Disallow precision of integer greater than the specified value.
Require or disallow quotes around keys
Enforce consistent spacing after the `#` in a comment
toml / table-bracket-spacing
Enforce consistent spacing inside table brackets
Disallow defining tables out-of-order
Use Prettier to format code
Migrate builtin and `@typescript-eslint` stylistic rules to `@stylistic` rules