yarn-check
Version:
Check for outdated, incorrect, and unused dependencies.
41 lines (32 loc) • 1.15 kB
JavaScript
;
const chalk = require('chalk');
const execa = require('execa');
const ora = require('ora');
function install(packages, currentState) {
if (!packages.length) {
return Promise.resolve(currentState);
}
const installer = currentState.get('installer');
const installGlobal = currentState.get('global') ? ['global'] : [];
const saveExact = currentState.get('saveExact') ? '--exact' : null;
const yarnArgs = installGlobal
.concat('add')
.concat(saveExact)
.concat(packages)
.filter(Boolean);
console.log('');
console.log(`$ ${chalk.green(installer)} ${chalk.green(yarnArgs.join(' '))}`);
const spinner = ora(`Installing using ${chalk.green(installer)}...`);
spinner.enabled = spinner.enabled && currentState.get('spinner');
spinner.start();
return execa(installer, yarnArgs, {cwd: currentState.get('cwd')}).then(output => {
spinner.stop();
console.log(output.stdout);
console.log(output.stderr);
return currentState;
}).catch(err => {
spinner.stop();
throw err;
});
}
module.exports = install;