forked from freeCodeCamp/freeCodeCamp
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path.lintstagedrc.js
More file actions
28 lines (24 loc) · 976 Bytes
/
.lintstagedrc.js
File metadata and controls
28 lines (24 loc) · 976 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
const { ESLint } = require('eslint');
const cli = new ESLint();
// 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 => {
const ignoredIds = await Promise.all(
files.map(file => cli.isPathIgnored(file))
);
const lintableFiles = files.filter((_, i) => !ignoredIds[i]);
return [
'eslint --max-warnings=0 --cache --fix ' + lintableFiles.join(' '),
...files.map(filename => `prettier --write '${filename}'`)
];
},
'*.!(js|ts|tsx|css)': files =>
files.map(filename => `prettier --write --ignore-unknown '${filename}'`),
'./curriculum/challenges/**/*.md': files =>
files.map(filename => `node ./tools/scripts/lint/index.js '${filename}'`),
'*.css': files => [
...files.map(filename => `stylelint --fix '${filename}'`),
...files.map(filename => `prettier --write '${filename}'`)
]
};