reactors-cli
Version:
Command line utility for reactors
249 lines (175 loc) • 8.42 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
var _path = require('path');
var _path2 = _interopRequireDefault(_path);
var _semver = require('semver');
var _semver2 = _interopRequireDefault(_semver);
var _changeJSON = require('../util/changeJSON');
var _changeJSON2 = _interopRequireDefault(_changeJSON);
var _exec = require('../util/exec');
var _exec2 = _interopRequireDefault(_exec);
var _read = require('../util/read');
var _read2 = _interopRequireDefault(_read);
var _write = require('../util/write');
var _write2 = _interopRequireDefault(_write);
var _getAppFile = require('./getAppFile');
var _getAppFile2 = _interopRequireDefault(_getAppFile);
var _v = require('../migrations/v0.1.4');
var _v2 = _interopRequireDefault(_v);
var _v3 = require('../migrations/v0.1.9');
var _v4 = _interopRequireDefault(_v3);
var _v5 = require('../migrations/v0.1.11');
var _v6 = _interopRequireDefault(_v5);
var _v7 = require('../migrations/v0.1.15');
var _v8 = _interopRequireDefault(_v7);
var _v9 = require('../migrations/v0.1.16');
var _v10 = _interopRequireDefault(_v9);
var _v11 = require('../migrations/v0.1.18');
var _v12 = _interopRequireDefault(_v11);
var _v13 = require('../migrations/v0.1.20');
var _v14 = _interopRequireDefault(_v13);
var _package = require('../../package.json');
var _package2 = _interopRequireDefault(_package);
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"); }); }; }
var migrations = [{ version: '0.1.4', migrate: _v2.default }, { version: '0.1.9', migrate: _v4.default }, { version: '0.1.11', migrate: _v6.default }, { version: '0.1.15', migrate: _v8.default }, { version: '0.1.16', migrate: _v10.default }, { version: '0.1.18', migrate: _v12.default }, { version: '0.1.20', migrate: _v14.default }];
var base = (0, _getAppFile2.default)('');
if (/\/node_modules\/reactors$/.test(base)) {
base = base.replace(/\/node_modules\/reactors$/, '');
}
function getFile(file) {
return _path2.default.join(base, file);
}
exports.default = function () {
return new Promise(function () {
var _ref = _asyncToGenerator(regeneratorRuntime.mark(function _callee2(resolve, reject) {
return regeneratorRuntime.wrap(function _callee2$(_context2) {
while (1) {
switch (_context2.prev = _context2.next) {
case 0:
_context2.prev = 0;
return _context2.delegateYield(regeneratorRuntime.mark(function _callee() {
var reactors, first_time, versions, _iteratorNormalCompletion, _didIteratorError, _iteratorError, _iterator, _step, version;
return regeneratorRuntime.wrap(function _callee$(_context) {
while (1) {
switch (_context.prev = _context.next) {
case 0:
console.log('Updating npm dependencies');
_context.next = 3;
return (0, _exec2.default)('npm install');
case 3:
console.log('Upgrading react-native');
_context.next = 6;
return (0, _exec2.default)('react-native upgrade');
case 6:
console.log('Upgrading reactors');
reactors = void 0;
first_time = false;
_context.prev = 9;
_context.next = 12;
return (0, _read2.default)(getFile('reactors.json'));
case 12:
reactors = _context.sent;
reactors = JSON.parse(reactors);
_context.next = 20;
break;
case 16:
_context.prev = 16;
_context.t0 = _context['catch'](9);
first_time = true;
reactors = {
version: _package2.default.version
};
case 20:
console.log('upgrading from ' + reactors.version + ' to ' + _package2.default.version);
versions = migrations.filter(function (migration) {
return _semver2.default.gt(migration.version, reactors.version) && _semver2.default.lte(migration.version, _package2.default.version);
});
_iteratorNormalCompletion = true;
_didIteratorError = false;
_iteratorError = undefined;
_context.prev = 25;
_iterator = versions[Symbol.iterator]();
case 27:
if (_iteratorNormalCompletion = (_step = _iterator.next()).done) {
_context.next = 35;
break;
}
version = _step.value;
console.log('migrating to version', version);
_context.next = 32;
return version.migrate();
case 32:
_iteratorNormalCompletion = true;
_context.next = 27;
break;
case 35:
_context.next = 41;
break;
case 37:
_context.prev = 37;
_context.t1 = _context['catch'](25);
_didIteratorError = true;
_iteratorError = _context.t1;
case 41:
_context.prev = 41;
_context.prev = 42;
if (!_iteratorNormalCompletion && _iterator.return) {
_iterator.return();
}
case 44:
_context.prev = 44;
if (!_didIteratorError) {
_context.next = 47;
break;
}
throw _iteratorError;
case 47:
return _context.finish(44);
case 48:
return _context.finish(41);
case 49:
if (!first_time) {
_context.next = 54;
break;
}
_context.next = 52;
return (0, _write2.default)(getFile('reactors.json'), JSON.stringify(reactors, null, 2));
case 52:
_context.next = 56;
break;
case 54:
_context.next = 56;
return (0, _changeJSON2.default)(getFile('reactors.json'), function (json) {
json.version = _package2.default.version;
});
case 56:
resolve();
case 57:
case 'end':
return _context.stop();
}
}
}, _callee, undefined, [[9, 16], [25, 37, 41, 49], [42,, 44, 48]]);
})(), 't0', 2);
case 2:
_context2.next = 7;
break;
case 4:
_context2.prev = 4;
_context2.t1 = _context2['catch'](0);
reject(_context2.t1);
case 7:
case 'end':
return _context2.stop();
}
}
}, _callee2, undefined, [[0, 4]]);
}));
return function (_x, _x2) {
return _ref.apply(this, arguments);
};
}());
};