UNPKG

electron-forge

Version:

A complete tool for building modern Electron applications

95 lines (71 loc) 6.32 kB
'use strict'; 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