ESLint Config Inspector v1.2.0
Composed with88config items, updated3 weeks ago
Configs
Rules
Files
Plugins
Usage
State
792rules enabledout of 1459 rules
Enforce getter and setter pairs in objects and classes
Enforce `return` statements in callbacks of array methods
Require braces around arrow function bodies
Enforce the use of variables within the scope they are defined
Require `super()` calls in constructors
Enforce consistent brace style for all control statements
Enforce `default` clauses in `switch` statements to be last
Enforce dot notation whenever possible
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
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
Require constructor names to begin with a capital letter
Disallow the use of `alert`, `confirm`, and `prompt`
Disallow `Array` constructors
Disallow using an async function as a Promise executor
Disallow the use of `arguments.caller` or `arguments.callee`
Disallow lexical declarations in case clauses
Disallow reassigning class members
Disallow comparing against `-0`
Disallow assignment operators in conditional expressions
Disallow the use of `console`
Disallow reassigning `const`, `using`, and `await using` variables
Disallow constant expressions in conditions
Disallow control characters in regular expressions
Disallow the use of `debugger`
Disallow deleting variables
Disallow duplicate arguments in `function` definitions
Disallow duplicate class members
Disallow duplicate keys in object literals
Disallow duplicate case labels
Disallow `else` blocks after `return` statements in `if` statements
Disallow empty block statements
Disallow empty character classes in regular expressions
Disallow empty functions
Disallow empty destructuring patterns
Disallow empty static blocks
Disallow the use of `eval()`
Disallow reassigning exceptions in `catch` clauses
Disallow extending native types
Disallow unnecessary calls to `.bind()`
Disallow unnecessary boolean casts
Disallow fallthrough of `case` statements
Disallow reassigning `function` declarations
Disallow assignments to native objects or read-only global variables
Disallow the use of `eval()`-like methods
Disallow assigning to imported bindings
Disallow inline comments after code
Disallow invalid regular expression strings in `RegExp` constructors
Disallow irregular whitespace
Disallow the use of the `__iterator__` property
Disallow labeled statements
Disallow unnecessary nested blocks
Disallow `if` statements as the only statement in `else` blocks
Disallow literal numbers that lose precision
Disallow characters which are made with multiple code points in character class syntax
Disallow multiline strings
Disallow `new` operators outside of assignments or comparisons
Disallow `new` operators with the `Function` object
Disallow `new` operators with global non-constructor functions
Disallow `new` operators with the `String`, `Number`, and `Boolean` objects
Disallow calling global object properties as functions
Disallow octal literals
Disallow octal escape sequences in string literals
Disallow the use of the `__proto__` property
Disallow calling some `Object.prototype` methods directly on objects
Disallow variable redeclaration
Disallow multiple spaces in regular expressions
Disallow specified global variables
Disallow certain properties on certain objects
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 comma operators
Disallow returning values from setters
Disallow variable declarations from shadowing variables declared in the outer scope
Disallow identifiers from shadowing restricted names
Disallow sparse arrays
Disallow template literal placeholder syntax in regular strings
Disallow `this`/`super` before calling `super()` in constructors
Disallow throwing literals as exceptions
Disallow the use of undeclared variables unless mentioned in `/*global */` comments
Disallow initializing variables to `undefined`
Disallow confusing multiline expressions
Disallow unmodified loop conditions
Disallow ternary operators when simpler alternatives exist
Disallow unreachable code after `return`, `throw`, `continue`, and `break` statements
Disallow loops with a body that allows only one iteration
Disallow control flow statements in `finally` blocks
Disallow negating the left operand of relational operators
Disallow use of optional chaining in contexts where the `undefined` value is not allowed
Disallow unused expressions
Disallow unused labels
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 calls to `.call()` and `.apply()`
Disallow unnecessary `catch` clauses
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
Disallow the use of `Math.pow` in favor of the `**` operator
Require using Error objects as Promise rejection reasons
Disallow use of the `RegExp` constructor in favor of regular expression literals
Require rest parameters instead of `arguments`
Require spread operators instead of `.apply()`
Require template literals instead of string concatenation
Require or disallow strict mode directives
Require symbol descriptions
Require or disallow Unicode byte order mark (BOM)
Require calls to `isNaN()` when checking for `NaN`
Enforce comparing `typeof` expressions against valid strings
Require `var` declarations be placed at the top of their containing scope
Require or disallow "Yoda" conditions
Reflows single-line comments to ensure that blocks never exceed the configured length
Require a `eslint-enable` comment for every `eslint-disable` comment
Disallow a `eslint-enable` comment for multiple `eslint-disable` comments
Disallow duplicate `eslint-disable` comments
Disallow `eslint-disable` comments without rule names
Disallow unused `eslint-enable` comments
Require include descriptions in ESLint directive-comments
Enforce linebreaks after opening and before closing array brackets
Enforce consistent spacing inside array brackets
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
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
Enforce line breaks between arguments of a function call
Require or disallow spacing between function identifiers and their invocations
Enforce consistent line breaks inside function parentheses
Enforce consistent spacing around `*` operators in generator functions
Enforce the location of arrow function bodies
Enforce consistent indentation
Indentation for binary operators
Enforce or disallow spaces inside of curly braces in JSX attributes and expressions
Enforce closing bracket location in JSX
Enforce closing tag location for multiline JSX
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
Enforce proper position of the first property in JSX
Enforce line breaks before and after JSX elements when they are used as arguments to a function.
Enforce props indentation in JSX
Enforce maximum of props on a single line in JSX
Require or prevent a new line after jsx elements and expressions.
Require one JSX element per line
Disallow multiple spaces between inline JSX props
Enforce the consistent use of either double or single quotes in JSX attributes
Disallow extra closing tags for components without children
Enforce props alphabetical sorting
Enforce whitespace in and around the JSX opening and closing brackets
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
Require empty lines around comments
Require or disallow an empty line between class members
Enforce a maximum line length
Enforce a maximum number of statements allowed per line
Require a specific member delimiter style for interfaces and type literals
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
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
Disallow leading or trailing decimal points in numeric literals
Disallow mixed binary operators
Disallow mixed spaces and tabs for indentation
Disallow multiple spaces
Disallow multiple empty lines
Disallow all tabs
Disallow trailing whitespace at the end of lines
Disallow whitespace before properties
Enforce the location of single-line statements
Enforce consistent line breaks after opening and before closing braces
Enforce consistent spacing inside braces
Enforce placing object properties on separate lines
Require or disallow newlines around variable declarations
Enforce consistent linebreak style for operators
Require or disallow padding within blocks
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
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
Enforce consistent spacing before blocks
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
Enforce spacing around colons of switch statements
Require or disallow spacing around embedded expressions of template strings
Require or disallow spacing between template tags and their literals
Require consistent spacing around type annotations
Enforces consistent spacing inside TypeScript type generics
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
Having line breaks styles to object, array and named imports
Newline after if
Fix duplication in imports
Prevent importing modules in `dist` folder
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
Ensure all imports appear before other statements.
Enforce a newline after import statements.
Forbid default exports.
Forbid repeated import of the same module in multiple places.
Forbid the use of mutable exports with `var` or `let`.
Forbid named default exports.
Reports on unnecessary empty arrays and objects.
Prevents adding unnecessary / redundant files.
Package properties must be declared in standard order
Requires the `author` property to be present.
Requires the `description` property to be present.
Requires the `files` property to be present.
Requires the `keywords` property to be present.
Requires the `name` property to be present.
Requires the `type` property to be present.
Requires the `types` property to be present.
Requires the `version` property to be present.
Enforce either object or shorthand declaration for repository.
Selected collections must be in a consistent order (lexicographical for most; lifecycle-aware for scripts).
Checks a dependency isn't specified more than once (i.e. in `dependencies` and `devDependencies`)
Enforce that the `author` property is valid.
Enforce that the `bundleDependencies` (also: `bundledDependencies`) property is valid.
Enforce that the `config` property is valid.
Enforce that the `cpu` property is valid.
Enforce that the `directories` property is valid.
Enforce that the `exports` property is valid.
Enforce that the `license` property is valid.
Enforce that the `scripts` property is valid.
Enforce that the `type` property is valid.
Enforce that the `bin` property is valid.
Enforce that package names are valid npm package names
Enforce that package.json has all properties required by the npm spec
Enforce that if repository directory is specified, it matches the path to the package.json file
Enforce that package versions are valid semver specifiers
Set a max param number for your constructors, functions, methods etc.
Transforms the negation of a conjunction !(A && B) into the equivalent !A || !B according to De Morgan’s law
Transforms the negation of a disjunction !(A || B) into the equivalent !A && !B according to De Morgan’s law
Disallow unused variables
Disallow unused variables
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.
Prefer `async`/`await` to the callback pattern.
Prefer `await` to `then()`/`catch()`/`finally()` for reading Promise values.
Require creating a `Promise` constructor before using it in an ES5 environment.
Disallow calling `cb()` inside of a `then()` (use [util.callbackify][] instead).
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.
Disallow return statements in `finally()`.
Disallow creating new promises with paths that resolve multiple times.
Prefer class properties to assignment of literals in constructors.
Prefer early returns over full-body conditional wrapping in function declarations.
Prefer that screaming snake case variables always be defined using `const`, and always appear at module scope.
Restrict the number of returned items from React hooks.
Prevent module imports between components.
Prefer singular TypeScript enums.
Sections of code should not be commented out
"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
Boolean literals should not be used in comparisons
Return of boolean expressions should not be wrapped into an "if-then-else" statement
Track uses of "FIXME" tags
Track uses of "TODO" tags
String literals should not be duplicated
Initial values of parameters, caught exceptions, and loop variables should not be ignored
A "while" loop should be used instead of a "for" loop
Public "static" fields should be read-only
"switch" statements should not have too many "case" clauses
Local variables should not be declared and then immediately returned or thrown
Identical expressions should not be used on both sides of a binary operator
"switch" statements should not be nested
Objects should not be created to be dropped immediately without being used
Unused assignments should be removed
"if/else if" chains and "switch" cases should not have the same condition
Two branches in a conditional structure should not have exactly the same implementation
Boolean checks should not be inverted
"for" loop increment clauses should modify the loops' counters
Values should not be uselessly incremented
Return values from functions without side effects should not be ignored
Object literal syntax should be used
Boolean expressions should not be gratuitous
"catch" clauses should do more than rethrow
Non-existent operators '=+', '=-' and '=!' should not be used
Default export names and file names should match
Ternary operators should not be nested
Destructuring syntax should be used for assignments
Jump statements should not be redundant
The return value of void functions should not be used
Cognitive Complexity of functions should not be too high
"super()" should be invoked appropriately
All branches in a conditional structure should not have exactly the same implementation
Errors should not be created without being thrown
Collection contents should be used
Collection elements should not be replaced unconditionally
Functions should not have identical implementations
Empty collections should not be accessed or iterated
Type aliases should be used
Template literals should not be nested
Shorthand promises should be used
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
Constructors should not contain asynchronous operations
Require that function overload signatures be consecutive
Require consistently using either `T[]` or `Array<T>` for arrays
Disallow awaiting a value that is not a Thenable
Disallow `@ts-<directive>` comments or require descriptions after directives
Enforce specifying generic type arguments on type annotation or constructor name of a constructor call
Require or disallow the `Record` type
Enforce consistent usage of type assertions
Enforce type definitions to consistently use either `interface` or `type`
Enforce consistent usage of type imports
Enforce default parameters to be last
Enforce dot notation whenever possible
Require explicit return types on functions and class methods
Require explicit accessibility modifiers on class properties and methods
Enforce using a particular method signature syntax
Disallow generic `Array` constructors
Disallow non-null assertion in locations that may be confusing
Require expressions of type void to appear in statement position
Disallow duplicate class members
Disallow duplicate enum member values
Disallow duplicate constituents of union or intersection types
Disallow using the `delete` operator on computed key expressions
Disallow empty functions
Disallow accidentally using the "empty object" type
Disallow the `any` type
Disallow extra non-null assertions
Disallow classes used as namespaces
Require Promise-like statements to be handled appropriately
Disallow iterating over an array with a for-in loop
Disallow the use of `eval()`-like functions
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
Disallow the `void` operator except when used to discard a value
Enforce valid definition of `new` and `constructor`
Disallow Promises in places not designed to handle them
Disallow enums from having both number and string members
Disallow TypeScript namespaces
Disallow non-null assertions in the left operand of a nullish coalescing operator
Disallow non-null assertions after an optional chain expression
Disallow non-null assertions using the `!` postfix operator
Disallow variable redeclaration
Disallow members of unions and intersections that do nothing or override type information
Disallow invocation of `require()`
Disallow variable declarations from shadowing variables declared in the outer scope
Disallow aliasing `this`
Disallow unnecessary equality comparisons against boolean literals
Disallow conditionals where the type is always truthy or always falsy
Disallow unnecessary assignment of constructor property parameter
Disallow unnecessary namespace qualifiers
Disallow unnecessary template expressions
Disallow type arguments that are equal to the default
Disallow type assertions that do not change the type of an expression
Disallow unnecessary constraints on generic types
Disallow type parameters that aren't used multiple times
Disallow calling a function with a value with type `any`
Disallow assigning a value with type `any` to variables and properties
Disallow calling a value with type `any`
Disallow unsafe declaration merging
Disallow comparing an enum value with a non-enum value
Disallow using the unsafe built-in Function type
Disallow member access on a value with type `any`
Disallow returning a value with type `any` from a function
Require unary negation to take a number
Disallow unused expressions
Disallow unused variables
Disallow the use of variables before they are defined
Disallow unnecessary constructors
Disallow using confusing built-in primitive class wrappers
Enforce non-null assertions over explicit type assertions
Disallow throwing non-`Error` values as exceptions
Enforce the use of `as const` over literal type
Require destructuring from arrays and/or objects
Enforce the use of Array.prototype.find() over Array.prototype.filter() followed by [0] when looking for a single result
Enforce the use of `for-of` loop over the standard `for` loop where possible
Enforce using function types instead of interfaces with call signatures
Enforce `includes` method over `indexOf` method
Require all enum members to be literal values
Require using `namespace` keyword over `module` keyword to declare custom TypeScript modules
Enforce using the nullish coalescing operator instead of logical assignments or chaining
Enforce using concise optional chain expressions instead of chained logical ands, negated logical ors, or empty objects
Require using Error objects as Promise rejection reasons
Require private members to be marked as `readonly` if they're never modified outside of the constructor
Enforce using type parameter when calling `Array#reduce` instead of using a type assertion
Enforce that `this` is used when only `this` type is returned
Require any function or method that returns a Promise to be marked async
Require both operands of addition to be the same type and be `bigint`, `number`, or `string`
Enforce template literal expressions to be of `string` type
Enforce consistent awaiting of returned promises
Disallow certain types in boolean expressions
Require switch-case statements to be exhaustive
Disallow certain triple slash directives in favor of ES6-style import declarations
Enforce unbound methods are called with their expected scope
Disallow two overloads that could be unified into one with a union or an optional/rest parameter
Enforce typing arguments in Promise rejection callbacks as `unknown`
Avoid using TypeScript's enums.
Avoid using TypeScript's import aliases.
Avoid using TypeScript's namespaces.
Avoid using TypeScript's class parameter properties.
Enforce a specific parameter name in catch clauses.
Use destructured variables over properties.
Move function definitions to the highest possible scope.
Enforce no spaces between braces.
Enforce passing a `message` value when creating a built-in error.
Enforce a case style for filenames.
Prefer `for…of` over the `forEach` method.
Disallow member access from await expression.
Disallow empty files.
Do not use a `for` loop that can be replaced with a `for-of` loop.
Disallow identifiers starting with `new` or `class`.
Disallow `if` statements as the only statement in `if` blocks without `else`.
Disallow negated conditions.
Disallow negated expression in equality check.
Disallow nested ternary expressions.
Disallow the use of objects as default parameters.
Disallow classes that only have static members.
Disallow unreadable array destructuring.
Disallow unused object properties.
Disallow returning/yielding `Promise.resolve/reject()` in async functions or promise callbacks
Disallow unnecessary spread.
Disallow useless `undefined`.
Enforce proper case for numeric literals.
Prefer default parameters over reassignment.
Prefer `export…from` when re-exporting.
Prefer `.includes()` over `.indexOf()`, `.lastIndexOf()`, and `Array#some()` when checking for existence or non-existence.
Prefer using a logical operator over a ternary.
Prefer `Math.min()` and `Math.max()` over ternaries for simple comparisons.
Prefer omitting the `catch` binding parameter.
Prefer `Set#has()` over `Array#includes()` when checking for existence or non-existence.
Enforce combining multiple `Array#push()`, `Element#classList.{add,remove}()`, and `importScripts()` into one call.
Prefer `switch` over multiple `else-if`.
Prefer ternary expressions over simple `if-else` statements.
Prevent abbreviations.
Enforce consistent brace style for `case` clauses.
Fix whitespace-insensitive template indentation.
Require `new` when creating an error.
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.
Ensures that property names in JSDoc are not duplicated on the same block and that nested properties have defined roots.
Reports invalid types.
Converts non-JSDoc comments preceding or following nodes into JSDoc ones
Expects specific tags to be empty of any content.
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.
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`.
Requires that each JSDoc line starts with an `*`.
Requires that all functions have a description.
Requires that block description, explicit `@description`, and `@param`/`@returns` tag descriptions are written in complete sentences.
Requires a hyphen before the `@param` description.
Requires that all function parameters are documented.
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`.
Requires that each `@property` tag has a `description` value.
Requires that all function `@property` tags have names.
Requires that returns are documented.
Requires a return statement in function body if a `@returns` tag is specified in jsdoc comment.
Requires that the `@returns` tag has a `description` value.
Requires template tags for each generic type parameter
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.
Enforce consistent use of `output` assertions in rule tests
Require fixer functions to return a fix
Enforce the order of meta properties
Disallow usage of deprecated methods on rule context objects
Disallow the version of `context.report()` with multiple arguments
Disallow identical tests
Disallow using the `meta.replacedBy` rule property
Disallow rules `meta.schema` properties to include defaults
Disallow `messageId`s that are missing from `meta.messages`
Disallow missing placeholders in rule report messages
Disallow the test case property `only`
Disallow using `in` to narrow node types instead of looking at properties
Disallow unused `messageId`s in `meta.messages`
Disallow unused placeholders in rule report messages
Disallow unnecessary calls to `sourceCode.getFirstToken()` and `sourceCode.getLastToken()`
Require using `messageId` instead of `message` or `desc` to report rule violations
Disallow function-style rules
Disallow invalid RuleTester test cases where the `output` matches the `code`
Require using placeholders for dynamic report messages
Require using `replaceText()` instead of `replaceTextRange()`
Enforce a consistent format for rule report messages
Require only rules with options to implement a `meta.defaultOptions` property
Require rules to implement a `meta.docs.description` property with the correct format
Require rules to implement a `meta.docs.recommended` property
Require rules to implement a `meta.docs.url` property
Require rules to implement a `meta.fixable` property
Require suggestable rules to implement a `meta.hasSuggestions` property
Require rules `meta.schema` properties to include descriptions
Require rules to implement a `meta.schema` property
Require rules to implement a `meta.type` property
Require the properties of a test case to be placed in a consistent order
Enforce consistent usage of shorthand strings for test cases with no options
Enforces the use of lua truthiness
Disallow the use of LuaTuple in conditional expressions
Disallow values of type `any`. Use `unknown` instead
Disallow usage of pairs() and ipairs() with Array<T>
Disallow merging enum declarations
Disallow using `export =` on a let variable
Disallow iterating with a for-in loop
Disallow the use of function expression names
Disallow getters and setters
Enforce the use of `.` instead of `:` for method calls
Disallow the use of Luau reserved keywords as identifiers
Disallow merging namespace declarations
Disallow usage of the `null` keyword
Enforce DataType math methods over operators
Disallow .new() on objects without a .new() method
Disallow spread elements not last in a list of arguments
Disallow the use of private identifiers (`#`)
Disallow unsupported syntax in roblox-ts
Disallow usage of LuaTuple type keyword and $tuple() calls
Disallow using `typeof` to check for value types
Enforces the use of Players.GetPlayers() instead of Players.GetChildren()
Enforce use of task library alternatives
Enforce use of .size() instead of .length or .size property
Enforce explicitly comparing the `size` property of a value
Require `math.min()` and `math.max()` over ternaries for simple comparisons
Use stylua to format lua files
Enforce consistent arrow function return style based on length, multiline expressions, JSX usage, and export context
Disallow anonymous arrow functions as export default declarations
Enforce sorted variable declarations.
Enforce sorted intersection types.
Enforce sorted heritage clauses.
Enforce sorted arrays before include method.
Enforce sorted named imports.
Enforce sorted object types.
Enforce sorted union types.
Enforce sorted switch cases.
Enforce sorted decorators.
Enforce sorted interface properties.
Enforce sorted JSX props.
Enforce sorted modules.
Enforce sorted classes.
Enforce sorted imports.
Enforce sorted exports.
Enforce sorted objects.
Enforce sorted TypeScript enums.
Enforce sorted sets.
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
Disallow alias methods
Disallow commented out tests
Disallow calling `expect` conditionally
Disallow conditional logic in tests
Disallow disabled tests
Disallow using a callback in asynchronous tests and hooks
Disallow duplicate setup and teardown hooks
Disallow using `exports` in files containing tests
Disallow focused tests
Disallow identical titles
Disallow using `expect` outside of `it` or `test` blocks
Require using `.only` and `.skip` over `f` and `x`
Disallow explicitly returning from tests
Disallow using `jest.mock()` factories without an explicit type parameter
Enforce padding around Jest functions
Suggest using `toBeCalledWith()` or `toHaveBeenCalledWith()`
Suggest using the built-in comparison matchers
Prefer using `.each` rather than manual loops
Prefer having the last statement in a test be an assertion
Suggest using the built-in equality matchers
Prefer having hooks in a consistent order
Enforce lowercase test names
Prefer mock resolved/rejected shorthands for promises
Suggest using `toStrictEqual()`
Suggest using `toBe()` for primitive literals
Suggest using `toContain()`
Suggest using `toHaveLength()`
Suggest using `test.todo`
Require setup and teardown code to be within a hook
Require a message for `toThrow()`
Require test cases and hooks to be inside a `describe` block
Enforce unbound methods are called with their expected scope
Enforce valid `describe()` callback
Require promises that have expectations in their chain to be valid
Enforce valid `expect()` usage
Enforce valid titles
Enforces explicit boolean values for boolean attributes.
Enforces explicit `<Fragment>` components instead of the shorthand `<>` or `</>` syntax.
Disallow accessing `this.state` inside `setState` calls.
Disallow an item's index in the array as its key.
Disallow `Children.count`.
Disallow 'Children.forEach'.
Disallow `Children.map`.
Disallow `Children.only`.
Disallow passing `children` as a prop.
Disallow `Children.toArray`.
Disallow class components except for error boundaries.
Disallow `cloneElement`.
Prevents comments from being inserted as text nodes.
Disallow complex conditional rendering in JSX expressions.
Replace usages of `componentWillMount` with `UNSAFE_componentWillMount`.
Replace usages of `componentWillReceiveProps` with `UNSAFE_componentWillReceiveProps`.
Replace usages of `componentWillUpdate` with `UNSAFE_componentWillUpdate`.
Disallow `createRef` in function components.
Disallow `defaultProps` property in favor of ES6 default parameters.
Disallow direct mutation of `this.state`.
Disallow duplicate `key` on elements in the same array or a list of `children`.
Replaces usages of `forwardRef` with passing `ref` as a prop.
Prevents `key` from not being explicitly specified (e.g. spreading `key` from objects).
Prevents problematic leaked values from being rendered.
Enforces that all components have a `displayName` which can be used in devtools.
Enforces that all contexts have a `displayName` which can be used in devtools.
Disallow missing `key` on items in list rendering.
Prevents incorrect usage of `captureOwnerStack`.
Disallow nesting component definitions inside other components.
Disallow nesting lazy component declarations inside other components.
Disallow `propTypes` in favor of TypeScript or another type-checking solution.
Disallow `shouldComponentUpdate` when extending `React.PureComponent`.
Disallow calling `this.setState` in `componentDidMount` outside of functions, such as callbacks.
Disallow calling `this.setState` in `componentDidUpdate` outside of functions, such as callbacks.
Disallows calling `this.setState` in `componentWillUpdate` outside of functions, such as callbacks.
Replaces string refs with callback refs.
Warns the usage of `UNSAFE_componentWillMount` in class components.
Warns the usage of `UNSAFE_componentWillReceiveProps` in class components.
Warns the usage of `UNSAFE_componentWillUpdate` in class components.
Prevents non-stable values (i.e. object literals) from being used as a value for `Context.Provider`.
Prevents using referential-type values as default props in object destructuring.
Warns unused class component methods and properties.
Warns unused class component state.
Replaces usages of `useContext` with `use`.
Disallow useless `forwardRef` calls on components that don't use `ref`s.
Disallow useless fragment elements.
Enforces destructuring assignment for component props and context.
Enforces React is imported via a namespace import.
Enforces read-only props in components.
Enforces shorthand syntax for boolean attributes.
Enforces shorthand syntax for fragments.
Disallow duplicate props in JSX elements.
Disallow undefined variables in JSX.
Marks React variables as used when JSX is used.
Marks variables used in JSX elements as used.
Disallow useless `forwardRef` calls on components that don't use `ref`s.
Disallow direct calls to the `set` function of `useState` in `useEffect`.
Disallow direct calls to the `set` function of `useState` in `useLayoutEffect`.
Disallow unnecessary usage of `useCallback`.
Disallow unnecessary usage of `useMemo`.
Enforces that a function with the `use` prefix should use at least one Hook inside of it.
Enforces function calls made inside `useState` to be wrapped in an `initializer function`.
Enforces the Rules of Hooks
Verifies the list of dependencies for Hooks like useEffect and similar
Enforces context name to be a valid component name with the suffix `Context`.
Enforces consistent file naming conventions.
Enforces destructuring and symmetric naming of `useState` hook value and setter.
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
Disallow BigInt literals
Disallow binary expression
Disallow binary numeric literals
Disallow duplicate keys in object literals
Disallow escape sequences in identifiers.
Disallow leading or trailing decimal points in numeric literals
Disallow hexadecimal numeric literals
Disallow Infinity
Disallow multiline strings
Disallow NaN
Disallow number property keys
Disallow numeric separators
Disallow octal escape sequences in string literals
Disallow octal numeric literals
Disallow legacy octal literals
Disallow parentheses around the expression
Disallow plus sign
Disallow RegExp literals
Disallow sparse arrays
Disallow template literals
Disallow `undefined`
Disallow Unicode code point escape sequences.
Disallow unnecessary escape usage
Enforce consistent line breaks inside braces
Enforce consistent spacing inside braces
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
Enforce using "catalog:" in `package.json`
Enforce using valid catalog in `package.json`
Prefer having pnpm settings in `pnpm-workspace.yaml` instead of `package.json`. This requires pnpm v10.6+, see https://github.com/orgs/pnpm/discussions/9037.
Disallow unused catalogs in `pnpm-workspace.yaml`
Disallow duplicate catalog items in `pnpm-workspace.yaml`
Enforce consistent line breaks after `:` indicator
Enforce consistent line breaks after `?` indicator
Require or disallow block style mappings.
Enforce consistent line breaks after `-` indicator
Require or disallow block style sequences.
Enforce YAML file extension
Enforce consistent line breaks inside braces
Enforce consistent spacing inside braces
Enforce linebreaks after opening and before closing flow sequence brackets
Enforce consistent spacing inside flow sequence brackets
Enforce consistent spacing between keys and values in mapping pairs
Disallow empty mapping keys
Disallow empty sequence entries
Disallow irregular whitespace
Disallow tabs for indentation.
Disallow trailing zeros for floats
Require or disallow plain style scalar.
Require mapping keys to be sorted
Enforce consistent spacing after the `#` in a comment
Enforce linebreaks after opening and before closing array brackets
Enforce consistent spacing inside array brackets
Enforce line breaks between array elements
Enforce consistent comma style in array
Enforce consistent indentation
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
Disallow number separators that to not enhance readability.
Require or disallow padding lines between pairs
Require or disallow padding lines between tables
Disallow precision of fractional seconds greater than the specified value.
Disallow precision of integer greater than the specified value.
Require or disallow quotes around keys
Enforce consistent spacing after the `#` in a comment
Enforce consistent spacing inside table brackets
Disallow defining tables out-of-order
Require languages for fenced code blocks
Enforce heading levels increment by one
Disallow bare URLs
Disallow duplicate definitions
Disallow duplicate headings in the same document
Disallow empty definitions
Disallow empty images
Disallow empty links
Disallow HTML tags
Disallow invalid label references
Disallow headings without a space after the hash characters
Disallow missing label references
Disallow link fragments that do not reference valid headings
Disallow multiple H1 headings in the same document
Disallow reversed link and image syntax
Disallow unused definitions
Require alternative text for images
Disallow data rows in a GitHub Flavored Markdown table from having more cells than the header row
CSpell spellchecker