module.exports = { env: { browser: true, }, extends: [ 'plugin:react/recommended', 'airbnb', 'plugin:@typescript-eslint/eslint-recommended', 'plugin:@typescript-eslint/recommended', ], parser: '@typescript-eslint/parser', parserOptions: { ecmaFeatures: { jsx: true, }, ecmaVersion: 2020, sourceType: 'module', }, plugins: [ 'react', '@typescript-eslint', ], rules: { 'react/jsx-props-no-spreading': 'off', 'import/no-unresolved': 'off', 'import/extensions': 'off', 'react/forbid-prop-types': 'off', 'react/prefer-stateless-function': 'off', 'max-len': ['error', {code: 120}], 'object-curly-spacing': [2, 'never'], 'react/prop-types': [2, {skipUndeclared: true}], 'react/jsx-filename-extension': [2, {extensions: ['.jsx', '.tsx']}], 'jsx-a11y/label-has-associated-control': [2, { labelComponents: ['label'], labelAttributes: ['htmlFor'], controlComponents: ['input'], }], 'import/prefer-default-export': 'off', // eslint-disable-next-line max-len // bug: https://stackoverflow.com/questions/63961803/eslint-says-all-enums-in-typescript-app-are-already-declared-in-the-upper-scope 'no-shadow': 'off', '@typescript-eslint/no-shadow': ['error'], // eslint-disable-next-line max-len // https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/no-use-before-define.md#how-to-use 'no-use-before-define': 'off', '@typescript-eslint/no-use-before-define': ['error'], }, };