UNPKG

cspell

Version:

A Spelling Checker for Code!

52 lines 2.52 kB
import chalk from 'chalk'; import { Option as CommanderOption } from 'commander'; import * as App from './application.mjs'; import { checkText } from './application.mjs'; import { console } from './console.js'; import { CheckFailed } from './util/errors.js'; export function commandCheck(prog) { return prog .command('check <files...>') .description('Spell check file(s) and display the result. The full file is displayed in color.') .option('-c, --config <cspell.json>', 'Configuration file to use. By default cspell looks for cspell.json in the current directory.') .option('--validate-directives', 'Validate in-document CSpell directives.') .option('--no-validate-directives', 'Do not validate in-document CSpell directives.') .option('--no-color', 'Turn off color.') .option('--color', 'Force color') .option('--no-exit-code', 'Do not return an exit code if issues are found.') .addOption(new CommanderOption('--default-configuration', 'Load the default configuration and dictionaries.').hideHelp()) .addOption(new CommanderOption('--no-default-configuration', 'Do not load the default configuration and dictionaries.')) .action(async (files, options) => { const useExitCode = options.exitCode ?? true; App.parseApplicationFeatureFlags(options.flag); let issueCount = 0; for (const filename of files) { console.log(chalk.yellowBright(`Check file: ${filename}`)); console.log(); try { const result = await checkText(filename, options); for (const item of result.items) { const fn = item.flagIE === App.IncludeExcludeFlag.EXCLUDE ? chalk.gray : item.isError ? chalk.red : chalk.whiteBright; const t = fn(item.text); process.stdout.write(t); issueCount += item.isError ? 1 : 0; } console.log(); } catch { console.error(`File not found "${filename}"`); throw new CheckFailed('File not found', 1); } console.log(); } if (issueCount) { const exitCode = (useExitCode ?? true) ? 1 : 0; throw new CheckFailed('Issues found', exitCode); } }); } //# sourceMappingURL=commandCheck.js.map