const { ESLint } = require('eslint') const removeIgnoredFiles = async (files) => { const eslint = new ESLint() const isIgnored = await Promise.all( files.map((file) => { return eslint.isPathIgnored(file) }) ) const filteredFiles = files.filter((_, i) => !isIgnored[i]) return filteredFiles.join(' ') } module.exports = { '**/*.ts?(x)': () => 'tsc -p tsconfig.json --noEmit', '**/*.{ts,tsx,js,jsx}': async (files) => { const filesToLint = await removeIgnoredFiles(files) return [`eslint --max-warnings=0 --fix --cache ${filesToLint}`] }, }