text: module.exports = {
    env: {
      browser: true,
      es2021: true,
      jest: true,
    },
    extends: [
      'airbnb',
      'plugin:react/recommended',
    ],
    parser: '@typescript-eslint/parser',
    globals: {
      given: 'readonly',
      context: 'readonly',
    },
    parserOptions: {
      ecmaFeatures: {
        jsx: true,
      },
      ecmaVersion: 12,
      sourceType: 'module',
    },
  
    plugins: [
      'react',
      '@typescript-eslint',
    ],
    rules: {
      'react/jsx-filename-extension': [1, { extensions: ['.ts', '.tsx'] }],
      indent: ['error', 2],
      'no-trailing-spaces': 'error',
      curly: 'error',
      'brace-style': 'error',
      'no-multi-spaces': 'error',
      'space-infix-ops': 'error',
      'space-unary-ops': 'error',
      'no-whitespace-before-property': 'error',
      'func-call-spacing': 'error',
      'space-before-blocks': 'error',
      'keyword-spacing': ['error', { before: true, after: true }],
      'comma-spacing': ['error', { before: false, after: true }],
      'comma-style': ['error', 'last'],
      'comma-dangle': ['error', 'always-multiline'],
      'space-in-parens': ['error', 'never'],
      'block-spacing': 'error',
      'array-bracket-spacing': ['error', 'never'],
      'object-curly-spacing': ['error', 'always'],
      'key-spacing': ['error', { mode: 'strict' }],
      'arrow-spacing': ['error', { before: true, after: true }],
      'jsx-a11y/label-has-associated-control': ['error', { assert: 'either' }],
      'react/prop-types': 'off',
      'linebreak-style': 'off',
      'no-proto': 'off',
      'no-param-reassign': ['error'],
      'react/jsx-props-no-spreading': ['error'],
      'no-use-before-define': 'off',
      'import/extensions': 'off',
      'import/no-unresolved': 'off',
      'import/no-extraneous-dependencies': [1, { devDependencies: ['**/*.test.tsx'] }],
    },
    settings: {
      'import/resolver': {
        node: {
          paths: ['src'],
        },
      },
    },
  };
  