module.exports = { parser: '@typescript-eslint/parser', parserOptions: { project: 'tsconfig.json', tsconfigRootDir: __dirname, sourceType: 'module', }, plugins: ['import', 'eslint-comments', 'functional'], extends: [ 'eslint:recommended', 'plugin:eslint-comments/recommended', 'plugin:@typescript-eslint/recommended', 'plugin:import/typescript', 'plugin:prettier/recommended', ], root: true, env: { node: true, jest: true, es6: true, }, ignorePatterns: [ 'node_modules', 'build', 'coverage', 'dist', 'nc', '.eslintrc.js', ], globals: { BigInt: true, console: true, WebAssembly: true, }, rules: { '@typescript-eslint/explicit-module-boundary-types': 'off', 'eslint-comments/disable-enable-pair': [ 'error', { allowWholeFile: true, }, ], 'eslint-comments/no-unused-disable': 'error', 'sort-imports': [ 'error', { ignoreDeclarationSort: true, ignoreCase: true, }, ], 'import/order': [ 'error', { groups: [ 'builtin', 'external', 'internal', 'parent', 'sibling', 'index', 'object', 'type', ], }, ], '@typescript-eslint/no-this-alias': 'off', // todo: enable '@typescript-eslint/ban-ts-comment': 'off', '@typescript-eslint/no-explicit-any': 'off', '@typescript-eslint/no-unused-vars': 'off', '@typescript-eslint/no-var-requires': 'off', 'no-useless-catch': 'off', 'no-empty': 'off', '@typescript-eslint/no-empty-function': 'off', '@typescript-eslint/consistent-type-imports': 'warn', }, };