jsx-a11y/anchor-has-content
(back to comparison table π)
|
|
[
"error",
{
"components": []
}
]
|
jsx-a11y/aria-role
(back to comparison table π)
|
|
[
"error",
{
"ignoreNonDOM": false
}
]
|
jsx-a11y/alt-text
(back to comparison table π)
|
|
[
"error",
{
"area": [],
"elements": [
"img",
"object",
"area",
"input[type=\"image\"]"
],
"img": [],
"input[type=\"image\"]": [],
"object": []
}
]
|
jsx-a11y/label-has-associated-control
(back to comparison table π)
|
|
[
"error",
{
"assert": "both",
"controlComponents": [],
"depth": 25,
"labelAttributes": [],
"labelComponents": []
}
]
|
jsx-a11y/control-has-associated-label
(back to comparison table π)
|
|
[
"error",
{
"controlComponents": [],
"depth": 5,
"ignoreElements": [
"audio",
"canvas",
"embed",
"input",
"textarea",
"tr",
"video"
],
"ignoreRoles": [
"grid",
"listbox",
"menu",
"menubar",
"radiogroup",
"row",
"tablist",
"toolbar",
"tree",
"treegrid"
],
"labelAttributes": [
"label"
]
}
]
|
jsx-a11y/interactive-supports-focus
(back to comparison table π)
|
[
"error",
{
"tabbable": [
"button",
"checkbox",
"link",
"searchbox",
"spinbutton",
"switch",
"textbox"
]
}
]
|
|
jsx-a11y/heading-has-content
(back to comparison table π)
|
|
[
"error",
{
"components": [
""
]
}
]
|
jsx-a11y/lang
(back to comparison table π)
|
|
|
jsx-a11y/no-distracting-elements
(back to comparison table π)
|
|
[
"error",
{
"elements": [
"marquee",
"blink"
]
}
]
|
jsx-a11y/no-static-element-interactions
(back to comparison table π)
|
[
"error",
{
"allowExpressionValues": true,
"handlers": [
"onClick",
"onMouseDown",
"onMouseUp",
"onKeyPress",
"onKeyDown",
"onKeyUp"
]
}
]
|
[
"error",
{
"handlers": [
"onClick",
"onMouseDown",
"onMouseUp",
"onKeyPress",
"onKeyDown",
"onKeyUp"
]
}
]
|
jsx-a11y/no-noninteractive-element-interactions
(back to comparison table π)
|
[
"error",
{
"alert": [
"onKeyUp",
"onKeyDown",
"onKeyPress"
],
"body": [
"onError",
"onLoad"
],
"dialog": [
"onKeyUp",
"onKeyDown",
"onKeyPress"
],
"handlers": [
"onClick",
"onError",
"onLoad",
"onMouseDown",
"onMouseUp",
"onKeyPress",
"onKeyDown",
"onKeyUp"
],
"iframe": [
"onError",
"onLoad"
],
"img": [
"onError",
"onLoad"
]
}
]
|
[
"error",
{
"handlers": [
"onClick",
"onMouseDown",
"onMouseUp",
"onKeyPress",
"onKeyDown",
"onKeyUp"
]
}
]
|
jsx-a11y/no-autofocus
(back to comparison table π)
|
|
[
"error",
{
"ignoreNonDOM": true
}
]
|
jsx-a11y/media-has-caption
(back to comparison table π)
|
|
[
"error",
{
"audio": [],
"track": [],
"video": []
}
]
|
jsx-a11y/no-interactive-element-to-noninteractive-role
(back to comparison table π)
|
[
"error",
{
"canvas": [
"img"
],
"tr": [
"none",
"presentation"
]
}
]
|
[
"error",
{
"tr": [
"none",
"presentation"
]
}
]
|
jsx-a11y/no-noninteractive-element-to-interactive-role
(back to comparison table π)
|
[
"error",
{
"fieldset": [
"radiogroup",
"presentation"
],
"li": [
"menuitem",
"option",
"row",
"tab",
"treeitem"
],
"ol": [
"listbox",
"menu",
"menubar",
"radiogroup",
"tablist",
"tree",
"treegrid"
],
"table": [
"grid"
],
"td": [
"gridcell"
],
"ul": [
"listbox",
"menu",
"menubar",
"radiogroup",
"tablist",
"tree",
"treegrid"
]
}
]
|
[
"error",
{
"li": [
"menuitem",
"option",
"row",
"tab",
"treeitem"
],
"ol": [
"listbox",
"menu",
"menubar",
"radiogroup",
"tablist",
"tree",
"treegrid"
],
"table": [
"grid"
],
"td": [
"gridcell"
],
"ul": [
"listbox",
"menu",
"menubar",
"radiogroup",
"tablist",
"tree",
"treegrid"
]
}
]
|
jsx-a11y/no-noninteractive-tabindex
(back to comparison table π)
|
[
"error",
{
"allowExpressionValues": true,
"roles": [
"tabpanel"
],
"tags": []
}
]
|
[
"error",
{
"roles": [
"tabpanel"
],
"tags": []
}
]
|
jsx-a11y/anchor-is-valid
(back to comparison table π)
|
|
[
"error",
{
"aspects": [
"noHref",
"invalidHref",
"preferButton"
],
"components": [
"Link"
],
"specialLink": [
"to"
]
}
]
|
no-underscore-dangle
(back to comparison table π)
|
|
[
"error",
{
"allow": [
"__REDUX_DEVTOOLS_EXTENSION_COMPOSE__"
],
"allowAfterSuper": false,
"allowAfterThis": false,
"allowAfterThisConstructor": false,
"allowFunctionParams": true,
"enforceInMethodNames": true
}
]
|
jsx-quotes
(back to comparison table π)
|
[
"error",
"prefer-single"
]
|
[
"error",
"prefer-double"
]
|
class-methods-use-this
(back to comparison table π)
|
|
[
"error",
{
"enforceForClassFields": true,
"exceptMethods": [
"render",
"getInitialState",
"getDefaultProps",
"getChildContext",
"componentWillMount",
"UNSAFE_componentWillMount",
"componentDidMount",
"componentWillReceiveProps",
"UNSAFE_componentWillReceiveProps",
"shouldComponentUpdate",
"componentWillUpdate",
"UNSAFE_componentWillUpdate",
"componentDidUpdate",
"componentWillUnmount",
"componentDidCatch",
"getSnapshotBeforeUpdate"
]
}
]
|
react/forbid-prop-types
(back to comparison table π)
|
|
[
"error",
{
"checkChildContextTypes": true,
"checkContextTypes": true,
"forbid": [
"any",
"array",
"object"
]
}
]
|
react/jsx-boolean-value
(back to comparison table π)
|
|
[
"error",
"never",
{
"always": []
}
]
|
react/jsx-closing-tag-location
(back to comparison table π)
|
|
|
react/jsx-max-props-per-line
(back to comparison table π)
|
[
"error",
{
"maximum": 3,
"when": "multiline"
}
]
|
[
"error",
{
"maximum": 1,
"when": "multiline"
}
]
|
react/jsx-no-bind
(back to comparison table π)
|
[
"error",
{
"allowArrowFunctions": true,
"allowBind": false,
"allowFunctions": false,
"ignoreDOMComponents": false,
"ignoreRefs": true
}
]
|
[
"error",
{
"allowArrowFunctions": true,
"allowBind": false,
"allowFunctions": false,
"ignoreDOMComponents": true,
"ignoreRefs": true
}
]
|
react/jsx-no-duplicate-props
(back to comparison table π)
|
|
[
"error",
{
"ignoreCase": true
}
]
|
react/jsx-pascal-case
(back to comparison table π)
|
[
"error",
{
"ignore": [
"h{}",
"h2",
"h3",
"h4",
"h5",
"h6",
"p",
"a",
"ul",
"ol",
"li",
"img",
"div",
"span",
"dl",
"dt",
"dd"
]
}
]
|
[
"error",
{
"allowAllCaps": true,
"ignore": []
}
]
|
react/no-danger
(back to comparison table π)
|
|
|
react/prefer-es6-class
(back to comparison table π)
|
|
|
react/prop-types
(back to comparison table π)
|
|
[
"error",
{
"customValidators": [],
"ignore": [],
"skipUndeclared": false
}
]
|
react/react-in-jsx-scope
(back to comparison table π)
|
|
|
react/jsx-wrap-multilines
(back to comparison table π)
|
|
[
"error",
{
"arrow": "parens-new-line",
"assignment": "parens-new-line",
"condition": "parens-new-line",
"declaration": "parens-new-line",
"logical": "parens-new-line",
"prop": "parens-new-line",
"return": "parens-new-line"
}
]
|
react/jsx-indent
(back to comparison table π)
|
|
|
react/jsx-no-target-blank
(back to comparison table π)
|
|
[
"error",
{
"enforceDynamicLinks": "always",
"forms": false,
"links": true
}
]
|
react/jsx-filename-extension
(back to comparison table π)
|
|
[
"error",
{
"extensions": [
".jsx"
]
}
]
|
react/no-unused-prop-types
(back to comparison table π)
|
|
[
"error",
{
"customValidators": [],
"skipShapeProps": true
}
]
|
react/no-unescaped-entities
(back to comparison table π)
|
|
|
react/jsx-tag-spacing
(back to comparison table π)
|
[
"error",
{
"afterOpening": "never",
"beforeSelfClosing": "always",
"closingSlash": "never"
}
]
|
[
"error",
{
"afterOpening": "never",
"beforeClosing": "never",
"beforeSelfClosing": "always",
"closingSlash": "never"
}
]
|
react/require-default-props
(back to comparison table π)
|
|
[
"error",
{
"forbidDefaultForRequired": true
}
]
|
react/forbid-foreign-prop-types
(back to comparison table π)
|
|
[
"warn",
{
"allowInPropTypes": true
}
]
|
react/default-props-match-prop-types
(back to comparison table π)
|
|
[
"error",
{
"allowRequiredDefaults": false
}
]
|
react/jsx-one-expression-per-line
(back to comparison table π)
|
|
[
"error",
{
"allow": "single-child"
}
]
|
react/destructuring-assignment
(back to comparison table π)
|
|
|
react/button-has-type
(back to comparison table π)
|
|
[
"error",
{
"button": true,
"reset": false,
"submit": true
}
]
|
react/jsx-curly-newline
(back to comparison table π)
|
|
[
"error",
{
"multiline": "consistent",
"singleline": "consistent"
}
]
|
react/static-property-placement
(back to comparison table π)
|
|
[
"error",
"property assignment"
]
|
react/jsx-props-no-spreading
(back to comparison table π)
|
|
[
"error",
{
"custom": "enforce",
"exceptions": [],
"explicitSpread": "ignore",
"html": "enforce"
}
]
|
import/no-unresolved
(back to comparison table π)
|
|
[
"error",
{
"caseSensitive": true,
"caseSensitiveStrict": false,
"commonjs": true
}
]
|
import/named
(back to comparison table π)
|
|
|
import/no-extraneous-dependencies
(back to comparison table π)
|
[
"error",
{
"devDependencies": true,
"optionalDependencies": true,
"peerDependencies": true
}
]
|
[
"error",
{
"devDependencies": [
"test/**",
"tests/**",
"spec/**",
"**/__tests__/**",
"**/__mocks__/**",
"test.{js,jsx}",
"test-*.{js,jsx}",
"**/*{.,_}{test,spec}.{js,jsx}",
"**/jest.config.js",
"**/jest.setup.js",
"**/vue.config.js",
"**/webpack.config.js",
"**/webpack.config.*.js",
"**/rollup.config.js",
"**/rollup.config.*.js",
"**/gulpfile.js",
"**/gulpfile.*.js",
"**/Gruntfile{,.js}",
"**/protractor.conf.js",
"**/protractor.conf.*.js",
"**/karma.conf.js"
],
"optionalDependencies": false
}
]
|
import/extensions
(back to comparison table π)
|
[
"error",
"never",
{
"ignorePackages": true,
"pattern": {
"json": "always",
"svg": "always"
}
}
]
|
[
"error",
"ignorePackages",
{
"js": "never",
"jsx": "never",
"mjs": "never"
}
]
|
import/order
(back to comparison table π)
|
[
"error",
{
"alphabetize": {
"caseInsensitive": false,
"order": "asc"
},
"groups": [
"builtin",
"external",
"internal",
"parent",
"sibling",
"index"
],
"newlines-between": "never",
"warnOnUnassignedImports": false
}
]
|
[
"error",
{
"groups": [
[
"builtin",
"external",
"internal"
]
],
"warnOnUnassignedImports": false
}
]
|
import/prefer-default-export
(back to comparison table π)
|
|
|
import/no-cycle
(back to comparison table π)
|
|
[
"error",
{
"ignoreExternal": false,
"maxDepth": "β"
}
]
|
import/no-useless-path-segments
(back to comparison table π)
|
|
[
"error",
{
"commonjs": true
}
]
|
arrow-body-style
(back to comparison table π)
|
|
[
"error",
"as-needed",
{
"requireReturnForObjectLiteral": false
}
]
|
generator-star-spacing
(back to comparison table π)
|
[
"error",
{
"after": false,
"before": true
}
]
|
[
"error",
{
"after": true,
"before": false
}
]
|
no-confusing-arrow
(back to comparison table π)
|
|
[
"error",
{
"allowParens": true
}
]
|
object-shorthand
(back to comparison table π)
|
|
[
"error",
"always",
{
"avoidQuotes": true,
"ignoreConstructors": false
}
]
|
prefer-arrow-callback
(back to comparison table π)
|
|
[
"error",
{
"allowNamedFunctions": false,
"allowUnboundThis": true
}
]
|
prefer-const
(back to comparison table π)
|
|
[
"error",
{
"destructuring": "any",
"ignoreReadBeforeAssign": true
}
]
|
prefer-destructuring
(back to comparison table π)
|
|
[
"error",
{
"AssignmentExpression": {
"array": true,
"object": false
},
"VariableDeclarator": {
"array": false,
"object": true
}
},
{
"enforceForRenamedProperties": false
}
]
|
prefer-template
(back to comparison table π)
|
|
|
template-curly-spacing
(back to comparison table π)
|
|
|
yield-star-spacing
(back to comparison table π)
|
[
"error",
{
"after": true,
"before": false
}
]
|
|
no-shadow
(back to comparison table π)
|
[
"error",
{
"builtinGlobals": false,
"hoist": "all"
}
]
|
|
no-unused-vars
(back to comparison table π)
|
|
[
"error",
{
"args": "after-used",
"ignoreRestSiblings": true,
"vars": "all"
}
]
|
no-use-before-define
(back to comparison table π)
|
[
"error",
{
"classes": true,
"functions": false,
"variables": true
}
]
|
[
"error",
{
"classes": true,
"functions": true,
"variables": true
}
]
|
brace-style
(back to comparison table π)
|
[
"error",
"1tbs",
{
"allowSingleLine": false
}
]
|
[
"error",
"1tbs",
{
"allowSingleLine": true
}
]
|
camelcase
(back to comparison table π)
|
|
[
"error",
{
"ignoreDestructuring": false,
"ignoreGlobals": false,
"ignoreImports": false,
"properties": "never"
}
]
|
comma-style
(back to comparison table π)
|
|
[
"error",
"last",
{
"exceptions": {
"ArrayExpression": false,
"ArrayPattern": false,
"ArrowFunctionExpression": false,
"CallExpression": false,
"FunctionDeclaration": false,
"FunctionExpression": false,
"ImportDeclaration": false,
"NewExpression": false,
"ObjectExpression": false,
"ObjectPattern": false,
"VariableDeclaration": false
}
}
]
|
eol-last
(back to comparison table π)
|
|
|
func-names
(back to comparison table π)
|
|
|
indent
(back to comparison table π)
|
|
[
"error",
2,
{
"ArrayExpression": 1,
"CallExpression": {
"arguments": 1
},
"FunctionDeclaration": {
"body": 1,
"parameters": 1
},
"FunctionExpression": {
"body": 1,
"parameters": 1
},
"ImportDeclaration": 1,
"ObjectExpression": 1,
"SwitchCase": 1,
"VariableDeclarator": 1,
"flatTernaryExpressions": false,
"ignoreComments": false,
"ignoredNodes": [
"JSXElement",
"JSXElement > *",
"JSXAttribute",
"JSXIdentifier",
"JSXNamespacedName",
"JSXMemberExpression",
"JSXSpreadAttribute",
"JSXExpressionContainer",
"JSXOpeningElement",
"JSXClosingElement",
"JSXFragment",
"JSXOpeningFragment",
"JSXClosingFragment",
"JSXText",
"JSXEmptyExpression",
"JSXSpreadChild"
],
"offsetTernaryExpressions": false,
"outerIIFEBody": 1
}
]
|
keyword-spacing
(back to comparison table π)
|
[
"error",
{
"after": true,
"before": true
}
]
|
[
"error",
{
"after": true,
"before": true,
"overrides": {
"case": {
"after": true
},
"return": {
"after": true
},
"throw": {
"after": true
}
}
}
]
|
lines-between-class-members
(back to comparison table π)
|
|
[
"error",
"always",
{
"exceptAfterSingleLine": false
}
]
|
lines-around-directive
(back to comparison table π)
|
|
[
"error",
{
"after": "always",
"before": "always"
}
]
|
max-len
(back to comparison table π)
|
|
[
"error",
100,
2,
{
"ignoreComments": false,
"ignoreRegExpLiterals": true,
"ignoreStrings": true,
"ignoreTemplateLiterals": true,
"ignoreUrls": true
}
]
|
new-cap
(back to comparison table π)
|
|
[
"error",
{
"capIsNew": false,
"capIsNewExceptions": [
"Immutable.Map",
"Immutable.Set",
"Immutable.List"
],
"newIsCap": true,
"newIsCapExceptions": [],
"properties": true
}
]
|
newline-per-chained-call
(back to comparison table π)
|
|
[
"error",
{
"ignoreChainWithDepth": 4
}
]
|
no-continue
(back to comparison table π)
|
|
|
no-mixed-operators
(back to comparison table π)
|
|
[
"error",
{
"allowSamePrecedence": false,
"groups": [
[
"%",
"**"
],
[
"%",
"+"
],
[
"%",
"-"
],
[
"%",
"*"
],
[
"%",
"/"
],
[
"/",
"*"
],
[
"&",
"|",
"<<",
">>",
">>>"
],
[
"==",
"!=",
"===",
"!=="
],
[
"&&",
"||"
]
]
}
]
|
no-multiple-empty-lines
(back to comparison table π)
|
[
"error",
{
"max": 1,
"maxBOF": 0,
"maxEOF": 1
}
]
|
[
"error",
{
"max": 1,
"maxBOF": 0,
"maxEOF": 0
}
]
|
no-nested-ternary
(back to comparison table π)
|
|
|
no-plusplus
(back to comparison table π)
|
|
|
no-spaced-func
(back to comparison table π)
|
|
|
no-trailing-spaces
(back to comparison table π)
|
|
[
"error",
{
"ignoreComments": false,
"skipBlankLines": false
}
]
|
no-unneeded-ternary
(back to comparison table π)
|
|
[
"error",
{
"defaultAssignment": false
}
]
|
nonblock-statement-body-position
(back to comparison table π)
|
|
[
"error",
"beside",
{
"overrides": {}
}
]
|
object-curly-spacing
(back to comparison table π)
|
|
|
object-curly-newline
(back to comparison table π)
|
[
"error",
{
"ExportDeclaration": "always",
"ImportDeclaration": "always",
"ObjectExpression": {
"minProperties": 1,
"multiline": true
},
"ObjectPattern": {
"minProperties": 1,
"multiline": true
}
}
]
|
[
"error",
{
"ExportDeclaration": {
"consistent": true,
"minProperties": 4,
"multiline": true
},
"ImportDeclaration": {
"consistent": true,
"minProperties": 4,
"multiline": true
},
"ObjectExpression": {
"consistent": true,
"minProperties": 4,
"multiline": true
},
"ObjectPattern": {
"consistent": true,
"minProperties": 4,
"multiline": true
}
}
]
|
object-property-newline
(back to comparison table π)
|
[
"error",
{
"allowAllPropertiesOnSameLine": false,
"allowMultiplePropertiesPerLine": false
}
]
|
[
"error",
{
"allowAllPropertiesOnSameLine": true,
"allowMultiplePropertiesPerLine": false
}
]
|
one-var-declaration-per-line
(back to comparison table π)
|
|
|
operator-linebreak
(back to comparison table π)
|
|
[
"error",
"before",
{
"overrides": {
"=": "none"
}
}
]
|
padded-blocks
(back to comparison table π)
|
|
[
"error",
{
"blocks": "never",
"classes": "never",
"switches": "never"
},
{
"allowSingleLineBlocks": true
}
]
|
quote-props
(back to comparison table π)
|
[
"error",
"as-needed",
{
"numbers": true
}
]
|
[
"error",
"as-needed",
{
"keywords": false,
"numbers": false,
"unnecessary": true
}
]
|
quotes
(back to comparison table π)
|
|
[
"error",
"single",
{
"avoidEscape": true
}
]
|
space-before-blocks
(back to comparison table π)
|
|
|
space-before-function-paren
(back to comparison table π)
|
|
[
"error",
{
"anonymous": "always",
"asyncArrow": "always",
"named": "never"
}
]
|
space-unary-ops
(back to comparison table π)
|
[
"error",
{
"nonwords": false,
"words": true
}
]
|
[
"error",
{
"nonwords": false,
"overrides": {},
"words": true
}
]
|
spaced-comment
(back to comparison table π)
|
|
[
"error",
"always",
{
"block": {
"balanced": true,
"exceptions": [
"-",
"+"
],
"markers": [
"=",
"!",
":",
"::"
]
},
"line": {
"exceptions": [
"-",
"+"
],
"markers": [
"=",
"!",
"/"
]
}
}
]
|
global-require
(back to comparison table π)
|
|
|
no-buffer-constructor
(back to comparison table π)
|
|
|
no-new-require
(back to comparison table π)
|
|
|
no-path-concat
(back to comparison table π)
|
|
|
getter-return
(back to comparison table π)
|
|
[
"error",
{
"allowImplicit": true
}
]
|
no-await-in-loop
(back to comparison table π)
|
|
|
no-cond-assign
(back to comparison table π)
|
|
|
no-console
(back to comparison table π)
|
|
|
no-constant-condition
(back to comparison table π)
|
|
|
no-unreachable
(back to comparison table π)
|
|
|
array-callback-return
(back to comparison table π)
|
|
[
"error",
{
"allowImplicit": true,
"checkForEach": false
}
]
|
curly
(back to comparison table π)
|
|
[
"error",
"multi-line"
]
|
default-case
(back to comparison table π)
|
|
[
"error",
{
"commentPattern": "^no default$"
}
]
|
dot-notation
(back to comparison table π)
|
|
[
"error",
{
"allowKeywords": true,
"allowPattern": ""
}
]
|
eqeqeq
(back to comparison table π)
|
|
[
"error",
"always",
{
"null": "ignore"
}
]
|
max-classes-per-file
(back to comparison table π)
|
|
|
no-alert
(back to comparison table π)
|
|
|
no-else-return
(back to comparison table π)
|
|
[
"error",
{
"allowElseIf": false
}
]
|
no-empty-function
(back to comparison table π)
|
|
[
"error",
{
"allow": [
"arrowFunctions",
"functions",
"methods"
]
}
]
|
no-global-assign
(back to comparison table π)
|
|
[
"error",
{
"exceptions": []
}
]
|
no-labels
(back to comparison table π)
|
|
[
"error",
{
"allowLoop": false,
"allowSwitch": false
}
]
|
no-multi-spaces
(back to comparison table π)
|
|
[
"error",
{
"ignoreEOLComments": false
}
]
|
no-param-reassign
(back to comparison table π)
|
[
"error",
{
"props": false
}
]
|
[
"error",
{
"ignorePropertyModificationsFor": [
"acc",
"accumulator",
"e",
"ctx",
"context",
"req",
"request",
"res",
"response",
"$scope",
"staticContext"
],
"props": true
}
]
|
no-redeclare
(back to comparison table π)
|
[
"error",
{
"builtinGlobals": true
}
]
|
|
no-return-assign
(back to comparison table π)
|
|
|
no-return-await
(back to comparison table π)
|
|
|
no-self-assign
(back to comparison table π)
|
|
[
"error",
{
"props": true
}
]
|
no-unused-expressions
(back to comparison table π)
|
|
[
"error",
{
"allowShortCircuit": false,
"allowTaggedTemplates": false,
"allowTernary": false,
"enforceForJSX": false
}
]
|
no-void
(back to comparison table π)
|
[
"error",
{
"allowAsStatement": true
}
]
|
|
prefer-promise-reject-errors
(back to comparison table π)
|
|
[
"error",
{
"allowEmptyReject": true
}
]
|
wrap-iife
(back to comparison table π)
|
|
[
"error",
"outside",
{
"functionPrototypeMethods": false
}
]
|
yoda
(back to comparison table π)
|
|
|