mirror of
https://github.com/airbnb/javascript.git
synced 2026-04-25 03:00:19 -04:00
[guide] add references for eslint rules
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
module.exports = {
|
||||
rules: {
|
||||
// enforces getter/setter pairs in objects
|
||||
// https://eslint.org/docs/rules/accessor-pairs
|
||||
'accessor-pairs': 'off',
|
||||
|
||||
// enforces return statements in callbacks of array's methods
|
||||
@@ -8,9 +9,11 @@ module.exports = {
|
||||
'array-callback-return': ['error', { allowImplicit: true }],
|
||||
|
||||
// treat var statements as if they were block scoped
|
||||
// https://eslint.org/docs/rules/block-scoped-var
|
||||
'block-scoped-var': 'error',
|
||||
|
||||
// specify the maximum cyclomatic complexity allowed in a program
|
||||
// https://eslint.org/docs/rules/complexity
|
||||
complexity: ['off', 20],
|
||||
|
||||
// enforce that class methods use "this"
|
||||
@@ -20,12 +23,15 @@ module.exports = {
|
||||
}],
|
||||
|
||||
// require return statements to either always or never specify values
|
||||
// https://eslint.org/docs/rules/consistent-return
|
||||
'consistent-return': 'error',
|
||||
|
||||
// specify curly brace conventions for all control statements
|
||||
// https://eslint.org/docs/rules/curly
|
||||
curly: ['error', 'multi-line'], // multiline
|
||||
|
||||
// require default case in switch statements
|
||||
// https://eslint.org/docs/rules/default-case
|
||||
'default-case': ['error', { commentPattern: '^no default$' }],
|
||||
|
||||
// Enforce default clauses in switch statements to be last
|
||||
@@ -38,6 +44,7 @@ module.exports = {
|
||||
'default-param-last': 'off',
|
||||
|
||||
// encourages use of dot notation whenever possible
|
||||
// https://eslint.org/docs/rules/dot-notation
|
||||
'dot-notation': ['error', { allowKeywords: true }],
|
||||
|
||||
// enforces consistent newlines before or after dots
|
||||
@@ -54,6 +61,7 @@ module.exports = {
|
||||
'grouped-accessor-pairs': 'off',
|
||||
|
||||
// make sure for-in loops have an if statement
|
||||
// https://eslint.org/docs/rules/guard-for-in
|
||||
'guard-for-in': 'error',
|
||||
|
||||
// enforce a maximum number of classes per file
|
||||
@@ -61,13 +69,15 @@ module.exports = {
|
||||
'max-classes-per-file': ['error', 1],
|
||||
|
||||
// disallow the use of alert, confirm, and prompt
|
||||
// https://eslint.org/docs/rules/no-alert
|
||||
'no-alert': 'warn',
|
||||
|
||||
// disallow use of arguments.caller or arguments.callee
|
||||
// https://eslint.org/docs/rules/no-caller
|
||||
'no-caller': 'error',
|
||||
|
||||
// disallow lexical declarations in case/default clauses
|
||||
// https://eslint.org/docs/rules/no-case-declarations.html
|
||||
// https://eslint.org/docs/rules/no-case-declarations
|
||||
'no-case-declarations': 'error',
|
||||
|
||||
// Disallow returning value in constructor
|
||||
@@ -98,15 +108,19 @@ module.exports = {
|
||||
'no-empty-pattern': 'error',
|
||||
|
||||
// disallow comparisons to null without a type-checking operator
|
||||
// https://eslint.org/docs/rules/no-eq-null
|
||||
'no-eq-null': 'off',
|
||||
|
||||
// disallow use of eval()
|
||||
// https://eslint.org/docs/rules/no-eval
|
||||
'no-eval': 'error',
|
||||
|
||||
// disallow adding to native types
|
||||
// https://eslint.org/docs/rules/no-extend-native
|
||||
'no-extend-native': 'error',
|
||||
|
||||
// disallow unnecessary function binding
|
||||
// https://eslint.org/docs/rules/no-extra-bind
|
||||
'no-extra-bind': 'error',
|
||||
|
||||
// disallow Unnecessary Labels
|
||||
@@ -114,15 +128,19 @@ module.exports = {
|
||||
'no-extra-label': 'error',
|
||||
|
||||
// disallow fallthrough of case statements
|
||||
// https://eslint.org/docs/rules/no-fallthrough
|
||||
'no-fallthrough': 'error',
|
||||
|
||||
// disallow the use of leading or trailing decimal points in numeric literals
|
||||
// https://eslint.org/docs/rules/no-floating-decimal
|
||||
'no-floating-decimal': 'error',
|
||||
|
||||
// disallow reassignments of native objects or read-only globals
|
||||
// https://eslint.org/docs/rules/no-global-assign
|
||||
'no-global-assign': ['error', { exceptions: [] }],
|
||||
|
||||
// deprecated in favor of no-global-assign
|
||||
// https://eslint.org/docs/rules/no-native-reassign
|
||||
'no-native-reassign': 'off',
|
||||
|
||||
// disallow implicit type conversions
|
||||
@@ -139,21 +157,27 @@ module.exports = {
|
||||
'no-implicit-globals': 'off',
|
||||
|
||||
// disallow use of eval()-like methods
|
||||
// https://eslint.org/docs/rules/no-implied-eval
|
||||
'no-implied-eval': 'error',
|
||||
|
||||
// disallow this keywords outside of classes or class-like objects
|
||||
// https://eslint.org/docs/rules/no-invalid-this
|
||||
'no-invalid-this': 'off',
|
||||
|
||||
// disallow usage of __iterator__ property
|
||||
// https://eslint.org/docs/rules/no-iterator
|
||||
'no-iterator': 'error',
|
||||
|
||||
// disallow use of labels for anything other than loops and switches
|
||||
// https://eslint.org/docs/rules/no-labels
|
||||
'no-labels': ['error', { allowLoop: false, allowSwitch: false }],
|
||||
|
||||
// disallow unnecessary nested blocks
|
||||
// https://eslint.org/docs/rules/no-lone-blocks
|
||||
'no-lone-blocks': 'error',
|
||||
|
||||
// disallow creation of functions within loops
|
||||
// https://eslint.org/docs/rules/no-loop-func
|
||||
'no-loop-func': 'error',
|
||||
|
||||
// disallow magic numbers
|
||||
@@ -166,20 +190,25 @@ module.exports = {
|
||||
}],
|
||||
|
||||
// disallow use of multiple spaces
|
||||
// https://eslint.org/docs/rules/no-multi-spaces
|
||||
'no-multi-spaces': ['error', {
|
||||
ignoreEOLComments: false,
|
||||
}],
|
||||
|
||||
// disallow use of multiline strings
|
||||
// https://eslint.org/docs/rules/no-multi-str
|
||||
'no-multi-str': 'error',
|
||||
|
||||
// disallow use of new operator when not part of the assignment or comparison
|
||||
// https://eslint.org/docs/rules/no-new
|
||||
'no-new': 'error',
|
||||
|
||||
// disallow use of new operator for Function object
|
||||
// https://eslint.org/docs/rules/no-new-func
|
||||
'no-new-func': 'error',
|
||||
|
||||
// disallows creating new instances of String, Number, and Boolean
|
||||
// https://eslint.org/docs/rules/no-new-wrappers
|
||||
'no-new-wrappers': 'error',
|
||||
|
||||
// Disallow \8 and \9 escape sequences in string literals
|
||||
@@ -188,10 +217,12 @@ module.exports = {
|
||||
'no-nonoctal-decimal-escape': 'off',
|
||||
|
||||
// disallow use of (old style) octal literals
|
||||
// https://eslint.org/docs/rules/no-octal
|
||||
'no-octal': 'error',
|
||||
|
||||
// disallow use of octal escape sequences in string literals, such as
|
||||
// var foo = 'Copyright \251';
|
||||
// https://eslint.org/docs/rules/no-octal-escape
|
||||
'no-octal-escape': 'error',
|
||||
|
||||
// disallow reassignment of function parameters
|
||||
@@ -215,9 +246,11 @@ module.exports = {
|
||||
}],
|
||||
|
||||
// disallow usage of __proto__ property
|
||||
// https://eslint.org/docs/rules/no-proto
|
||||
'no-proto': 'error',
|
||||
|
||||
// disallow declaring the same variable more than once
|
||||
// https://eslint.org/docs/rules/no-redeclare
|
||||
'no-redeclare': 'error',
|
||||
|
||||
// disallow certain object properties
|
||||
@@ -263,12 +296,15 @@ module.exports = {
|
||||
}],
|
||||
|
||||
// disallow use of assignment in return statement
|
||||
// https://eslint.org/docs/rules/no-return-assign
|
||||
'no-return-assign': ['error', 'always'],
|
||||
|
||||
// disallow redundant `return await`
|
||||
// https://eslint.org/docs/rules/no-return-await
|
||||
'no-return-await': 'error',
|
||||
|
||||
// disallow use of `javascript:` urls.
|
||||
// https://eslint.org/docs/rules/no-script-url
|
||||
'no-script-url': 'error',
|
||||
|
||||
// disallow self assignment
|
||||
@@ -278,12 +314,15 @@ module.exports = {
|
||||
}],
|
||||
|
||||
// disallow comparisons where both sides are exactly the same
|
||||
// https://eslint.org/docs/rules/no-self-compare
|
||||
'no-self-compare': 'error',
|
||||
|
||||
// disallow use of comma operator
|
||||
// https://eslint.org/docs/rules/no-sequences
|
||||
'no-sequences': 'error',
|
||||
|
||||
// restrict what can be thrown as an exception
|
||||
// https://eslint.org/docs/rules/no-throw-literal
|
||||
'no-throw-literal': 'error',
|
||||
|
||||
// disallow unmodified conditions of loops
|
||||
@@ -291,6 +330,7 @@ module.exports = {
|
||||
'no-unmodified-loop-condition': 'off',
|
||||
|
||||
// disallow usage of expressions in statement position
|
||||
// https://eslint.org/docs/rules/no-unused-expressions
|
||||
'no-unused-expressions': ['error', {
|
||||
allowShortCircuit: false,
|
||||
allowTernary: false,
|
||||
@@ -302,6 +342,7 @@ module.exports = {
|
||||
'no-unused-labels': 'error',
|
||||
|
||||
// disallow unnecessary .call() and .apply()
|
||||
// https://eslint.org/docs/rules/no-useless-call
|
||||
'no-useless-call': 'off',
|
||||
|
||||
// Disallow unnecessary catch clauses
|
||||
@@ -325,9 +366,11 @@ module.exports = {
|
||||
'no-void': 'error',
|
||||
|
||||
// disallow usage of configurable warning terms in comments: e.g. todo
|
||||
// https://eslint.org/docs/rules/no-warning-comments
|
||||
'no-warning-comments': ['off', { terms: ['todo', 'fixme', 'xxx'], location: 'start' }],
|
||||
|
||||
// disallow use of the with statement
|
||||
// https://eslint.org/docs/rules/no-with
|
||||
'no-with': 'error',
|
||||
|
||||
// require using Error objects as Promise rejection reasons
|
||||
@@ -343,6 +386,7 @@ module.exports = {
|
||||
'prefer-regex-literals': 'off',
|
||||
|
||||
// require use of the second argument for parseInt()
|
||||
// https://eslint.org/docs/rules/radix
|
||||
radix: 'error',
|
||||
|
||||
// require `await` in `async function` (note: this is a horrible rule that should never be used)
|
||||
@@ -354,6 +398,7 @@ module.exports = {
|
||||
'require-unicode-regexp': 'off',
|
||||
|
||||
// requires to declare all vars on top of their containing scope
|
||||
// https://eslint.org/docs/rules/vars-on-top
|
||||
'vars-on-top': 'error',
|
||||
|
||||
// require immediate function invocation to be wrapped in parentheses
|
||||
@@ -361,6 +406,7 @@ module.exports = {
|
||||
'wrap-iife': ['error', 'outside', { functionPrototypeMethods: false }],
|
||||
|
||||
// require or disallow Yoda conditions
|
||||
// https://eslint.org/docs/rules/yoda
|
||||
yoda: 'error'
|
||||
}
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user