Permalink
const OFF = 0; | |
const WARNING = 1; | |
const ERROR = 2; | |
module.exports = { | |
parser: 'babel-eslint', | |
extends: './node_modules/fbjs-scripts/eslint/.eslintrc.js', | |
plugins: [ | |
'react', | |
'react-internal', | |
], | |
ecmaFeatures: { | |
modules: false | |
}, | |
// We're stricter than the default config, mostly. We'll override a few rules | |
// and then enable some React specific ones. | |
rules: { | |
'accessor-pairs': OFF, | |
'brace-style': [ERROR, '1tbs'], | |
'comma-dangle': [ERROR, 'always-multiline'], | |
'consistent-return': ERROR, | |
'dot-location': [ERROR, 'property'], | |
'dot-notation': ERROR, | |
'eol-last': ERROR, | |
'eqeqeq': [ERROR, 'allow-null'], | |
'indent': [ERROR, 2, {SwitchCase: 1}], | |
'jsx-quotes': [ERROR, 'prefer-double'], | |
'no-bitwise': OFF, | |
'no-multi-spaces': ERROR, | |
'no-restricted-syntax': [ERROR, 'WithStatement'], | |
'no-shadow': ERROR, | |
'no-unused-expressions': ERROR, | |
'no-unused-vars': [ERROR, {args: 'none'}], | |
'quotes': [ERROR, 'single', 'avoid-escape'], | |
'space-after-keywords': ERROR, | |
'space-before-blocks': ERROR, | |
'space-before-function-paren': [ERROR, {anonymous: 'never', named: 'never'}], | |
'space-before-keywords': ERROR, | |
'strict': [ERROR, 'global'], | |
// React & JSX | |
// Our transforms set this automatically | |
'react/display-name': OFF, | |
'react/jsx-boolean-value': [ERROR, 'always'], | |
'react/jsx-no-undef': ERROR, | |
// We don't care to do this | |
'react/jsx-sort-prop-types': OFF, | |
'react/jsx-sort-props': OFF, | |
'react/jsx-uses-react': ERROR, | |
'react/jsx-uses-vars': ERROR, | |
// It's easier to test some things this way | |
'react/no-did-mount-set-state': OFF, | |
'react/no-did-update-set-state': OFF, | |
// We define multiple components in test files | |
'react/no-multi-comp': OFF, | |
'react/no-unknown-property': OFF, | |
// This isn't useful in our test code | |
'react/prop-types': OFF, | |
'react/react-in-jsx-scope': ERROR, | |
'react/self-closing-comp': ERROR, | |
// We don't care to do this | |
'react/sort-comp': OFF, | |
'react/wrap-multilines': [ERROR, {declaration: false, assignment: false}], | |
// CUSTOM RULES | |
// the second argument of warning/invariant should be a literal string | |
'react-internal/warning-and-invariant-args': ERROR, | |
} | |
}; |