electron-forge
Version:
A complete tool for building modern Electron applications
100 lines (80 loc) • 6.47 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
var _stringify = require('babel-runtime/core-js/json/stringify');
var _stringify2 = _interopRequireDefault(_stringify);
var _promise = require('babel-runtime/core-js/promise');
var _promise2 = _interopRequireDefault(_promise);
var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');
var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
var _createClass2 = require('babel-runtime/helpers/createClass');
var _createClass3 = _interopRequireDefault(_createClass2);
var _colors = require('colors');
var _colors2 = _interopRequireDefault(_colors);
var _ora = require('./ora');
var _ora2 = _interopRequireDefault(_ora);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var MockOra = function () {
function MockOra() {
(0, _classCallCheck3.default)(this, MockOra);
}
(0, _createClass3.default)(MockOra, [{
key: 'succeed',
value: function succeed() {
return this;
}
}, {
key: 'fail',
value: function fail() {
return this;
}
}, {
key: 'start',
value: function start() {
return this;
}
}, {
key: 'stop',
value: function stop() {
return this;
}
}]);
return MockOra;
}();
var asyncOra = function asyncOra(initialOraValue, asyncFn) {
var processExitFn = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : process.exit;
var fnOra = new MockOra();
if (asyncOra.interactive) {
fnOra = (0, _ora2.default)(initialOraValue).start();
}
return new _promise2.default(function (resolve, reject) {
asyncFn(fnOra).then(function () {
fnOra.succeed();
resolve();
}).catch(function (err) {
fnOra.fail();
if (asyncOra.interactive) {
if (err && err.message && err.stack) {
console.error('\nAn unhandled error has occurred inside Forge:'.red);
console.error(_colors2.default.red(err.message));
console.error(_colors2.default.red(err.stack));
} else {
console.error('\nElectron forge was terminated:'.red);
console.error(_colors2.default.red(typeof err === 'string' ? err : (0, _stringify2.default)(err)));
}
processExitFn(1);
// If the process is still alive we should continue because either something went really wrong
// or we are testing this function
setTimeout(function () {
return resolve();
}, 500);
} else {
reject(err);
}
});
});
};
asyncOra.interactive = true;
exports.default = asyncOra;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInV0aWwvb3JhLWhhbmRsZXIuanMiXSwibmFtZXMiOlsiTW9ja09yYSIsImFzeW5jT3JhIiwiaW5pdGlhbE9yYVZhbHVlIiwiYXN5bmNGbiIsInByb2Nlc3NFeGl0Rm4iLCJwcm9jZXNzIiwiZXhpdCIsImZuT3JhIiwiaW50ZXJhY3RpdmUiLCJzdGFydCIsInJlc29sdmUiLCJyZWplY3QiLCJ0aGVuIiwic3VjY2VlZCIsImNhdGNoIiwiZXJyIiwiZmFpbCIsIm1lc3NhZ2UiLCJzdGFjayIsImNvbnNvbGUiLCJlcnJvciIsInJlZCIsInNldFRpbWVvdXQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTs7OztBQUNBOzs7Ozs7SUFFTUEsTzs7Ozs7Ozs4QkFDTTtBQUFFLGFBQU8sSUFBUDtBQUFjOzs7MkJBQ25CO0FBQUUsYUFBTyxJQUFQO0FBQWM7Ozs0QkFDZjtBQUFFLGFBQU8sSUFBUDtBQUFjOzs7MkJBQ2pCO0FBQUUsYUFBTyxJQUFQO0FBQWM7Ozs7O0FBR3pCLElBQU1DLFdBQVcsU0FBWEEsUUFBVyxDQUFDQyxlQUFELEVBQWtCQyxPQUFsQixFQUE0RDtBQUFBLE1BQWpDQyxhQUFpQyx1RUFBakJDLFFBQVFDLElBQVM7O0FBQzNFLE1BQUlDLFFBQVEsSUFBSVAsT0FBSixFQUFaO0FBQ0EsTUFBSUMsU0FBU08sV0FBYixFQUEwQjtBQUN4QkQsWUFBUSxtQkFBSUwsZUFBSixFQUFxQk8sS0FBckIsRUFBUjtBQUNEO0FBQ0QsU0FBTyxzQkFBWSxVQUFDQyxPQUFELEVBQVVDLE1BQVYsRUFBcUI7QUFDdENSLFlBQVFJLEtBQVIsRUFBZUssSUFBZixDQUFvQixZQUFNO0FBQ3hCTCxZQUFNTSxPQUFOO0FBQ0FIO0FBQ0QsS0FIRCxFQUdHSSxLQUhILENBR1MsVUFBQ0MsR0FBRCxFQUFTO0FBQ2hCUixZQUFNUyxJQUFOO0FBQ0EsVUFBSWYsU0FBU08sV0FBYixFQUEwQjtBQUN4QixZQUFJTyxPQUFPQSxJQUFJRSxPQUFYLElBQXNCRixJQUFJRyxLQUE5QixFQUFxQztBQUNuQ0Msa0JBQVFDLEtBQVIsQ0FBYyxrREFBa0RDLEdBQWhFO0FBQ0FGLGtCQUFRQyxLQUFSLENBQWMsaUJBQU9DLEdBQVAsQ0FBV04sSUFBSUUsT0FBZixDQUFkO0FBQ0FFLGtCQUFRQyxLQUFSLENBQWMsaUJBQU9DLEdBQVAsQ0FBV04sSUFBSUcsS0FBZixDQUFkO0FBQ0QsU0FKRCxNQUlPO0FBQ0xDLGtCQUFRQyxLQUFSLENBQWMsbUNBQW1DQyxHQUFqRDtBQUNBRixrQkFBUUMsS0FBUixDQUFjLGlCQUFPQyxHQUFQLENBQVcsT0FBT04sR0FBUCxLQUFlLFFBQWYsR0FBMEJBLEdBQTFCLEdBQWdDLHlCQUFlQSxHQUFmLENBQTNDLENBQWQ7QUFDRDtBQUNEWCxzQkFBYyxDQUFkO0FBQ0E7QUFDQTtBQUNBa0IsbUJBQVc7QUFBQSxpQkFBTVosU0FBTjtBQUFBLFNBQVgsRUFBNEIsR0FBNUI7QUFDRCxPQWJELE1BYU87QUFDTEMsZUFBT0ksR0FBUDtBQUNEO0FBQ0YsS0FyQkQ7QUFzQkQsR0F2Qk0sQ0FBUDtBQXdCRCxDQTdCRDs7QUErQkFkLFNBQVNPLFdBQVQsR0FBdUIsSUFBdkI7O2tCQUVlUCxRIiwiZmlsZSI6InV0aWwvb3JhLWhhbmRsZXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgY29sb3JzIGZyb20gJ2NvbG9ycyc7XG5pbXBvcnQgb3JhIGZyb20gJy4vb3JhJztcblxuY2xhc3MgTW9ja09yYSB7XG4gIHN1Y2NlZWQoKSB7IHJldHVybiB0aGlzOyB9XG4gIGZhaWwoKSB7IHJldHVybiB0aGlzOyB9XG4gIHN0YXJ0KCkgeyByZXR1cm4gdGhpczsgfVxuICBzdG9wKCkgeyByZXR1cm4gdGhpczsgfVxufVxuXG5jb25zdCBhc3luY09yYSA9IChpbml0aWFsT3JhVmFsdWUsIGFzeW5jRm4sIHByb2Nlc3NFeGl0Rm4gPSBwcm9jZXNzLmV4aXQpID0+IHtcbiAgbGV0IGZuT3JhID0gbmV3IE1vY2tPcmEoKTtcbiAgaWYgKGFzeW5jT3JhLmludGVyYWN0aXZlKSB7XG4gICAgZm5PcmEgPSBvcmEoaW5pdGlhbE9yYVZhbHVlKS5zdGFydCgpO1xuICB9XG4gIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgYXN5bmNGbihmbk9yYSkudGhlbigoKSA9PiB7XG4gICAgICBmbk9yYS5zdWNjZWVkKCk7XG4gICAgICByZXNvbHZlKCk7XG4gICAgfSkuY2F0Y2goKGVycikgPT4ge1xuICAgICAgZm5PcmEuZmFpbCgpO1xuICAgICAgaWYgKGFzeW5jT3JhLmludGVyYWN0aXZlKSB7XG4gICAgICAgIGlmIChlcnIgJiYgZXJyLm1lc3NhZ2UgJiYgZXJyLnN0YWNrKSB7XG4gICAgICAgICAgY29uc29sZS5lcnJvcignXFxuQW4gdW5oYW5kbGVkIGVycm9yIGhhcyBvY2N1cnJlZCBpbnNpZGUgRm9yZ2U6Jy5yZWQpO1xuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoY29sb3JzLnJlZChlcnIubWVzc2FnZSkpO1xuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoY29sb3JzLnJlZChlcnIuc3RhY2spKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjb25zb2xlLmVycm9yKCdcXG5FbGVjdHJvbiBmb3JnZSB3YXMgdGVybWluYXRlZDonLnJlZCk7XG4gICAgICAgICAgY29uc29sZS5lcnJvcihjb2xvcnMucmVkKHR5cGVvZiBlcnIgPT09ICdzdHJpbmcnID8gZXJyIDogSlNPTi5zdHJpbmdpZnkoZXJyKSkpO1xuICAgICAgICB9XG4gICAgICAgIHByb2Nlc3NFeGl0Rm4oMSk7XG4gICAgICAgIC8vIElmIHRoZSBwcm9jZXNzIGlzIHN0aWxsIGFsaXZlIHdlIHNob3VsZCBjb250aW51ZSBiZWNhdXNlIGVpdGhlciBzb21ldGhpbmcgd2VudCByZWFsbHkgd3JvbmdcbiAgICAgICAgLy8gb3Igd2UgYXJlIHRlc3RpbmcgdGhpcyBmdW5jdGlvblxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHJlc29sdmUoKSwgNTAwKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJlamVjdChlcnIpO1xuICAgICAgfVxuICAgIH0pO1xuICB9KTtcbn07XG5cbmFzeW5jT3JhLmludGVyYWN0aXZlID0gdHJ1ZTtcblxuZXhwb3J0IGRlZmF1bHQgYXN5bmNPcmE7XG4iXX0=