johnny-cli
Version:
CLI for Johnny Deps
36 lines (30 loc) • 947 B
JavaScript
// @flow
import _ from 'lodash';
import {logError, rebuildAndSync, spawnNpm} from 'helpers';
import JohnnyFile from '../JohnnyFile';
import R from 'ramda';
require('babel-polyfill');
export default async (packages: Array<string>, params: Object) => {
if(params.saveDev) {
try {
process.stdout.write('\x1b[1mUninstalling dev dependencies with npm...\x1b[0m\n');
await spawnNpm(['uninstall', ...packages, '--save-dev']);
process.stdout.write('\x1b[1m\x1b[32mDone\x1b[0m\n');
} catch(error) {
console.log('\n\n' + error);
return;
}
return;
}
try {
process.stdout.write('\x1b[1mUninstalling packages with npm...\x1b[0m');
await spawnNpm(R.filter(Boolean, ['uninstall', ...packages, params.save ? '' : '--no-save']));
process.stdout.write('\x1b[1m\x1b[32mDone\x1b[0m\n');
} catch(error) {
console.log('\n\n' + error);
return;
}
if(!params.save)
return;
await rebuildAndSync({johnnyFile: JohnnyFile()});
}