JS.BASE.ACCESSOR.PAIRS
|
Improper Encapsulation |
Enforce getter and setter pairs in objects and classes |
3 |
False |
JS.BASE.ARRAY.BRACKET.NEWLINE
|
Stylistic Issue |
Enforce linebreaks after opening and before closing array brackets |
3 |
False |
JS.BASE.ARRAY.BRACKET.SPACING
|
Stylistic Issue |
Enforce consistent spacing inside array brackets |
3 |
False |
JS.BASE.ARRAY.CALLBACK.RETURN
|
Suspicious Code Practices |
Enforce 'return' statements in callbacks of array methods |
3 |
False |
JS.BASE.ARRAY.ELEMENT.NEWLINE
|
Stylistic Issue |
Enforce line breaks after each array element |
3 |
False |
JS.BASE.ARROW.BODY.STYLE
|
Stylistic Issue |
Require braces around arrow function bodies |
3 |
False |
JS.BASE.ARROW.PARENS
|
Stylistic Issue |
Require parentheses around arrow function arguments |
3 |
False |
JS.BASE.ARROW.SPACING
|
Stylistic Issue |
Enforce consistent spacing before and after the arrow in arrow functions |
3 |
False |
JS.BASE.BLOCK.SCOPED.VAR
|
Suspicious Scoping |
Enforce the use of variables within the scope they are defined |
3 |
False |
JS.BASE.BLOCK.SPACING
|
Stylistic Issue |
Disallow or enforce spaces inside of blocks after opening block and before closing block |
3 |
False |
JS.BASE.BRACE.STYLE
|
Stylistic Issue |
Enforce consistent brace style for blocks |
3 |
False |
JS.BASE.CALLBACK.RETURN
|
Suspicious Code Practices |
Require 'return' statements after callbacks |
3 |
False |
JS.BASE.CAMELCASE
|
Stylistic Issue |
Enforce camelcase naming convention |
3 |
False |
JS.BASE.CAPITALIZED.COMMENTS
|
Stylistic Issue |
Enforce or disallow capitalization of the first letter of a comment |
3 |
False |
JS.BASE.CLASS.METHODS.USE.THIS
|
Improper Encapsulation |
Enforce that class methods utilize 'this' |
3 |
False |
JS.BASE.COMMA.DANGLE
|
Stylistic Issue |
Require or disallow trailing commas |
3 |
False |
JS.BASE.COMMA.SPACING
|
Stylistic Issue |
Enforce consistent spacing before and after commas |
3 |
False |
JS.BASE.COMMA.STYLE
|
Stylistic Issue |
Enforce consistent comma style |
3 |
False |
JS.BASE.COMPLEXITY
|
Code Complexity |
Enforce a maximum cyclomatic complexity allowed in a program |
3 |
False |
JS.BASE.COMPUTED.PROPERTY.SPACING
|
Stylistic Issue |
Enforce consistent spacing inside computed property brackets |
3 |
False |
JS.BASE.CONSISTENT.RETURN
|
Suspicious Code Practices |
Require 'return' statements to either always or never specify values |
3 |
False |
JS.BASE.CONSISTENT.THIS
|
Stylistic Issue |
Enforce consistent naming when capturing the current execution context |
3 |
False |
JS.BASE.CONSTRUCTOR.SUPER
|
Improper Encapsulation |
Require 'super()' calls in constructors |
3 |
True |
JS.BASE.CURLY
|
Stylistic Issue |
Enforce consistent brace style for all control statements |
3 |
False |
JS.BASE.DEFAULT.CASE
|
Control Statements |
Require 'default' cases in 'switch' statements |
3 |
False |
JS.BASE.DEFAULT.CASE.LAST
|
Control Statements |
Enforce default clauses in switch statements to be last |
3 |
False |
JS.BASE.DEFAULT.PARAM.LAST
|
Suspicious Code Practices |
Enforce default parameters to be last |
3 |
False |
JS.BASE.DOT.LOCATION
|
Stylistic Issue |
Enforce consistent newlines before and after dots |
3 |
False |
JS.BASE.DOT.NOTATION
|
Stylistic Issue |
Enforce dot notation whenever possible |
3 |
False |
JS.BASE.EOL.LAST
|
Stylistic Issue |
Require or disallow newline at the end of files |
3 |
False |
JS.BASE.EQEQEQ
|
Unsafe Code Practices |
Require the use of '===' and '!==' |
2 |
False |
JS.BASE.FOR.DIRECTION
|
Control Statements |
Enforce "for" loop update clause moving the counter in the right direction. |
3 |
True |
JS.BASE.FUNC.CALL.SPACING
|
Stylistic Issue |
Require or disallow spacing between function identifiers and their invocations |
3 |
False |
JS.BASE.FUNC.NAME.MATCHING
|
Stylistic Issue |
Require function names to match the name of the variable or property to which they are assigned |
3 |
False |
JS.BASE.FUNC.NAMES
|
Stylistic Issue |
Require or disallow named 'function' expressions |
3 |
False |
JS.BASE.FUNC.STYLE
|
Stylistic Issue |
Enforce the consistent use of either 'function' declarations or expressions |
3 |
False |
JS.BASE.FUNCTION.CALL.ARGUMENT.NEWLINE
|
Stylistic Issue |
Enforce line breaks between arguments of a function call |
3 |
False |
JS.BASE.FUNCTION.PAREN.NEWLINE
|
Stylistic Issue |
Enforce consistent line breaks inside function parentheses |
3 |
False |
JS.BASE.GENERATOR.STAR.SPACING
|
Stylistic Issue |
Enforce consistent spacing around '*' operators in generator functions |
3 |
False |
JS.BASE.GETTER.RETURN
|
Suspicious Encapsulation |
Enforce 'return' statements in getters |
2 |
True |
JS.BASE.GLOBAL.REQUIRE
|
Stylistic Issue |
Require 'require()' calls to be placed at top-level module scope |
3 |
False |
JS.BASE.GROUPED.ACCESSOR.PAIRS
|
Improper Encapsulation |
Require grouped accessor pairs in object literals and classes |
3 |
False |
JS.BASE.GUARD.FOR.IN
|
Suspicious Code Practices |
Require 'for-in' loops to include an 'if' statement |
3 |
False |
JS.BASE.HANDLE.CALLBACK.ERR
|
Suspicious Code Practices |
Require error handling in callbacks |
3 |
False |
JS.BASE.ID.BLACKLIST
|
Banned Code |
Disallow specified identifiers |
3 |
False |
JS.BASE.ID.DENYLIST
|
Stylistic Issue |
Disallow specified identifiers |
3 |
False |
JS.BASE.ID.LENGTH
|
Stylistic Issue |
Enforce minimum and maximum identifier lengths |
3 |
False |
JS.BASE.ID.MATCH
|
Stylistic Issue |
Require identifiers to match a specified regular expression |
3 |
False |
JS.BASE.IMPLICIT.ARROW.LINEBREAK
|
Stylistic Issue |
Enforce the location of arrow function bodies |
3 |
False |
JS.BASE.INDENT
|
Stylistic Issue |
Enforce consistent indentation |
3 |
False |
JS.BASE.INDENT.LEGACY
|
Stylistic Issue |
Enforce consistent indentation |
3 |
False |
JS.BASE.INIT.DECLARATIONS
|
Stylistic Issue |
Require or disallow initialization in variable declarations |
3 |
False |
JS.BASE.JSX.QUOTES
|
Stylistic Issue |
Enforce the consistent use of either double or single quotes in JSX attributes |
3 |
False |
JS.BASE.KEY.SPACING
|
Stylistic Issue |
Enforce consistent spacing between keys and values in object literal properties |
3 |
False |
JS.BASE.KEYWORD.SPACING
|
Stylistic Issue |
Enforce consistent spacing before and after keywords |
3 |
False |
JS.BASE.LINEBREAK.STYLE
|
Stylistic Issue |
Enforce consistent linebreak style |
3 |
False |
JS.BASE.LINE.COMMENT.POSITION
|
Stylistic Issue |
Enforce position of line comments |
3 |
False |
JS.BASE.LINES.AROUND.COMMENT
|
Stylistic Issue |
Require empty lines around comments |
3 |
False |
JS.BASE.LINES.AROUND.DIRECTIVE
|
Stylistic Issue |
Require or disallow newlines around directives |
3 |
False |
JS.BASE.LINES.BETWEEN.CLASS.MEMBERS
|
Stylistic Issue |
Require or disallow an empty line between class members |
3 |
False |
JS.BASE.MAX.CLASSES.PER.FILE
|
Code Complexity |
Enforce a maximum number of classes per file |
3 |
False |
JS.BASE.MAX.DEPTH
|
Stylistic Issue |
Enforce a maximum depth that blocks can be nested |
3 |
False |
JS.BASE.MAX.LEN
|
Stylistic Issue |
Enforce a maximum line length |
3 |
False |
JS.BASE.MAX.LINES
|
Stylistic Issue |
Enforce a maximum number of lines per file |
3 |
False |
JS.BASE.MAX.LINES.PER.FUNCTION
|
Stylistic Issue |
Enforce a maximum number of lines of code in a function |
3 |
False |
JS.BASE.MAX.NESTED.CALLBACKS
|
Stylistic Issue |
Enforce a maximum depth that callbacks can be nested |
3 |
False |
JS.BASE.MAX.PARAMS
|
Stylistic Issue |
Enforce a maximum number of parameters in function definitions |
3 |
False |
JS.BASE.MAX.STATEMENTS
|
Stylistic Issue |
Enforce a maximum number of statements allowed in function blocks |
3 |
False |
JS.BASE.MAX.STATEMENTS.PER.LINE
|
Stylistic Issue |
Enforce a maximum number of statements allowed per line |
3 |
False |
JS.BASE.MULTILINE.COMMENT.STYLE
|
Stylistic Issue |
Enforce a particular style for multiline comments |
3 |
False |
JS.BASE.MULTILINE.TERNARY
|
Stylistic Issue |
Enforce newlines between operands of ternary expressions |
3 |
False |
JS.BASE.NEW.CAP
|
Stylistic Issue |
Require constructor names to begin with a capital letter |
3 |
False |
JS.BASE.NEWLINE.AFTER.VAR
|
Stylistic Issue |
Require or disallow an empty line after variable declarations |
3 |
False |
JS.BASE.NEWLINE.BEFORE.RETURN
|
Stylistic Issue |
Require an empty line before 'return' statements |
3 |
False |
JS.BASE.NEWLINE.PER.CHAINED.CALL
|
Stylistic Issue |
Require a newline after each call in a method chain |
3 |
False |
JS.BASE.NEW.PARENS
|
Stylistic Issue |
Enforce or disallow parentheses when invoking a constructor with no arguments |
3 |
False |
JS.BASE.NO.ALERT
|
Suspicious Code Practices |
Disallow the use of 'alert', 'confirm', and 'prompt' |
3 |
False |
JS.BASE.NO.ARRAY.CONSTRUCTOR
|
Stylistic Issue |
Disallow 'Array' constructors |
3 |
False |
JS.BASE.NO.ASYNC.PROMISE.EXECUTOR
|
Concurrency |
Disallow using an async function as a Promise executor |
3 |
True |
JS.BASE.NO.AWAIT.IN.LOOP
|
Concurrency |
Disallow 'await' inside of loops |
3 |
False |
JS.BASE.NO.BITWISE
|
Stylistic Issue |
Disallow bitwise operators |
3 |
False |
JS.BASE.NO.BUFFER.CONSTRUCTOR
|
Suspicious Code Practices |
Disallow use of the 'Buffer()' constructor |
3 |
False |
JS.BASE.NO.CALLER
|
Performance Issues |
Disallow the use of 'arguments.caller' or 'arguments.callee' |
3 |
False |
JS.BASE.NO.CASE.DECLARATIONS
|
Suspicious Scoping |
Disallow lexical declarations in case clauses |
3 |
True |
JS.BASE.NO.CATCH.SHADOW
|
Unsafe Code Practices |
Disallow 'catch' clause parameters from shadowing variables in the outer scope |
2 |
False |
JS.BASE.NO.CLASS.ASSIGN
|
Unsafe Code Practices |
Disallow reassigning class members |
2 |
True |
JS.BASE.NO.COMPARE.NEG.ZERO
|
Stylistic Numeric Issue |
Disallow comparing against -0 |
3 |
True |
JS.BASE.NO.COND.ASSIGN
|
Unsafe Code Practices |
Disallow assignment operators in conditional expressions |
2 |
True |
JS.BASE.NO.CONFUSING.ARROW
|
Stylistic Issue |
Disallow arrow functions where they could be confused with comparisons |
3 |
False |
JS.BASE.NO.CONSOLE
|
Stylistic Issue |
Disallow the use of 'console' |
3 |
False |
JS.BASE.NO.CONSTANT.BINARY.EXPRESSION
|
Unnecessary Code |
Disallow expressions where the operation doesn't affect the value |
3 |
False |
JS.BASE.NO.CONSTANT.CONDITION
|
Stylistic Issue |
Disallow constant expressions in conditions |
3 |
True |
JS.BASE.NO.CONST.ASSIGN
|
Unsafe Code Practices |
Disallow reassigning 'const' variables |
2 |
True |
JS.BASE.NO.CONSTRUCTOR.RETURN
|
Improper Encapsulation |
Disallow returning value from constructor |
3 |
False |
JS.BASE.NO.CONTINUE
|
Stylistic Issue |
Disallow 'continue' statements |
3 |
False |
JS.BASE.NO.CONTROL.REGEX
|
Unsafe Code Practices |
Disallow control characters in regular expressions |
3 |
True |
JS.BASE.NO.DEBUGGER
|
Suspicious Code Practices |
Disallow the use of 'debugger' |
3 |
True |
JS.BASE.NO.DELETE.VAR
|
Unsafe Code Practices |
Disallow deleting variables |
2 |
True |
JS.BASE.NO.DIV.REGEX
|
Stylistic Issue |
Disallow division operators explicitly at the beginning of regular expressions |
3 |
False |
JS.BASE.NO.DUPE.ARGS
|
Suspicious Code Practices |
Disallow duplicate arguments in 'function' definitions |
3 |
True |
JS.BASE.NO.DUPE.CLASS.MEMBERS
|
Improper Encapsulation |
Disallow duplicate class members |
3 |
True |
JS.BASE.NO.DUPE.ELSE.IF
|
Unreachable Code |
Disallow duplicate conditions in if-else-if chains |
3 |
True |
JS.BASE.NO.DUPE.KEYS
|
Suspicious Code Practices |
Disallow duplicate keys in object literals |
3 |
True |
JS.BASE.NO.DUPLICATE.CASE
|
Unreachable Code |
Disallow duplicate case labels |
3 |
True |
JS.BASE.NO.DUPLICATE.IMPORTS
|
Suspicious Code Practices |
Disallow duplicate module imports |
3 |
False |
JS.BASE.NO.ELSE.RETURN
|
Control Statements |
Disallow 'else' blocks after 'return' statements in 'if' statements |
3 |
False |
JS.BASE.NO.EMPTY
|
Stylistic Issue |
Disallow empty block statements |
3 |
True |
JS.BASE.NO.EMPTY.CHARACTER.CLASS
|
Suspicious Code Practices |
Disallow empty character classes in regular expressions |
3 |
True |
JS.BASE.NO.EMPTY.FUNCTION
|
Stylistic Issue |
Disallow empty functions |
3 |
False |
JS.BASE.NO.EMPTY.PATTERN
|
Suspicious Code Practices |
Disallow empty destructuring patterns |
3 |
True |
JS.BASE.NO.EQ.NULL
|
Possible Runtime Failures |
Disallow 'null' comparisons without type-checking operators |
3 |
False |
JS.BASE.NO.EVAL
|
Process and Path Injection |
Disallow the use of 'eval()' |
1 |
False |
JS.BASE.NO.EX.ASSIGN
|
Suspicious Code Practices |
Disallow reassigning exceptions in 'catch' clauses |
3 |
True |
JS.BASE.NO.EXTEND.NATIVE
|
Suspicious Code Practices |
Disallow extending native types |
3 |
False |
JS.BASE.NO.EXTRA.BIND
|
Unsafe Code Practices |
Disallow unnecessary calls to '.bind()' |
2 |
False |
JS.BASE.NO.EXTRA.BOOLEAN.CAST
|
Suspicious Code Practices |
Disallow unnecessary boolean casts |
3 |
True |
JS.BASE.NO.EXTRA.LABEL
|
Control Statements |
Disallow unnecessary labels |
3 |
False |
JS.BASE.NO.EXTRA.PARENS
|
Stylistic Issue |
Disallow unnecessary parentheses |
3 |
False |
JS.BASE.NO.EXTRA.SEMI
|
Stylistic Issue |
Disallow unnecessary semicolons |
3 |
True |
JS.BASE.NO.FALLTHROUGH
|
Control Statements |
Disallow fallthrough of 'case' statements |
3 |
True |
JS.BASE.NO.FLOATING.DECIMAL
|
Stylistic Numeric Issue |
Disallow leading or trailing decimal points in numeric literals |
3 |
False |
JS.BASE.NO.FUNC.ASSIGN
|
Suspicious Code Practices |
Disallow reassigning 'function' declarations |
3 |
True |
JS.BASE.NO.GLOBAL.ASSIGN
|
Unsafe Code Practices |
Disallow assignments to native objects or read-only global variables |
2 |
True |
JS.BASE.NO.IMPLICIT.COERCION
|
Suspicious Code Practices |
Disallow shorthand type conversions |
3 |
False |
JS.BASE.NO.IMPLICIT.GLOBALS
|
Unsafe Global |
Disallow declarations in the global scope |
2 |
False |
JS.BASE.NO.IMPLIED.EVAL
|
Process and Path Injection |
Disallow the use of 'eval()'-like methods |
1 |
False |
JS.BASE.NO.IMPORT.ASSIGN
|
Unsafe Code Practices |
Disallow assigning to imported bindings |
2 |
True |
JS.BASE.NO.INLINE.COMMENTS
|
Stylistic Issue |
Disallow inline comments after code |
3 |
False |
JS.BASE.NO.INNER.DECLARATIONS
|
Stylistic Issue |
Disallow variable or 'function' declarations in nested blocks |
3 |
True |
JS.BASE.NO.INVALID.REGEXP
|
Unsafe Code Practices |
Disallow invalid regular expression strings in 'RegExp' constructors |
2 |
True |
JS.BASE.NO.INVALID.THIS
|
Possible Runtime Failures |
Disallow 'this' keywords outside of classes or class-like objects |
2 |
False |
JS.BASE.NO.IRREGULAR.WHITESPACE
|
Suspicious Code Practices |
Disallow irregular whitespace |
3 |
True |
JS.BASE.NO.ITERATOR
|
Possible Runtime Failures |
Disallow the use of the '__iterator__' property |
3 |
False |
JS.BASE.NO.LABELS
|
Control Statements |
Disallow labeled statements |
3 |
False |
JS.BASE.NO.LABEL.VAR
|
Control Statements |
Disallow labels that share a name with a variable |
3 |
False |
JS.BASE.NO.LONE.BLOCKS
|
Suspicious Code Practices |
Disallow unnecessary nested blocks |
3 |
False |
JS.BASE.NO.LONELY.IF
|
Stylistic Issue |
Disallow 'if' statements as the only statement in 'else' blocks |
3 |
False |
JS.BASE.NO.LOOP.FUNC
|
Possible Runtime Failures |
Disallow function declarations that contain unsafe references inside loop statements |
3 |
False |
JS.BASE.NO.LOSS.OF.PRECISION
|
Suspicious Code Practices |
Disallow literal numbers that lose precision |
3 |
False |
JS.BASE.NO.MAGIC.NUMBERS
|
Stylistic Issue |
Disallow magic numbers |
3 |
False |
JS.BASE.NO.MISLEADING.CHARACTER.CLASS
|
Suspicious Code Practices |
Disallow characters which are made with multiple code points in character class syntax |
3 |
True |
JS.BASE.NO.MIXED.OPERATORS
|
Stylistic Issue |
Disallow mixed binary operators |
3 |
False |
JS.BASE.NO.MIXED.REQUIRES
|
Stylistic Issue |
Disallow 'require' calls to be mixed with regular variable declarations |
3 |
False |
JS.BASE.NO.MIXED.SPACES.AND.TABS
|
Stylistic Issue |
Disallow mixed spaces and tabs for indentation |
3 |
True |
JS.BASE.NO.MULTI.ASSIGN
|
Stylistic Issue |
Disallow use of chained assignment expressions |
3 |
False |
JS.BASE.NO.MULTIPLE.EMPTY.LINES
|
Stylistic Issue |
Disallow multiple empty lines |
3 |
False |
JS.BASE.NO.MULTI.SPACES
|
Stylistic Issue |
Disallow multiple spaces |
3 |
False |
JS.BASE.NO.MULTI.STR
|
Stylistic Issue |
Disallow multiline strings |
3 |
False |
JS.BASE.NO.NATIVE.REASSIGN
|
Unsafe Code Practices |
Disallow assignments to native objects or read-only global variables |
2 |
False |
JS.BASE.NONBLOCK.STATEMENT.BODY.POSITION
|
Stylistic Issue |
Enforce the location of single-line statements |
3 |
False |
JS.BASE.NO.NEGATED.CONDITION
|
Stylistic Issue |
Disallow negated conditions |
3 |
False |
JS.BASE.NO.NEGATED.IN.LHS
|
Suspicious Code Practices |
Disallow negating the left operand in 'in' expressions |
3 |
False |
JS.BASE.NO.NESTED.TERNARY
|
Stylistic Issue |
Disallow nested ternary expressions |
3 |
False |
JS.BASE.NO.NEW
|
Ignored Return Values |
Disallow 'new' operators outside of assignments or comparisons |
3 |
False |
JS.BASE.NO.NEW.FUNC
|
Process and Path Injection |
Disallow 'new' operators with the 'Function' object |
2 |
False |
JS.BASE.NO.NEW.OBJECT
|
Stylistic Issue |
Disallow 'Object' constructors |
3 |
False |
JS.BASE.NO.NEW.REQUIRE
|
Suspicious Code Practices |
Disallow 'new' operators with calls to 'require' |
3 |
False |
JS.BASE.NO.NEW.SYMBOL
|
Suspicious Code Practices |
Disallow 'new' operators with the 'Symbol' object |
3 |
True |
JS.BASE.NO.NEW.WRAPPERS
|
Stylistic Issue |
Disallow 'new' operators with the 'String', 'Number', and 'Boolean' objects |
3 |
False |
JS.BASE.NO.NONOCTAL.DECIMAL.ESCAPE
|
Suspicious Code Practices |
Disallow '\8' and '\9' escape sequences in string literals |
3 |
False |
JS.BASE.NO.OBJ.CALLS
|
Suspicious Code Practices |
Disallow calling global object properties as functions |
3 |
True |
JS.BASE.NO.OCTAL
|
Suspicious Code Practices |
Disallow octal literals |
3 |
True |
JS.BASE.NO.OCTAL.ESCAPE
|
Suspicious Code Practices |
Disallow octal escape sequences in string literals |
3 |
False |
JS.BASE.NO.PARAM.REASSIGN
|
Suspicious Code Practices |
Disallow reassigning 'function' parameters |
3 |
False |
JS.BASE.NO.PATH.CONCAT
|
Suspicious Code Practices |
Disallow string concatenation with '__dirname' and '__filename' |
3 |
False |
JS.BASE.NO.PLUSPLUS
|
Stylistic Issue |
Disallow the unary operators '++' and '--' |
3 |
False |
JS.BASE.NO.PROCESS.ENV
|
Suspicious Code Practices |
Disallow the use of 'process.env' |
3 |
False |
JS.BASE.NO.PROCESS.EXIT
|
Suspicious Code Practices |
Disallow the use of 'process.exit()' |
3 |
False |
JS.BASE.NO.PROMISE.EXECUTOR.RETURN
|
Unsafe Code Practices |
Disallow returning values from Promise executor functions |
2 |
False |
JS.BASE.NO.PROTO
|
Possible Runtime Failures |
Disallow the use of the '__proto__' property |
3 |
False |
JS.BASE.NO.PROTOTYPE.BUILTINS
|
Suspicious Code Practices |
Disallow calling some 'Object.prototype' methods directly on objects |
3 |
True |
JS.BASE.NO.REDECLARE
|
Suspicious Code Practices |
Disallow variable redeclaration |
3 |
True |
JS.BASE.NO.REGEX.SPACES
|
Stylistic Issue |
Disallow multiple spaces in regular expressions |
3 |
True |
JS.BASE.NO.RESTRICTED.EXPORTS
|
Banned Code |
Disallow specified names in exports |
2 |
False |
JS.BASE.NO.RESTRICTED.GLOBALS
|
Unsafe Global |
Disallow specified global variables |
2 |
False |
JS.BASE.NO.RESTRICTED.IMPORTS
|
Banned Code |
Disallow specified modules when loaded by 'import' |
2 |
False |
JS.BASE.NO.RESTRICTED.MODULES
|
Banned Code |
Disallow specified modules when loaded by 'require' |
2 |
False |
JS.BASE.NO.RESTRICTED.PROPERTIES
|
Banned Code |
Disallow certain properties on certain objects |
2 |
False |
JS.BASE.NO.RESTRICTED.SYNTAX
|
Stylistic Issue |
Disallow specified syntax |
3 |
False |
JS.BASE.NO.RETURN.ASSIGN
|
Stylistic Issue |
Disallow assignment operators in 'return' statements |
3 |
False |
JS.BASE.NO.RETURN.AWAIT
|
Performance Issues |
Disallow unnecessary 'return await' |
3 |
False |
JS.BASE.NO.SCRIPT.URL
|
Process and Path Injection |
Disallow 'javascript:' urls |
2 |
False |
JS.BASE.NO.SELF.ASSIGN
|
Suspicious Code Practices |
Disallow assignments where both sides are exactly the same |
3 |
True |
JS.BASE.NO.SELF.COMPARE
|
Unnecessary Code |
Disallow comparisons where both sides are exactly the same |
2 |
False |
JS.BASE.NO.SEQUENCES
|
Stylistic Issue |
Disallow comma operators |
3 |
False |
JS.BASE.NO.SETTER.RETURN
|
Suspicious Encapsulation |
Disallow returning values from setters |
3 |
True |
JS.BASE.NO.SHADOW
|
Possible Runtime Failures |
Disallow variable declarations from shadowing variables declared in the outer scope |
3 |
False |
JS.BASE.NO.SHADOW.RESTRICTED.NAMES
|
Possible Runtime Failures |
Disallow identifiers from shadowing restricted names |
2 |
True |
JS.BASE.NO.SPACED.FUNC
|
Stylistic Issue |
Disallow spacing between function identifiers and their applications (deprecated) |
3 |
False |
JS.BASE.NO.SPARSE.ARRAYS
|
Possible Runtime Failures |
Disallow sparse arrays |
3 |
True |
JS.BASE.NO.SYNC
|
Concurrency |
Disallow synchronous methods |
3 |
False |
JS.BASE.NO.TABS
|
Stylistic Issue |
Disallow all tabs |
3 |
False |
JS.BASE.NO.TEMPLATE.CURLY.IN.STRING
|
Suspicious Code Practices |
Disallow template literal placeholder syntax in regular strings |
3 |
False |
JS.BASE.NO.TERNARY
|
Stylistic Issue |
Disallow ternary operators |
3 |
False |
JS.BASE.NO.THIS.BEFORE.SUPER
|
Improper Encapsulation |
Disallow 'this'/'super' before calling 'super()' in constructors |
3 |
True |
JS.BASE.NO.THROW.LITERAL
|
Suspicious Code Practices |
Disallow throwing literals as exceptions |
3 |
False |
JS.BASE.NO.TRAILING.SPACES
|
Stylistic Issue |
Disallow trailing whitespace at the end of lines |
3 |
False |
JS.BASE.NO.UNDEF
|
Possible Runtime Failures |
Disallow the use of undeclared variables unless mentioned in '/*global */' comments |
2 |
True |
JS.BASE.NO.UNDEFINED
|
Possible Runtime Failures |
Disallow the use of 'undefined' as an identifier |
2 |
False |
JS.BASE.NO.UNDEF.INIT
|
Stylistic Issue |
Disallow initializing variables to 'undefined' |
3 |
False |
JS.BASE.NO.UNDERSCORE.DANGLE
|
Stylistic Issue |
Disallow dangling underscores in identifiers |
3 |
False |
JS.BASE.NO.UNEXPECTED.MULTILINE
|
Stylistic Issue |
Disallow confusing multiline expressions |
3 |
True |
JS.BASE.NO.UNMODIFIED.LOOP.CONDITION
|
Control Statements |
Disallow unmodified loop conditions |
2 |
False |
JS.BASE.NO.UNNEEDED.TERNARY
|
Stylistic Issue |
Disallow ternary operators when simpler alternatives exist |
3 |
False |
JS.BASE.NO.UNREACHABLE
|
Unreachable Code |
Disallow unreachable code after 'return', 'throw', 'continue', and 'break' statements |
2 |
True |
JS.BASE.NO.UNREACHABLE.LOOP
|
Unreachable Code |
Disallow loops with a body that allows only one iteration |
3 |
False |
JS.BASE.NO.UNSAFE.FINALLY
|
Control Statements |
Disallow control flow statements in 'finally' blocks |
3 |
True |
JS.BASE.NO.UNSAFE.NEGATION
|
Suspicious Code Practices |
Disallow negating the left operand of relational operators |
3 |
True |
JS.BASE.NO.UNSAFE.OPTIONAL.CHAINING
|
Possible Runtime Failures |
Disallow use of optional chaining in contexts where the 'undefined' value is not allowed |
3 |
False |
JS.BASE.NO.UNUSED.EXPRESSIONS
|
Unused Local Variables |
Disallow unused expressions |
3 |
False |
JS.BASE.NO.UNUSED.LABELS
|
Control Statements |
Disallow unused labels |
3 |
True |
JS.BASE.NO.UNUSED.PRIVATE.CLASS.MEMBERS
|
Unused Local Variables |
Disallow unused private class members |
3 |
True |
JS.BASE.NO.UNUSED.VARS
|
Unused Local Variables |
Disallow unused variables |
3 |
True |
JS.BASE.NO.USE.BEFORE.DEFINE
|
Unsafe Code Practices |
Disallow the use of variables before they are defined |
2 |
False |
JS.BASE.NO.USELESS.BACKREFERENCE
|
Suspicious Code Practices |
Disallow useless backreferences in regular expressions |
3 |
False |
JS.BASE.NO.USELESS.CALL
|
Suspicious Code Practices |
Disallow unnecessary calls to '.call()' and '.apply()' |
3 |
False |
JS.BASE.NO.USELESS.CATCH
|
Control Statements |
Disallow unnecessary 'catch' clauses |
3 |
True |
JS.BASE.NO.USELESS.COMPUTED.KEY
|
Stylistic Issue |
Disallow unnecessary computed property keys in objects and classes |
3 |
False |
JS.BASE.NO.USELESS.CONCAT
|
Suspicious Code Practices |
Disallow unnecessary concatenation of literals or template literals |
3 |
False |
JS.BASE.NO.USELESS.CONSTRUCTOR
|
Improper Encapsulation |
Disallow unnecessary constructors |
3 |
False |
JS.BASE.NO.USELESS.ESCAPE
|
Suspicious Code Practices |
Disallow unnecessary escape characters |
3 |
True |
JS.BASE.NO.USELESS.RENAME
|
Suspicious Code Practices |
Disallow renaming import, export, and destructured assignments to the same name |
3 |
False |
JS.BASE.NO.USELESS.RETURN
|
Control Statements |
Disallow redundant return statements |
3 |
False |
JS.BASE.NO.VAR
|
Suspicious Code Practices |
Require 'let' or 'const' instead of 'var' |
3 |
False |
JS.BASE.NO.VOID
|
Suspicious Code Practices |
Disallow 'void' operators |
3 |
False |
JS.BASE.NO.WARNING.COMMENTS
|
Stylistic Issue |
Disallow specified warning terms in comments |
3 |
False |
JS.BASE.NO.WHITESPACE.BEFORE.PROPERTY
|
Stylistic Issue |
Disallow whitespace before properties |
3 |
False |
JS.BASE.NO.WITH
|
Stylistic Issue |
Disallow 'with' statements |
3 |
True |
JS.BASE.OBJECT.CURLY.NEWLINE
|
Stylistic Issue |
Enforce consistent line breaks after opening and before closing braces |
3 |
False |
JS.BASE.OBJECT.CURLY.SPACING
|
Stylistic Issue |
Enforce consistent spacing inside braces |
3 |
False |
JS.BASE.OBJECT.PROPERTY.NEWLINE
|
Stylistic Issue |
Enforce placing object properties on separate lines |
3 |
False |
JS.BASE.OBJECT.SHORTHAND
|
Stylistic Issue |
Require or disallow method and property shorthand syntax for object literals |
3 |
False |
JS.BASE.ONE.VAR
|
Stylistic Issue |
Enforce variables to be declared either together or separately in functions |
3 |
False |
JS.BASE.ONE.VAR.DECLARATION.PER.LINE
|
Stylistic Issue |
Require or disallow newlines around variable declarations |
3 |
False |
JS.BASE.OPERATOR.ASSIGNMENT
|
Stylistic Issue |
Require or disallow assignment operator shorthand where possible |
3 |
False |
JS.BASE.OPERATOR.LINEBREAK
|
Stylistic Issue |
Enforce consistent linebreak style for operators |
3 |
False |
JS.BASE.PADDED.BLOCKS
|
Stylistic Issue |
Require or disallow padding within blocks |
3 |
False |
JS.BASE.PADDING.LINE.BETWEEN.STATEMENTS
|
Stylistic Issue |
Require or disallow padding lines between statements |
3 |
False |
JS.BASE.PREFER.ARROW.CALLBACK
|
Stylistic Issue |
Require using arrow functions for callbacks |
3 |
False |
JS.BASE.PREFER.CONST
|
Suspicious Code Practices |
Require 'const' declarations for variables that are never reassigned after declared |
3 |
False |
JS.BASE.PREFER.DESTRUCTURING
|
Stylistic Issue |
Require destructuring from arrays and/or objects |
3 |
False |
JS.BASE.PREFER.EXPONENTIATION.OPERATOR
|
Stylistic Issue |
Disallow the use of 'Math.pow' in favor of the '**' operator |
3 |
False |
JS.BASE.PREFER.NAMED.CAPTURE.GROUP
|
Stylistic Issue |
Enforce using named capture group in regular expression |
3 |
False |
JS.BASE.PREFER.NUMERIC.LITERALS
|
Stylistic Issue |
Disallow 'parseInt()' and 'Number.parseInt()' in favor of binary, octal, and hexadecimal literals |
3 |
False |
JS.BASE.PREFER.OBJECT.HAS.OWN
|
Stylistic Issue |
Disallow use of `Object.prototype.hasOwnProperty.call()` and prefer use of `Object.hasOwn()` |
3 |
False |
JS.BASE.PREFER.OBJECT.SPREAD
|
Stylistic Issue |
Disallow using Object.assign with an object literal as the first argument and prefer the use of object spread instead. |
3 |
False |
JS.BASE.PREFER.PROMISE.REJECT.ERRORS
|
Stylistic Issue |
Require using Error objects as Promise rejection reasons |
3 |
False |
JS.BASE.PREFER.REFLECT
|
Suspicious Code Practices |
Require 'Reflect' methods where applicable |
3 |
False |
JS.BASE.PREFER.REGEX.LITERALS
|
Stylistic Issue |
Disallow use of the 'RegExp' constructor in favor of regular expression literals |
3 |
False |
JS.BASE.PREFER.REST.PARAMS
|
Stylistic Issue |
Require rest parameters instead of 'arguments' |
3 |
False |
JS.BASE.PREFER.SPREAD
|
Suspicious Code Practices |
Require spread operators instead of '.apply()' |
3 |
False |
JS.BASE.PREFER.TEMPLATE
|
Stylistic Issue |
Require template literals instead of string concatenation |
3 |
False |
JS.BASE.QUOTE.PROPS
|
Stylistic Issue |
Require quotes around object literal property names |
3 |
False |
JS.BASE.QUOTES
|
Stylistic Issue |
Enforce the consistent use of either backticks, double, or single quotes |
3 |
False |
JS.BASE.RADIX
|
Suspicious Code Practices |
Enforce the consistent use of the radix argument when using 'parseInt()' |
3 |
False |
JS.BASE.REQUIRE.ATOMIC.UPDATES
|
Control Statements |
Disallow assignments that can lead to race conditions due to usage of 'await' or 'yield' |
2 |
False |
JS.BASE.REQUIRE.AWAIT
|
Concurrency |
Disallow async functions which have no 'await' expression |
3 |
False |
JS.BASE.REQUIRE.JSDOC
|
Documentation |
Require JSDoc comments |
3 |
False |
JS.BASE.REQUIRE.UNICODE.REGEXP
|
Suspicious Code Practices |
Enforce the use of 'u' flag on RegExp |
3 |
False |
JS.BASE.REQUIRE.YIELD
|
Suspicious Code Practices |
Require generator functions to contain 'yield' |
3 |
True |
JS.BASE.REST.SPREAD.SPACING
|
Stylistic Issue |
Enforce spacing between rest and spread operators and their expressions |
3 |
False |
JS.BASE.SEMI
|
Stylistic Issue |
Require or disallow semicolons instead of ASI |
3 |
False |
JS.BASE.SEMI.SPACING
|
Stylistic Issue |
Enforce consistent spacing before and after semicolons |
3 |
False |
JS.BASE.SEMI.STYLE
|
Stylistic Issue |
Enforce location of semicolons |
3 |
False |
JS.BASE.SORT.IMPORTS
|
Stylistic Issue |
Enforce sorted import declarations within modules |
3 |
False |
JS.BASE.SORT.KEYS
|
Stylistic Issue |
Require object keys to be sorted |
3 |
False |
JS.BASE.SORT.VARS
|
Stylistic Issue |
Require variables within the same declaration block to be sorted |
3 |
False |
JS.BASE.SPACE.BEFORE.BLOCKS
|
Stylistic Issue |
Enforce consistent spacing before blocks |
3 |
False |
JS.BASE.SPACE.BEFORE.FUNCTION.PAREN
|
Stylistic Issue |
Enforce consistent spacing before 'function' definition opening parenthesis |
3 |
False |
JS.BASE.SPACED.COMMENT
|
Stylistic Issue |
Enforce consistent spacing after the '//' or '/*' in a comment |
3 |
False |
JS.BASE.SPACE.INFIX.OPS
|
Stylistic Issue |
Require spacing around infix operators |
3 |
False |
JS.BASE.SPACE.IN.PARENS
|
Stylistic Issue |
Enforce consistent spacing inside parentheses |
3 |
False |
JS.BASE.SPACE.UNARY.OPS
|
Stylistic Issue |
Enforce consistent spacing before or after unary operators |
3 |
False |
JS.BASE.STRICT
|
Strict Mode |
Require or disallow strict mode directives |
2 |
False |
JS.BASE.SWITCH.COLON.SPACING
|
Stylistic Issue |
Enforce spacing around colons of switch statements |
3 |
False |
JS.BASE.SYMBOL.DESCRIPTION
|
Maintainability Issues |
Require symbol descriptions |
3 |
False |
JS.BASE.TEMPLATE.CURLY.SPACING
|
Stylistic Issue |
Require or disallow spacing around embedded expressions of template strings |
3 |
False |
JS.BASE.TEMPLATE.TAG.SPACING
|
Stylistic Issue |
Require or disallow spacing between template tags and their literals |
3 |
False |
JS.BASE.UNICODE.BOM
|
Stylistic Issue |
Require or disallow Unicode byte order mark (BOM) |
3 |
False |
JS.BASE.USE.ISNAN
|
Stylistic Issue |
Require calls to 'isNaN()' when checking for 'NaN' |
3 |
True |
JS.BASE.VALID.JSDOC
|
Documentation |
Enforce valid JSDoc comments |
3 |
False |
JS.BASE.VALID.TYPEOF
|
Possible Runtime Failures |
Enforce comparing 'typeof' expressions against valid strings |
2 |
True |
JS.BASE.VARS.ON.TOP
|
Stylistic Issue |
Require 'var' declarations be placed at the top of their containing scope |
3 |
False |
JS.BASE.WRAP.IIFE
|
Suspicious Code Practices |
Require parentheses around immediate 'function' invocations |
3 |
False |
JS.BASE.WRAP.REGEX
|
Stylistic Issue |
Require parenthesis around regex literals |
3 |
False |
JS.BASE.YIELD.STAR.SPACING
|
Stylistic Issue |
Require or disallow spacing around the '*' in 'yield*' expressions |
3 |
False |
JS.BASE.YODA
|
Stylistic Issue |
Require or disallow "Yoda" conditions |
3 |
False |