text: module.exports = {
    env: {
      browser: true,
      es2021: true,
      jest: true,
    },
    extends: [
      'airbnb',
      'plugin:react/recommended',
      'prettier/react',
      'plugin:prettier/recommended',
    ],
    parserOptions: {
      ecmaFeatures: {
        jsx: true,
      },
      ecmaVersion: 12,
      sourceType: 'module',
    },
    plugins: ['react'],
    rules: {
      'react/jsx-filename-extension': [1, {extensions: ['.js', '.jsx']}],
      'no-empty-function': 'error',
      /* We should always disable console logs and debugging in production */
      'no-console': process.env.NODE_ENV === 'production' ? 'error' : 'off',
      'no-debugger': process.env.NODE_ENV === 'production' ? 'error' : 'off',
      quotes: ['error', 'single'],
      semi: 'error',
      curly: 'error',
      eqeqeq: ['error', 'always'],
      radix: 'error',
      yoda: 'error',
      camelcase: ['error', {properties: 'always'}],
      'no-template-curly-in-string': 'error',
      'no-extra-parens': 'error',
      'accessor-pairs': 'error',
      'array-callback-return': 'error',
      'block-scoped-var': 'error',
      'default-case': ['error', {commentPattern: '^skip\\sdefault'}],
      'default-param-last': 'error',
      'grouped-accessor-pairs': 'error',
      'guard-for-in': 'error',
      'max-classes-per-file': ['error', 1],
      'no-case-declarations': 'error',
      'no-else-return': 'error',
      'no-eval': 'error',
      'no-floating-decimal': 'error',
      'no-global-assign': 'error',
      'no-implicit-coercion': ['error', {allow: ['!!']}],
      'no-implicit-globals': 'error',
      'no-implied-eval': 'error',
      'no-invalid-this': 'error',
      'no-lone-blocks': 'error',
      'no-loop-func': 'error',
      'no-multi-spaces': 'error',
      'no-multi-str': 'error',
      'no-new': 'error',
      'no-new-func': 'error',
      'no-new-wrappers': 'error',
      'no-param-reassign': 'error',
      'no-return-await': 'error',
      'no-self-compare': 'error',
      'no-sequences': 'error',
      'no-throw-literal': 'error',
      'no-unmodified-loop-condition': 'error',
      'no-useless-catch': 'error',
      'no-useless-concat': 'error',
      'prefer-named-capture-group': 'error',
      'prefer-promise-reject-errors': 'error',
      'prefer-regex-literals': 'error',
      'require-await': 'error',
      'init-declarations': ['error', 'always'],
      'no-shadow': ['error', {hoist: 'never'}],
      'array-bracket-spacing': ['error', 'never'],
      'brace-style': 'error',
      'capitalized-comments': ['error', 'always'],
      'comma-spacing': ['error', {before: false, after: true}],
      'eol-last': ['error', 'always'],
      'func-call-spacing': ['error', 'never'],
      'func-name-matching': ['error', {considerPropertyDescriptor: true}],
      'key-spacing': ['error', {beforeColon: false}],
      'keyword-spacing': ['error', {before: true}],
      'line-comment-position': ['error', {position: 'above'}],
      'lines-between-class-members': ['error', 'always'],
      'multiline-comment-style': ['error', 'starred-block'],
      'new-cap': ['error', {newIsCap: true}],
      'no-mixed-operators': 'error',
      'no-multi-assign': 'error',
      'no-multiple-empty-lines': 'error',
      'no-trailing-spaces': 'error',
      'no-unneeded-ternary': 'error',
      'no-whitespace-before-property': 'error',
      'nonblock-statement-body-position': ['error', 'below'],
      'object-property-newline': ['error', {allowAllPropertiesOnSameLine: true}],
      'operator-assignment': ['error', 'never'],
      'quote-props': ['error', 'as-needed'],
      'semi-spacing': 'error',
      'space-before-blocks': 'error',
      'space-before-function-paren': 'warn',
      'space-in-parens': ['error', 'never'],
      'switch-colon-spacing': ['error', {after: true, before: false}],
      'arrow-body-style': ['error', 'as-needed'],
      'arrow-parens': 'error',
      'arrow-spacing': 'error',
      'prefer-destructuring': [
        'error',
        {
          array: true,
          object: true,
        },
        {
          enforceForRenamedProperties: false,
        },
      ],
      'template-curly-spacing': 'error',
      // eslint-disable-next-line global-require
      'prettier/prettier': ['error', require('./.prettierrc.js')],
    },
  };
  