All files index.js

100% Statements 40/40
100% Branches 12/12
100% Functions 4/4
100% Lines 39/39
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 651x 1x 1x 1x   1x 4x 1x 1x     3x 1x 1x     2x     2x     2x 2x   2x 2x   2x 1x 1x     1x 2x   6x 1x 1x 1x     2x 2x     2x 1x 1x   1x   2x 2x         1x 1x 1x 1x 1x    
require('colors');
var fs = require('fs');
var path = require('path');
var runCommand = require('./runCommand');
 
module.exports = function (script, group) {
  if (script !== 'install') {
    console.log("There's only one command: `deps install [GROUP_NAME]`");
    return 1;
  }
 
  if (!group || !group.length) {
    console.log("Please specify a group: `deps install [GROUP_NAME]`");
    return 1;
  }
 
  const APP_ROOT = fs.realpathSync(process.cwd());
 
  function resolveApp (relativePath) {
    return path.resolve(APP_ROOT, relativePath);
  }
 
  const appPkgPath = resolveApp('package.json');
  var pkgJson = require(appPkgPath);
 
  const groupDependencies = pkgJson[group + 'Dependencies'];
  const devDependencies = pkgJson.devDependencies;
 
  if (!groupDependencies) {
    console.log(`No ${group}Dependencies found.`);
    return 0;
  }
 
  const toInstall = groupDependencies.map(function (gDep) {
    let pkgString = Object.keys(devDependencies)
    .reduce(function (result, name) {
      if (name !== gDep) return result;
      const version = devDependencies[name];
      result.push(`${name}@"${version}"`);
      return result;
    }, []).join(' ');
 
    const warn = ['warn'.yellow, 'resolve'.magenta].join(' ');
    const info = ['info'.green, 'resolve'.magenta].join(' ');
 
    let msg;
    if (!pkgString) {
      msg = `${warn} ${gDep} not found: installing latest`;
      pkgString = gDep;
    } else {
      msg = `${info} ${pkgString}`;
    }
    console.log(`deps ${msg}`);
    return pkgString;
 
  });
 
 
  const packagesString = toInstall.join(' ');
  const command = `npm install ${packagesString}`;
  console.log(`deps ${'cmd'.green} npm install ${packagesString}`);
  runCommand(command);
  return 0;
};