text: var path = require('path');
  
  module.exports = {
    extends: [
      'airbnb',
      'plugin:jest/recommended',
      'plugin:react-hooks/recommended',
      'plugin:@typescript-eslint/recommended',
      'plugin:cypress/recommended',
    ],
    parser: '@typescript-eslint/parser',
    plugins: [
      'jest',
      'react',
      '@typescript-eslint',
    ],
    env: {
      node: true,
      mocha: true,
      browser: true,
      'jest/globals': true,
    },
    globals: {
      expect: false,
      describe: false,
    },
    rules: {
      camelcase: 'off',
      'consistent-return': 1,
      'arrow-body-style': 0,
      'max-len': 0,
      'no-unused-expressions': 0,
      'no-console': 0,
      'space-before-function-paren': 0,
      'react/prefer-stateless-function': 0,
      'react/no-multi-comp': 0,
      'react/no-unused-prop-types': [1, { customValidators: [], skipShapeProps: true }],
      'react/require-default-props': 0, // TODO set default props and enable this check
      'react/jsx-filename-extension': [1, { extensions: ['.jsx', '.tsx'] }],
      'no-param-reassign': 0,
      'new-cap': 0,
      'import/no-unresolved': [2, { caseSensitive: false }],
      'linebreak-style': 0,
      'import/no-named-as-default': 'off',
      'import/no-named-as-default-member': 'off',
      'import/extensions': 0,
      'import/no-extraneous-dependencies': 0,
      'no-underscore-dangle': 0,
      'jsx-a11y/no-static-element-interactions': 'off',
  
      // note you must disable the base rule as it can report incorrect errors. more info here:
      // https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/no-use-before-define.md
      'no-use-before-define': 'off',
      '@typescript-eslint/no-use-before-define': ['error'],
  
      // turn off and override to not run this on js and jsx files. More info here:
      // https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/explicit-module-boundary-types.md#configuring-in-a-mixed-jsts-codebase
      '@typescript-eslint/explicit-module-boundary-types': 'off',
  
      // There is a bug with these rules in our version of jsx-a11y plugin (5.1.1)
      // To upgrade our version of the plugin we would need to make more changes
      // with eslint-config-airbnb, so we will just turn off for now.
      'jsx-a11y/heading-has-content': 'off',
      'jsx-a11y/anchor-has-content': 'off',
    },
    overrides: [
      {
        files: ['*.ts', '*.tsx'],
        rules: {
          // Set to warn for now at the beginning to make migration easier
          // but want to change this to error when we can.
          '@typescript-eslint/explicit-module-boundary-types': ['warn'],
        },
      },
    ],
    settings: {
      'import/resolver': {
        webpack: {
          config: path.join(__dirname, 'webpack.config.js'),
        },
      },
    },
  };
  