|
|
|
@ -1,25 +1,38 @@
|
|
|
|
|
const ignoredFiles = [
|
|
|
|
|
'package.json',
|
|
|
|
|
'yarn.lock',
|
|
|
|
|
'tsconfig.json',
|
|
|
|
|
'.lintstagedrc.js',
|
|
|
|
|
'.eslintrc.js',
|
|
|
|
|
];
|
|
|
|
|
|
|
|
|
|
const path = require('path');
|
|
|
|
|
|
|
|
|
|
const buildFormatCommand = filenames => {
|
|
|
|
|
const results = filenames
|
|
|
|
|
.map(f => path.relative(process.cwd(), f))
|
|
|
|
|
.filter(f => !ignoredFiles.includes(f));
|
|
|
|
|
|
|
|
|
|
return results.length ? `prettier --list-different --write ${results.join(' ')}` : '';
|
|
|
|
|
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(' ');
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
const buildFormatCommand = async files => {
|
|
|
|
|
const filesToLint = await removeIgnoredFiles(files);
|
|
|
|
|
|
|
|
|
|
if (!filesToLint || !filesToLint.length) {
|
|
|
|
|
return '';
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
const results = filesToLint.map(f => path.relative(process.cwd(), f));
|
|
|
|
|
|
|
|
|
|
return results.length
|
|
|
|
|
? `prettier --ignore-unknown --list-different --write ${results.join(' ')}`
|
|
|
|
|
: '';
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
const buildLintCommand = filenames => {
|
|
|
|
|
const results = filenames
|
|
|
|
|
.map(f => path.relative(process.cwd(), f))
|
|
|
|
|
.filter(f => !ignoredFiles.includes(f));
|
|
|
|
|
const buildLintCommand = async files => {
|
|
|
|
|
const filesToLint = await removeIgnoredFiles(files);
|
|
|
|
|
|
|
|
|
|
if (!filesToLint || !filesToLint.length) {
|
|
|
|
|
return '';
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
const results = filesToLint.map(f => path.relative(process.cwd(), f));
|
|
|
|
|
|
|
|
|
|
return results.length ? `eslint --cache ${results.join(' ')}` : '';
|
|
|
|
|
};
|
|
|
|
|