From d488e7cbde399ff8b5aa8db75633fdba91c11d21 Mon Sep 17 00:00:00 2001 From: Oliver Eyton-Williams Date: Tue, 7 Oct 2025 10:07:45 +0200 Subject: [PATCH] chore: simplify lintstaged config (#62550) --- .lintstagedrc.js | 60 ++++++++---------------------------------------- 1 file changed, 10 insertions(+), 50 deletions(-) diff --git a/.lintstagedrc.js b/.lintstagedrc.js index 6731f2c6c20..7e33182ca5f 100644 --- a/.lintstagedrc.js +++ b/.lintstagedrc.js @@ -1,64 +1,24 @@ const { ESLint } = require('eslint'); const cli = new ESLint(); - -// This lets us abort if we've already run a stage for all files -const completedStages = new Set(); - // if a lot of files are changed, it's faster to run prettier/eslint on the // whole project than to run them on each file separately module.exports = { '*.(js|ts|tsx)': async files => { - if (completedStages.has('js')) return []; - const ignoredIds = await Promise.all( files.map(file => cli.isPathIgnored(file)) ); const lintableFiles = files.filter((_, i) => !ignoredIds[i]); - if (files.length > 10) { - completedStages.add('js'); - return ['eslint --max-warnings=0 --cache --fix .', 'prettier --write .']; - } else { - return [ - 'eslint --max-warnings=0 --cache --fix ' + lintableFiles.join(' '), - ...files.map(filename => `prettier --write '${filename}'`) - ]; - } + + return [ + 'eslint --max-warnings=0 --cache --fix ' + lintableFiles.join(' '), + ...files.map(filename => `prettier --write '${filename}'`) + ]; }, - '*.!(js|ts|tsx|css)': files => { - if (completedStages.has('not-js')) return []; + '*.!(js|ts|tsx|css)': files => + files.map(filename => `prettier --write --ignore-unknown '${filename}'`), - if (files.length > 10) { - completedStages.add('not-js'); - return 'prettier --write .'; - } else { - return files.map( - filename => `prettier --write --ignore-unknown '${filename}'` - ); - } - }, - - './curriculum/challenges/**/*.md': files => { - if (completedStages.has('markdown')) return []; - - if (files.length > 10) { - completedStages.add('markdown'); - return 'pnpm run lint:challenges'; - } else { - return files.map( - filename => `node ./tools/scripts/lint/index.js '${filename}'` - ); - } - }, - - '*.css': files => { - if (completedStages.has('css')) return []; - - if (files.length > 10) { - completedStages.add('css'); - return 'stylelint --fix ./**/*.css'; - } else { - return files.map(filename => `stylelint --fix '${filename}'`); - } - } + './curriculum/challenges/**/*.md': files => + files.map(filename => `node ./tools/scripts/lint/index.js '${filename}'`), + '*.css': files => files.map(filename => `stylelint --fix '${filename}'`) };