electron-forge
Version:
A complete tool for building modern Electron applications
63 lines (48 loc) • 5.14 kB
JavaScript
Object.defineProperty(exports, "__esModule", {
value: true
});
var _promise = require('babel-runtime/core-js/promise');
var _promise2 = _interopRequireDefault(_promise);
var _stringify = require('babel-runtime/core-js/json/stringify');
var _stringify2 = _interopRequireDefault(_stringify);
var _bluebird = require('bluebird');
var _debug = require('debug');
var _debug2 = _interopRequireDefault(_debug);
var _yarnOrNpm = require('./yarn-or-npm');
var _config = require('./config');
var _config2 = _interopRequireDefault(_config);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
const d = (0, _debug2.default)('electron-forge:dependency-installer');
exports.default = (() => {
var _ref = (0, _bluebird.coroutine)(function* (dir, deps, areDev = false, exact = false) {
d('installing', (0, _stringify2.default)(deps), 'in:', dir, `dev=${areDev},exact=${exact},withYarn=${(0, _yarnOrNpm.hasYarn)()}`);
if (deps.length === 0) {
d('nothing to install, stopping immediately');
return _promise2.default.resolve();
}
let cmd = ['install'].concat(deps);
if ((0, _yarnOrNpm.hasYarn)()) {
cmd = ['add'].concat(deps);
if (areDev) cmd.push('--dev');
if (exact) cmd.push('--exact');
} else {
if (exact) cmd.push('--save-exact');
if (areDev) cmd.push('--save-dev');
if (!areDev) cmd.push('--save');
}
d('executing', (0, _stringify2.default)(cmd), 'in:', dir);
try {
yield (0, _yarnOrNpm.yarnOrNpmSpawn)(cmd, {
cwd: dir,
stdio: _config2.default.get('verbose') ? 'inherit' : 'pipe'
});
} catch (err) {
throw new Error(`Failed to install modules: ${(0, _stringify2.default)(deps)}\n\nWith output: ${err.message}`);
}
});
return function (_x, _x2) {
return _ref.apply(this, arguments);
};
})();
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInV0aWwvaW5zdGFsbC1kZXBlbmRlbmNpZXMuanMiXSwibmFtZXMiOlsiZCIsImRpciIsImRlcHMiLCJhcmVEZXYiLCJleGFjdCIsImxlbmd0aCIsInJlc29sdmUiLCJjbWQiLCJjb25jYXQiLCJwdXNoIiwiY3dkIiwic3RkaW8iLCJjb25maWciLCJnZXQiLCJlcnIiLCJFcnJvciIsIm1lc3NhZ2UiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTs7OztBQUNBOztBQUVBOzs7Ozs7QUFFQSxNQUFNQSxJQUFJLHFCQUFNLHFDQUFOLENBQVY7OztzQ0FFZSxXQUFPQyxHQUFQLEVBQVlDLElBQVosRUFBa0JDLFNBQVMsS0FBM0IsRUFBa0NDLFFBQVEsS0FBMUMsRUFBb0Q7QUFDakVKLE1BQUUsWUFBRixFQUFnQix5QkFBZUUsSUFBZixDQUFoQixFQUFzQyxLQUF0QyxFQUE2Q0QsR0FBN0MsRUFBbUQsT0FBTUUsTUFBTyxVQUFTQyxLQUFNLGFBQVkseUJBQVUsRUFBckc7QUFDQSxRQUFJRixLQUFLRyxNQUFMLEtBQWdCLENBQXBCLEVBQXVCO0FBQ3JCTCxRQUFFLDBDQUFGO0FBQ0EsYUFBTyxrQkFBUU0sT0FBUixFQUFQO0FBQ0Q7QUFDRCxRQUFJQyxNQUFNLENBQUMsU0FBRCxFQUFZQyxNQUFaLENBQW1CTixJQUFuQixDQUFWO0FBQ0EsUUFBSSx5QkFBSixFQUFlO0FBQ2JLLFlBQU0sQ0FBQyxLQUFELEVBQVFDLE1BQVIsQ0FBZU4sSUFBZixDQUFOO0FBQ0EsVUFBSUMsTUFBSixFQUFZSSxJQUFJRSxJQUFKLENBQVMsT0FBVDtBQUNaLFVBQUlMLEtBQUosRUFBV0csSUFBSUUsSUFBSixDQUFTLFNBQVQ7QUFDWixLQUpELE1BSU87QUFDTCxVQUFJTCxLQUFKLEVBQVdHLElBQUlFLElBQUosQ0FBUyxjQUFUO0FBQ1gsVUFBSU4sTUFBSixFQUFZSSxJQUFJRSxJQUFKLENBQVMsWUFBVDtBQUNaLFVBQUksQ0FBQ04sTUFBTCxFQUFhSSxJQUFJRSxJQUFKLENBQVMsUUFBVDtBQUNkO0FBQ0RULE1BQUUsV0FBRixFQUFlLHlCQUFlTyxHQUFmLENBQWYsRUFBb0MsS0FBcEMsRUFBMkNOLEdBQTNDO0FBQ0EsUUFBSTtBQUNGLFlBQU0sK0JBQWVNLEdBQWYsRUFBb0I7QUFDeEJHLGFBQUtULEdBRG1CO0FBRXhCVSxlQUFPQyxpQkFBT0MsR0FBUCxDQUFXLFNBQVgsSUFBd0IsU0FBeEIsR0FBb0M7QUFGbkIsT0FBcEIsQ0FBTjtBQUlELEtBTEQsQ0FLRSxPQUFPQyxHQUFQLEVBQVk7QUFDWixZQUFNLElBQUlDLEtBQUosQ0FBVyw4QkFBNkIseUJBQWViLElBQWYsQ0FBcUIsb0JBQW1CWSxJQUFJRSxPQUFRLEVBQTVGLENBQU47QUFDRDtBQUNGLEciLCJmaWxlIjoidXRpbC9pbnN0YWxsLWRlcGVuZGVuY2llcy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBkZWJ1ZyBmcm9tICdkZWJ1Zyc7XG5pbXBvcnQgeyB5YXJuT3JOcG1TcGF3biwgaGFzWWFybiB9IGZyb20gJy4veWFybi1vci1ucG0nO1xuXG5pbXBvcnQgY29uZmlnIGZyb20gJy4vY29uZmlnJztcblxuY29uc3QgZCA9IGRlYnVnKCdlbGVjdHJvbi1mb3JnZTpkZXBlbmRlbmN5LWluc3RhbGxlcicpO1xuXG5leHBvcnQgZGVmYXVsdCBhc3luYyAoZGlyLCBkZXBzLCBhcmVEZXYgPSBmYWxzZSwgZXhhY3QgPSBmYWxzZSkgPT4ge1xuICBkKCdpbnN0YWxsaW5nJywgSlNPTi5zdHJpbmdpZnkoZGVwcyksICdpbjonLCBkaXIsIGBkZXY9JHthcmVEZXZ9LGV4YWN0PSR7ZXhhY3R9LHdpdGhZYXJuPSR7aGFzWWFybigpfWApO1xuICBpZiAoZGVwcy5sZW5ndGggPT09IDApIHtcbiAgICBkKCdub3RoaW5nIHRvIGluc3RhbGwsIHN0b3BwaW5nIGltbWVkaWF0ZWx5Jyk7XG4gICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpO1xuICB9XG4gIGxldCBjbWQgPSBbJ2luc3RhbGwnXS5jb25jYXQoZGVwcyk7XG4gIGlmIChoYXNZYXJuKCkpIHtcbiAgICBjbWQgPSBbJ2FkZCddLmNvbmNhdChkZXBzKTtcbiAgICBpZiAoYXJlRGV2KSBjbWQucHVzaCgnLS1kZXYnKTtcbiAgICBpZiAoZXhhY3QpIGNtZC5wdXNoKCctLWV4YWN0Jyk7XG4gIH0gZWxzZSB7XG4gICAgaWYgKGV4YWN0KSBjbWQucHVzaCgnLS1zYXZlLWV4YWN0Jyk7XG4gICAgaWYgKGFyZURldikgY21kLnB1c2goJy0tc2F2ZS1kZXYnKTtcbiAgICBpZiAoIWFyZURldikgY21kLnB1c2goJy0tc2F2ZScpO1xuICB9XG4gIGQoJ2V4ZWN1dGluZycsIEpTT04uc3RyaW5naWZ5KGNtZCksICdpbjonLCBkaXIpO1xuICB0cnkge1xuICAgIGF3YWl0IHlhcm5Pck5wbVNwYXduKGNtZCwge1xuICAgICAgY3dkOiBkaXIsXG4gICAgICBzdGRpbzogY29uZmlnLmdldCgndmVyYm9zZScpID8gJ2luaGVyaXQnIDogJ3BpcGUnLFxuICAgIH0pO1xuICB9IGNhdGNoIChlcnIpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYEZhaWxlZCB0byBpbnN0YWxsIG1vZHVsZXM6ICR7SlNPTi5zdHJpbmdpZnkoZGVwcyl9XFxuXFxuV2l0aCBvdXRwdXQ6ICR7ZXJyLm1lc3NhZ2V9YCk7XG4gIH1cbn07XG4iXX0=
;