module.exports = { env: { browser: true, es6: true, jest: true, }, extends: ['eslint:recommended', 'plugin:react/recommended', 'plugin:prettier/recommended'], settings: { react: { version: 'detect', }, }, globals: { shallow: true, render: true, mount: true, global: true, }, parser: 'babel-eslint', parserOptions: { ecmaFeatures: { jsx: true, }, ecmaVersion: 2018, sourceType: 'module', }, rules: { 'arrow-body-style': ['warn', 'as-needed'], 'arrow-parens': ['warn', 'as-needed'], 'arrow-spacing': 'error', 'block-spacing': ['error', 'never'], camelcase: ['error', {properties: 'always'}], 'comma-dangle': 0, 'comma-spacing': ['error', {before: false, after: true}], 'comma-style': ['error', 'last'], 'global-require': 0, indent: ['error', 2], 'key-spacing': ['error', {beforeColon: false, afterColon: true}], 'keyword-spacing': ['error', {before: true, after: true}], 'linebreak-style': ['error', 'unix'], 'linebreak-style': ['error', 'unix'], 'max-len': ['error', 120], 'no-confusing-arrow': ['error', {allowParens: false}], 'no-multi-spaces': 'error', 'no-shadow': 1, 'no-trailing-spaces': 'error', 'no-unused-expressions': 1, 'no-unused-vars': 1, 'no-useless-rename': 'error', 'no-whitespace-before-property': 'error', 'object-curly-newline': ['error', {consistent: true}], 'object-curly-spacing': ['error', 'never'], quotes: ['error', 'single'], semi: ['error', 'always'], 'semi-spacing': ['error', {before: false, after: true}], 'space-before-blocks': ['error', 'always'], 'space-before-function-paren': [ 'error', { anonymous: 'never', named: 'never', asyncArrow: 'always', }, ], 'space-in-parens': ['error', 'never'], 'space-infix-ops': ['error', {int32Hint: false}], 'space-unary-ops': [2, {words: true, nonwords: false}], 'react/jsx-filename-extension': ['error'], 'react/jsx-indent': [1, 2], 'react/jsx-key': 1, 'react/jsx-no-comment-textnodes': 1, 'react/jsx-no-duplicate-props': 1, 'react/jsx-no-target-blank': 2, 'react/jsx-props-no-multi-spaces': 1, 'react/jsx-sort-props': 1, 'react/jsx-tag-spacing': ['warn', {beforeSelfClosing: true}], 'react/no-children-prop': 1, 'react/no-deprecated': 1, 'react/no-direct-mutation-state': 2, 'react/no-typos': 1, 'react/no-unknown-property': 1, 'react/prefer-stateless-function': 1, 'react/prop-types': 1, 'react/react-in-jsx-scope': 2, 'react/require-default-props': 1, 'react/require-render-return': 1, 'react/sort-comp': 1, 'react/jsx-wrap-multilines': [ 1, { declaration: 'parens-new-line', assignment: 'parens-new-line', return: 'parens-new-line', arrow: 'parens-new-line', condition: 'parens-new-line', logical: 'parens-new-line', prop: 'parens-new-line', }, ], }, };