module.exports = { env: { commonjs: true, es2021: true, node: true, }, root: true, extends: ['airbnb-base', 'plugin:@typescript-eslint/recommended', 'prettier'], parser: '@typescript-eslint/parser', parserOptions: { ecmaVersion: 12, sourceType: 'module', }, plugins: ['@typescript-eslint'], rules: { 'class-methods-use-this': 'off', 'import/no-extraneous-dependencies': ['error', { devDependencies: true }], 'import/prefer-default-export': 'off', // Default exports are bad. 'no-console': 'off', // The no-shadow rule set in airbnb-base generates false positives with TS. // https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/no-shadow.md 'no-shadow': 'off', '@typescript-eslint/no-shadow': ['error'], 'no-use-before-define': 'off', '@typescript-eslint/no-empty-interface': [ 'error', { allowSingleExtends: true, }, ], '@typescript-eslint/no-use-before-define': ['error', { functions: false }], }, overrides: [ { rules: { 'import/no-unresolved': ['off'], 'import/extensions': ['off'], 'no-console': 'off', }, files: ['**/*.ts', '**/*.tsx'], }, ], };