UNPKG

johnny-cli

Version:

CLI for Johnny Deps

51 lines (43 loc) 1.31 kB
// @flow import _ from 'lodash'; import API from '../API'; import Dll from '../Dll'; 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(R.isEmpty(packages)) { try { process.stdout.write('\n\x1b[1mInstalling all project\'s dependencies with npm...\x1b[0m'); await spawnNpm(['install']); process.stdout.write('\x1b[1m\x1b[32mDone\x1b[0m\n'); } catch(error) { console.log('\n\n' + error); return; } return; } if(params.saveDev) { try { process.stdout.write('\n\x1b[1mInstalling dev dependencies with npm...\x1b[0m'); await spawnNpm(['install', ...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('\n\x1b[1mInstalling packages with npm...\x1b[0m'); await spawnNpm(R.filter(Boolean, ['install', ...packages, params.save ? '--save-exact' : '--no-save'])); process.stdout.write('\x1b[1m\x1b[32mDone\x1b[0m\n\n'); } catch(error) { console.log('\n\n' + error); return; } if(!params.save) return; await rebuildAndSync({johnnyFile: JohnnyFile()}); }