1
0
mirror of https://github.com/laurent22/joplin.git synced 2024-12-24 10:27:10 +02:00
joplin/packages/tools/spellcheck.ts

47 lines
1.2 KiB
TypeScript

import yargs = require('yargs');
import { chdir } from 'process';
import { rootDir } from './tool-utils';
import { execCommand } from '@joplin/utils';
import { fileExtension } from '@joplin/utils/path';
const supportedExtensions = ['ts', 'tsx', 'md', 'mdx'];
const main = async () => {
const argv = await yargs.argv;
let filePaths = (argv._ as string[]) || [];
const processAll = !!argv.all;
filePaths = filePaths.filter(f => supportedExtensions.includes(fileExtension(f).toLowerCase()));
if (!processAll && !filePaths.length) return;
chdir(rootDir);
let cmd = [
'yarn', 'cspell',
'--no-progress',
'--no-summary',
'--config', 'cspell.json',
];
if (processAll) {
cmd.push(`**/*.{${supportedExtensions.join(',')}}`);
} else {
cmd = cmd.concat(filePaths);
}
try {
await execCommand(cmd, { showStderr: false, showStdout: false });
} catch (error) {
if (!error.stdout.trim()) return;
console.error(`The following spelling mistakes were found. Please check https://joplinapp.org/help/dev/spellcheck for\ninformation on how to deal with spelling mistakes.\n\n${error.stdout}`);
process.exit(1);
}
};
main().catch((error) => {
console.error('Fatal error');
console.error(error);
process.exit(1);
});