@emahuni/trans-peerdeps
Version:
List and install transitive peerDependencies of your direct, development, optional or peer dependencies
45 lines (44 loc) • 1.75 kB
JavaScript
;
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);
});
});
});