UNPKG

@emahuni/trans-peerdeps

Version:

List and install transitive peerDependencies of your direct, development, optional or peer dependencies

45 lines (44 loc) 1.75 kB
"use strict"; var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) { if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) { if (ar || !(i in from)) { if (!ar) ar = Array.prototype.slice.call(from, 0, i); ar[i] = from[i]; } } return to.concat(ar || Array.prototype.slice.call(from)); }; exports.__esModule = true; var spawn = require("cross-spawn"); var logger_1 = require("./logger"); /** * * @param pm * @param deps * @param cwd * @param args * @returns {Promise<number | undefined>} */ exports["default"] = (function (pm, deps, cwd, args) { return new Promise(function (resolve, reject) { var cmd = pm.name === 'yarn' ? 'add' : 'install'; var argsArray = Object.keys(args).map(function (argKey) { return "--".concat(argKey, "=").concat(args[argKey]); }); // console.debug(`[install.action/()]-9: pm: %o, cmd: %o, argsArray: %o`, pm.name, cmd, argsArray); var installation = spawn(pm.name, __spreadArray(__spreadArray([cmd], deps, true), argsArray, true), { cwd: cwd }); installation.stdout.on('data', function (data) { logger_1["default"].logInfo("".concat(data)); }); installation.stderr.on('data', function (data) { logger_1["default"].logErr("".concat(data)); reject("".concat(data)); }); installation.on('error', function (error) { logger_1["default"].logErr("".concat(error)); reject(error); }); installation.on('close', function (code) { logger_1["default"].logInfo("npm install exited with code ".concat(code)); resolve(code); }); }); });