mirror of
https://github.com/freeCodeCamp/freeCodeCamp.git
synced 2026-02-18 19:00:36 -05:00
chore: simplify lintstaged config (#62550)
This commit is contained in:
committed by
GitHub
parent
3cbe2ab8b1
commit
d488e7cbde
@@ -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}'`)
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user