electron-forge
Version:
A complete tool for building modern Electron applications
95 lines (71 loc) • 6.32 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
var _regenerator = require('babel-runtime/regenerator');
var _regenerator2 = _interopRequireDefault(_regenerator);
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 }; }
var d = (0, _debug2.default)('electron-forge:dependency-installer');
exports.default = function () {
var _ref = (0, _bluebird.coroutine)(_regenerator2.default.mark(function _callee(dir, deps) {
var areDev = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
var exact = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;
var cmd;
return _regenerator2.default.wrap(function _callee$(_context) {
while (1) {
switch (_context.prev = _context.next) {
case 0:
d('installing', (0, _stringify2.default)(deps), 'in:', dir, 'dev=' + areDev + ',exact=' + exact + ',withYarn=' + (0, _yarnOrNpm.hasYarn)());
if (!(deps.length === 0)) {
_context.next = 4;
break;
}
d('nothing to install, stopping immediately');
return _context.abrupt('return', _promise2.default.resolve());
case 4:
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);
_context.prev = 7;
_context.next = 10;
return (0, _yarnOrNpm.yarnOrNpmSpawn)(cmd, {
cwd: dir,
stdio: _config2.default.get('verbose') ? 'inherit' : 'pipe'
});
case 10:
_context.next = 15;
break;
case 12:
_context.prev = 12;
_context.t0 = _context['catch'](7);
throw new Error('Failed to install modules: ' + (0, _stringify2.default)(deps) + '\n\nWith output: ' + _context.t0.message);
case 15:
case 'end':
return _context.stop();
}
}
}, _callee, undefined, [[7, 12]]);
}));
return function (_x, _x2) {
return _ref.apply(this, arguments);
};
}();
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInV0aWwvaW5zdGFsbC1kZXBlbmRlbmNpZXMuanMiXSwibmFtZXMiOlsiZCIsImRpciIsImRlcHMiLCJhcmVEZXYiLCJleGFjdCIsImxlbmd0aCIsInJlc29sdmUiLCJjbWQiLCJjb25jYXQiLCJwdXNoIiwiY3dkIiwic3RkaW8iLCJnZXQiLCJFcnJvciIsIm1lc3NhZ2UiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7Ozs7QUFDQTs7QUFFQTs7Ozs7O0FBRUEsSUFBTUEsSUFBSSxxQkFBTSxxQ0FBTixDQUFWOzs7aUVBRWUsaUJBQU9DLEdBQVAsRUFBWUMsSUFBWjtBQUFBLFFBQWtCQyxNQUFsQix1RUFBMkIsS0FBM0I7QUFBQSxRQUFrQ0MsS0FBbEMsdUVBQTBDLEtBQTFDO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNiSixjQUFFLFlBQUYsRUFBZ0IseUJBQWVFLElBQWYsQ0FBaEIsRUFBc0MsS0FBdEMsRUFBNkNELEdBQTdDLFdBQXlERSxNQUF6RCxlQUF5RUMsS0FBekUsa0JBQTJGLHlCQUEzRjs7QUFEYSxrQkFFVEYsS0FBS0csTUFBTCxLQUFnQixDQUZQO0FBQUE7QUFBQTtBQUFBOztBQUdYTCxjQUFFLDBDQUFGO0FBSFcsNkNBSUosa0JBQVFNLE9BQVIsRUFKSTs7QUFBQTtBQU1UQyxlQU5TLEdBTUgsQ0FBQyxTQUFELEVBQVlDLE1BQVosQ0FBbUJOLElBQW5CLENBTkc7O0FBT2IsZ0JBQUkseUJBQUosRUFBZTtBQUNiSyxvQkFBTSxDQUFDLEtBQUQsRUFBUUMsTUFBUixDQUFlTixJQUFmLENBQU47QUFDQSxrQkFBSUMsTUFBSixFQUFZSSxJQUFJRSxJQUFKLENBQVMsT0FBVDtBQUNaLGtCQUFJTCxLQUFKLEVBQVdHLElBQUlFLElBQUosQ0FBUyxTQUFUO0FBQ1osYUFKRCxNQUlPO0FBQ0wsa0JBQUlMLEtBQUosRUFBV0csSUFBSUUsSUFBSixDQUFTLGNBQVQ7QUFDWCxrQkFBSU4sTUFBSixFQUFZSSxJQUFJRSxJQUFKLENBQVMsWUFBVDtBQUNaLGtCQUFJLENBQUNOLE1BQUwsRUFBYUksSUFBSUUsSUFBSixDQUFTLFFBQVQ7QUFDZDtBQUNEVCxjQUFFLFdBQUYsRUFBZSx5QkFBZU8sR0FBZixDQUFmLEVBQW9DLEtBQXBDLEVBQTJDTixHQUEzQztBQWhCYTtBQUFBO0FBQUEsbUJBa0JMLCtCQUFlTSxHQUFmLEVBQW9CO0FBQ3hCRyxtQkFBS1QsR0FEbUI7QUFFeEJVLHFCQUFPLGlCQUFPQyxHQUFQLENBQVcsU0FBWCxJQUF3QixTQUF4QixHQUFvQztBQUZuQixhQUFwQixDQWxCSzs7QUFBQTtBQUFBO0FBQUE7O0FBQUE7QUFBQTtBQUFBO0FBQUEsa0JBdUJMLElBQUlDLEtBQUosaUNBQXdDLHlCQUFlWCxJQUFmLENBQXhDLHlCQUFnRixZQUFJWSxPQUFwRixDQXZCSzs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxHIiwiZmlsZSI6InV0aWwvaW5zdGFsbC1kZXBlbmRlbmNpZXMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgZGVidWcgZnJvbSAnZGVidWcnO1xuaW1wb3J0IHsgeWFybk9yTnBtU3Bhd24sIGhhc1lhcm4gfSBmcm9tICcuL3lhcm4tb3ItbnBtJztcblxuaW1wb3J0IGNvbmZpZyBmcm9tICcuL2NvbmZpZyc7XG5cbmNvbnN0IGQgPSBkZWJ1ZygnZWxlY3Ryb24tZm9yZ2U6ZGVwZW5kZW5jeS1pbnN0YWxsZXInKTtcblxuZXhwb3J0IGRlZmF1bHQgYXN5bmMgKGRpciwgZGVwcywgYXJlRGV2ID0gZmFsc2UsIGV4YWN0ID0gZmFsc2UpID0+IHtcbiAgZCgnaW5zdGFsbGluZycsIEpTT04uc3RyaW5naWZ5KGRlcHMpLCAnaW46JywgZGlyLCBgZGV2PSR7YXJlRGV2fSxleGFjdD0ke2V4YWN0fSx3aXRoWWFybj0ke2hhc1lhcm4oKX1gKTtcbiAgaWYgKGRlcHMubGVuZ3RoID09PSAwKSB7XG4gICAgZCgnbm90aGluZyB0byBpbnN0YWxsLCBzdG9wcGluZyBpbW1lZGlhdGVseScpO1xuICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoKTtcbiAgfVxuICBsZXQgY21kID0gWydpbnN0YWxsJ10uY29uY2F0KGRlcHMpO1xuICBpZiAoaGFzWWFybigpKSB7XG4gICAgY21kID0gWydhZGQnXS5jb25jYXQoZGVwcyk7XG4gICAgaWYgKGFyZURldikgY21kLnB1c2goJy0tZGV2Jyk7XG4gICAgaWYgKGV4YWN0KSBjbWQucHVzaCgnLS1leGFjdCcpO1xuICB9IGVsc2Uge1xuICAgIGlmIChleGFjdCkgY21kLnB1c2goJy0tc2F2ZS1leGFjdCcpO1xuICAgIGlmIChhcmVEZXYpIGNtZC5wdXNoKCctLXNhdmUtZGV2Jyk7XG4gICAgaWYgKCFhcmVEZXYpIGNtZC5wdXNoKCctLXNhdmUnKTtcbiAgfVxuICBkKCdleGVjdXRpbmcnLCBKU09OLnN0cmluZ2lmeShjbWQpLCAnaW46JywgZGlyKTtcbiAgdHJ5IHtcbiAgICBhd2FpdCB5YXJuT3JOcG1TcGF3bihjbWQsIHtcbiAgICAgIGN3ZDogZGlyLFxuICAgICAgc3RkaW86IGNvbmZpZy5nZXQoJ3ZlcmJvc2UnKSA/ICdpbmhlcml0JyA6ICdwaXBlJyxcbiAgICB9KTtcbiAgfSBjYXRjaCAoZXJyKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBGYWlsZWQgdG8gaW5zdGFsbCBtb2R1bGVzOiAke0pTT04uc3RyaW5naWZ5KGRlcHMpfVxcblxcbldpdGggb3V0cHV0OiAke2Vyci5tZXNzYWdlfWApO1xuICB9XG59O1xuIl19