UNPKG

electron-forge

Version:

A complete tool for building modern Electron applications

100 lines (80 loc) 6.47 kB
'use strict'; 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=