reactors-cli
Version:
Command line utility for reactors
467 lines (385 loc) • 21.5 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
var _path = require('path');
var _path2 = _interopRequireDefault(_path);
var _exec = require('../util/exec');
var _exec2 = _interopRequireDefault(_exec);
var _read = require('../util/read');
var _read2 = _interopRequireDefault(_read);
var _transform = require('../util/transform');
var _transform2 = _interopRequireDefault(_transform);
var _microRun = require('./microRun');
var _microRun2 = _interopRequireDefault(_microRun);
var _config = require('../config');
var _config2 = _interopRequireDefault(_config);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _asyncToGenerator(fn) { return function () { var gen = fn.apply(this, arguments); return new Promise(function (resolve, reject) { function step(key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { return Promise.resolve(value).then(function (value) { step("next", value); }, function (err) { step("throw", err); }); } } return step("next"); }); }; }
function getInfoFromPackage() {
var _this = this;
return new Promise(function () {
var _ref = _asyncToGenerator(regeneratorRuntime.mark(function _callee(resolve, reject) {
var parsed, _JSON$parse, appName, appVersion;
return regeneratorRuntime.wrap(function _callee$(_context) {
while (1) {
switch (_context.prev = _context.next) {
case 0:
_context.prev = 0;
_context.next = 3;
return (0, _read2.default)(_path2.default.join(process.cwd(), 'package.json'));
case 3:
parsed = _context.sent;
_JSON$parse = JSON.parse(parsed), appName = _JSON$parse.name, appVersion = _JSON$parse.version;
resolve({ appName: appName, appVersion: appVersion });
_context.next = 12;
break;
case 8:
_context.prev = 8;
_context.t0 = _context['catch'](0);
console.log(_context.t0.stack);
reject(_context.t0);
case 12:
case 'end':
return _context.stop();
}
}
}, _callee, _this, [[0, 8]]);
}));
return function (_x, _x2) {
return _ref.apply(this, arguments);
};
}());
}
var stack = function stack() {
for (var _len = arguments.length, promises = Array(_len), _key = 0; _key < _len; _key++) {
promises[_key] = arguments[_key];
}
return new Promise(function () {
var _ref2 = _asyncToGenerator(regeneratorRuntime.mark(function _callee2(resolve, reject) {
var _iteratorNormalCompletion, _didIteratorError, _iteratorError, _iterator, _step, promise;
return regeneratorRuntime.wrap(function _callee2$(_context2) {
while (1) {
switch (_context2.prev = _context2.next) {
case 0:
_context2.prev = 0;
_iteratorNormalCompletion = true;
_didIteratorError = false;
_iteratorError = undefined;
_context2.prev = 4;
_iterator = promises[Symbol.iterator]();
case 6:
if (_iteratorNormalCompletion = (_step = _iterator.next()).done) {
_context2.next = 13;
break;
}
promise = _step.value;
_context2.next = 10;
return promise();
case 10:
_iteratorNormalCompletion = true;
_context2.next = 6;
break;
case 13:
_context2.next = 19;
break;
case 15:
_context2.prev = 15;
_context2.t0 = _context2['catch'](4);
_didIteratorError = true;
_iteratorError = _context2.t0;
case 19:
_context2.prev = 19;
_context2.prev = 20;
if (!_iteratorNormalCompletion && _iterator.return) {
_iterator.return();
}
case 22:
_context2.prev = 22;
if (!_didIteratorError) {
_context2.next = 25;
break;
}
throw _iteratorError;
case 25:
return _context2.finish(22);
case 26:
return _context2.finish(19);
case 27:
_context2.next = 32;
break;
case 29:
_context2.prev = 29;
_context2.t1 = _context2['catch'](0);
reject(_context2.t1);
case 32:
case 'end':
return _context2.stop();
}
}
}, _callee2, undefined, [[0, 29], [4, 15, 19, 27], [20,, 22, 26]]);
}));
return function (_x3, _x4) {
return _ref2.apply(this, arguments);
};
}());
};
var dependencies = void 0;
var revertChangedFiles = function revertChangedFiles() {
return (0, _microRun2.default)('Reverting changed files', _asyncToGenerator(regeneratorRuntime.mark(function _callee3() {
return regeneratorRuntime.wrap(function _callee3$(_context3) {
while (1) {
switch (_context3.prev = _context3.next) {
case 0:
_context3.next = 2;
return (0, _transform2.default)(_config2.default.DESKTOP_HTML_FILE, function (source) {
return source.replace(/require\('\.\/bundles\/desktop\.min\.js'\);/, "require('./render-desktop.js');");
});
case 2:
_context3.next = 4;
return (0, _transform2.default)(_path2.default.join(process.cwd(), 'package.json'), function (source) {
var parsed = JSON.parse(source);
parsed.dependencies = dependencies;
return JSON.stringify(parsed, null, 2);
});
case 4:
case 'end':
return _context3.stop();
}
}
}, _callee3, undefined);
})));
};
var buildOSX = function buildOSX() {
return new Promise(function () {
var _ref4 = _asyncToGenerator(regeneratorRuntime.mark(function _callee14(resolve, reject) {
return regeneratorRuntime.wrap(function _callee14$(_context14) {
while (1) {
switch (_context14.prev = _context14.next) {
case 0:
_context14.prev = 0;
return _context14.delegateYield(regeneratorRuntime.mark(function _callee13() {
var _ref5, appName, appVersion;
return regeneratorRuntime.wrap(function _callee13$(_context13) {
while (1) {
switch (_context13.prev = _context13.next) {
case 0:
_context13.next = 2;
return getInfoFromPackage();
case 2:
_ref5 = _context13.sent;
appName = _ref5.appName;
appVersion = _ref5.appVersion;
_context13.next = 7;
return (0, _microRun2.default)('Building for OSX', _asyncToGenerator(regeneratorRuntime.mark(function _callee12() {
return regeneratorRuntime.wrap(function _callee12$(_context12) {
while (1) {
switch (_context12.prev = _context12.next) {
case 0:
return _context12.abrupt('return', stack(function () {
return (0, _microRun2.default)('Cleaning dist folder...', _asyncToGenerator(regeneratorRuntime.mark(function _callee4() {
return regeneratorRuntime.wrap(function _callee4$(_context4) {
while (1) {
switch (_context4.prev = _context4.next) {
case 0:
_context4.next = 2;
return (0, _exec2.default)('rm -rf desktop');
case 2:
return _context4.abrupt('return', _context4.sent);
case 3:
case 'end':
return _context4.stop();
}
}
}, _callee4, undefined);
})));
}, function () {
return (0, _microRun2.default)('Recreating dist folder...', _asyncToGenerator(regeneratorRuntime.mark(function _callee5() {
return regeneratorRuntime.wrap(function _callee5$(_context5) {
while (1) {
switch (_context5.prev = _context5.next) {
case 0:
_context5.next = 2;
return (0, _exec2.default)(_config2.default.YARN_BABEL_DESKTOP);
case 2:
return _context5.abrupt('return', _context5.sent);
case 3:
case 'end':
return _context5.stop();
}
}
}, _callee5, undefined);
})));
}, function () {
return (0, _microRun2.default)('Webpacking...', _asyncToGenerator(regeneratorRuntime.mark(function _callee6() {
return regeneratorRuntime.wrap(function _callee6$(_context6) {
while (1) {
switch (_context6.prev = _context6.next) {
case 0:
_context6.next = 2;
return (0, _exec2.default)('webpack --config webpack-desktop.config.js');
case 2:
return _context6.abrupt('return', _context6.sent);
case 3:
case 'end':
return _context6.stop();
}
}
}, _callee6, undefined);
})));
}, function () {
return (0, _microRun2.default)('Minifying...', _asyncToGenerator(regeneratorRuntime.mark(function _callee7() {
return regeneratorRuntime.wrap(function _callee7$(_context7) {
while (1) {
switch (_context7.prev = _context7.next) {
case 0:
_context7.prev = 0;
_context7.next = 3;
return (0, _exec2.default)('minify bundles/desktop.js');
case 3:
_context7.next = 9;
break;
case 5:
_context7.prev = 5;
_context7.t0 = _context7['catch'](0);
if (_context7.t0.message === 'spawn minify ENOENT') {
console.log('You don\'t have any minifier installed');
console.log('Run `npm install -g minifier` to install one');
}
throw _context7.t0;
case 9:
case 'end':
return _context7.stop();
}
}
}, _callee7, undefined, [[0, 5]]);
})));
}, function () {
return (0, _microRun2.default)('Changing desktop index to now import minified file...', _asyncToGenerator(regeneratorRuntime.mark(function _callee8() {
return regeneratorRuntime.wrap(function _callee8$(_context8) {
while (1) {
switch (_context8.prev = _context8.next) {
case 0:
_context8.next = 2;
return (0, _transform2.default)(_path2.default.join(process.cwd(), _config2.default.DESKTOP_HTML_FILE), function (source) {
return source.replace(/require\('\.\/render-desktop\.js'\);/, "require('./bundles/desktop.min.js');");
});
case 2:
return _context8.abrupt('return', _context8.sent);
case 3:
case 'end':
return _context8.stop();
}
}
}, _callee8, undefined);
})));
}, function () {
return (0, _microRun2.default)('Removing npm dependencies...', _asyncToGenerator(regeneratorRuntime.mark(function _callee9() {
var json;
return regeneratorRuntime.wrap(function _callee9$(_context9) {
while (1) {
switch (_context9.prev = _context9.next) {
case 0:
_context9.t0 = JSON;
_context9.next = 3;
return (0, _read2.default)(_path2.default.join(process.cwd(), 'package.json'));
case 3:
_context9.t1 = _context9.sent;
json = _context9.t0.parse.call(_context9.t0, _context9.t1);
dependencies = json.dependencies;
_context9.next = 8;
return (0, _transform2.default)(_path2.default.join(process.cwd(), 'package.json'), function (source) {
var parsed = JSON.parse(source);
parsed.dependencies = {};
return JSON.stringify(parsed, null, 2);
});
case 8:
case 'end':
return _context9.stop();
}
}
}, _callee9, undefined);
})));
}, function () {
return (0, _microRun2.default)('Running electron packager...', _asyncToGenerator(regeneratorRuntime.mark(function _callee10() {
return regeneratorRuntime.wrap(function _callee10$(_context10) {
while (1) {
switch (_context10.prev = _context10.next) {
case 0:
_context10.prev = 0;
_context10.next = 3;
return (0, _exec2.default)(['electron-packager . ' + appName, '--electron-version=' + _config2.default.ELECTRON_VERSION, '--platform=darwin', '--version=' + _config2.default.ELECTRON_VERSION, '--icon=' + _path2.default.join(process.cwd(), 'assets/icons/icon'), '--out=' + _config2.default.OSX_DIST.replace(/\{VERSION\}/g, appVersion)].join(' '), { env: _extends({}, process.env, { NODE_ENV: 'production' }) });
case 3:
_context10.next = 11;
break;
case 5:
_context10.prev = 5;
_context10.t0 = _context10['catch'](0);
if (_context10.t0.message === 'spawn electron-packager ENOENT') {
console.log('You don\'t have electron-packager installed');
console.log('Run `npm install -g electron-packager` to install');
}
_context10.next = 10;
return revertChangedFiles();
case 10:
throw _context10.t0;
case 11:
case 'end':
return _context10.stop();
}
}
}, _callee10, undefined, [[0, 5]]);
})));
}, function () {
return (0, _microRun2.default)('Reverting changed files...', _asyncToGenerator(regeneratorRuntime.mark(function _callee11() {
return regeneratorRuntime.wrap(function _callee11$(_context11) {
while (1) {
switch (_context11.prev = _context11.next) {
case 0:
_context11.next = 2;
return revertChangedFiles();
case 2:
return _context11.abrupt('return', _context11.sent);
case 3:
case 'end':
return _context11.stop();
}
}
}, _callee11, undefined);
})));
}));
case 1:
case 'end':
return _context12.stop();
}
}
}, _callee12, undefined);
})));
case 7:
case 'end':
return _context13.stop();
}
}
}, _callee13, undefined);
})(), 't0', 2);
case 2:
_context14.next = 7;
break;
case 4:
_context14.prev = 4;
_context14.t1 = _context14['catch'](0);
reject(_context14.t1);
case 7:
case 'end':
return _context14.stop();
}
}
}, _callee14, undefined, [[0, 4]]);
}));
return function (_x5, _x6) {
return _ref4.apply(this, arguments);
};
}());
};
exports.default = buildOSX;