/** * Copyright (c) Facebook, Inc. and its affiliates. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. */ const OFF = 0; // eslint-disable-next-line no-unused-vars const WARNING = 1; const ERROR = 2; module.exports = { env: { browser: true, commonjs: true, jest: true, node: true, }, parser: 'babel-eslint', extends: ['airbnb', 'prettier'], rules: { 'no-console': OFF, // We have console.error, console.warn, etc. radix: ERROR, 'class-methods-use-this': OFF, 'func-names': OFF, 'no-empty': [ERROR, {allowEmptyCatch: true}], 'no-param-reassign': OFF, 'no-plusplus': OFF, 'prefer-template': OFF, 'import/no-extraneous-dependencies': OFF, 'react/jsx-fragments': OFF, // Babylon v6 does not support <> fragments 'react/jsx-closing-bracket-location': OFF, // Formatting is left to Prettier. 'react/jsx-filename-extension': OFF, // Enable in future when migrating. 'react/jsx-one-expression-per-line': OFF, // Formatting is left to Prettier. 'react/no-array-index-key': OFF, // It's ok if you use it for static content. 'react/no-danger': OFF, // Need this to inject scripts. 'react/no-multi-comp': OFF, // One component per file creates too many files. 'react/no-unescaped-entities': [ERROR, {forbid: ['>', '}']}], // Existing ESLint errors sorted by frequency, silencing first. 'react/button-has-type': OFF, // 1 'react/forbid-prop-types': OFF, // 1 'react/require-default-props': OFF, // 1 'jsx-a11y/control-has-associated-label': OFF, // 1 'react/jsx-no-target-blank': OFF, // 1 'react/jsx-props-no-spreading': OFF, // 2 'max-classes-per-file': OFF, // 2 'prefer-object-spread': OFF, // 5 'jsx-a11y/anchor-is-valid': OFF, // 9 'import/no-unresolved': OFF, // 15 'react/prefer-stateless-function': OFF, // 22 'import/no-dynamic-require': OFF, // 46 'prefer-destructuring': OFF, // 69 'global-require': OFF, // 85 'react/prop-types': OFF, // 197 'react/destructuring-assignment': OFF, // 342 }, };