module.exports = { parser: '@typescript-eslint/parser', parserOptions: { project: 'tsconfig.eslint.json', sourceType: 'module', }, plugins: ['prettier', '@typescript-eslint/eslint-plugin'], extends: [ 'airbnb-base', 'plugin:@typescript-eslint/eslint-recommended', 'plugin:@typescript-eslint/recommended', 'prettier', ], root: true, env: { node: true, jest: true, }, rules: { 'no-shadow': 'off', '@typescript-eslint/no-shadow': 'error', 'prettier/prettier': 'error', '@typescript-eslint/interface-name-prefix': 'off', '@typescript-eslint/explicit-function-return-type': 'off', '@typescript-eslint/explicit-module-boundary-types': 'off', '@typescript-eslint/no-explicit-any': 'off', 'import/extensions': [ 'error', 'ignorePackages', { js: 'never', mjs: 'never', jsx: 'never', ts: 'never', tsx: 'never', }, ], 'no-useless-constructor': 'off', '@typescript-eslint/no-unused-vars': ['error'], 'no-param-reassign': ['error', { props: false }], 'import/prefer-default-export': 'off', 'import/no-extraneous-dependencies': [ 'error', { devDependencies: ['**/*.spec.ts', '**/*.spec.tsx'], }, ], 'class-methods-use-this': 'off', 'no-console': 'error', }, ignorePatterns: ['dist/*', 'migration/*'], settings: { 'import/resolver': { node: { extensions: ['.js', '.jsx', '.ts', '.tsx'], }, }, }, };