motion
Version:
motion - moving development forward
113 lines (81 loc) • 3.52 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.uninstall = undefined;
let uninstall = exports.uninstall = function () {
var ref = _asyncToGenerator(function* (rebundle) {
try {
if (!(0, _opts2.default)('hasRunInitialBuild')) return;
// get installed
const installed = yield (0, _installed.readInstalled)();
// get imported
const importedPaths = _cache2.default.getExternals();
const imported = (0, _normalize2.default)(importedPaths);
// difference, uniq
const toUninstall = _fns._.difference(installed, imported);
// log(LOG, 'uninstall',
// 'installed', installed,
// 'imported', imported,
// 'toUninstall', toUninstall,
// )
if (!toUninstall.length) return;
print(`\n Uninstalling...`.bold);
// do uninstalls
const attempted = yield Promise.all(toUninstall.map((() => {
var ref = _asyncToGenerator(function* (dep) {
try {
yield _npm2.default.unsave(dep, toUninstall.indexOf(dep), toUninstall.length);
print(` ✘ ${ dep }`.red);
return dep;
} catch (e) {
(0, _fns.handleError)(e);
return false;
}
}),
_this = this;
return function (_x2) {
return ref.apply(_this, arguments);
};
})()));
const uninstalled = attempted.filter(function (l) {
return !!l;
});
(0, _fns.log)('externals', 'uninstalled', uninstalled);
// if uninstalled stuff, write
if (uninstalled.length) {
const nowInstalled = _fns._.difference(imported, uninstalled);
const nowInstalledPaths = (0, _filterWithPath2.default)(importedPaths, nowInstalled);
(0, _fns.log)(LOG, 'uninstall', 'nowInstalled', nowInstalled, 'nowInstalledPaths', nowInstalledPaths);
yield (0, _installed.writeInstalled)(nowInstalledPaths);
}
// if asked to rebundle or uninstalled, rebundle
if (rebundle || uninstalled.length) {
yield (0, _externals.writeExternals)();
}
return uninstalled;
} catch (e) {
(0, _fns.handleError)(e);
}
});
return function uninstall(_x) {
return ref.apply(this, arguments);
};
}();
var _cache = require('../cache');
var _cache2 = _interopRequireDefault(_cache);
var _opts = require('../opts');
var _opts2 = _interopRequireDefault(_opts);
var _normalize = require('./lib/normalize');
var _normalize2 = _interopRequireDefault(_normalize);
var _npm = require('./lib/npm');
var _npm2 = _interopRequireDefault(_npm);
var _filterWithPath = require('./lib/filterWithPath');
var _filterWithPath2 = _interopRequireDefault(_filterWithPath);
var _installed = require('./lib/installed');
var _externals = require('./externals');
var _fns = require('../lib/fns');
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) { return step("next", value); }, function (err) { return step("throw", err); }); } } return step("next"); }); }; }
const LOG = 'externals';
//# sourceMappingURL=uninstall.js.map