check-packages
Version:
CLI tool to check your npm dependencies against a list of allowed/forbidden packages.
59 lines (41 loc) • 1.46 kB
JavaScript
;
const updateNotifier = require('update-notifier');
const pkg = require('../package.json');
const chalk = require('chalk');
const ora = require('ora');
const readCliOptions = require('./read-cli-options');
const analyzeDependencies = require('./analyze-dependencies');
const run = cli => {
updateNotifier({ pkg }).notify();
const options = readCliOptions(cli.input, cli.flags);
if (options.valid && options.nextCliAction) {
cli[options.nextCliAction]();
}
if (!options.valid) {
console.log(chalk.red(`${options.error} Please check the help below:`));
cli.showHelp();
}
const spinner = ora('analysing dependencies...').start();
const result = analyzeDependencies(options);
if (result.error) {
spinner.fail(`Dependency analysis error: ${result.error}`);
return process.exit(1);
}
spinner.succeed('Dependencies analysed');
if (result.warning) {
console.log(chalk.black(chalk.bgYellow(result.warning)));
}
if (!result.error && result.unallowedPackages.length === 0) {
spinner.succeed('Congratulations, all dependencies are allowed!');
return process.exit(0);
}
/* istanbul ignore else */
if (result.unallowedPackages.length) {
spinner.fail(`Found ${result.unallowedPackages.length} unallowed dependencies!`);
if (options.verbose) {
console.log(chalk.red(result.verboseOutput));
}
}
process.exit(cli.flags.exitCode || 1);
};
module.exports = run;