motion
Version:
motion - moving development forward
106 lines (75 loc) • 3.31 kB
JavaScript
exports.__esModule = true;
var uninstall = _asyncToGenerator(function* (rebundle) {
try {
var _ret = yield* (function* () {
if (!_opts2['default']('hasRunInitialBuild')) return {
v: undefined
};
// get installed
var installed = yield _libInstalled.readInstalled();
// get imported
var importedPaths = _cache2['default'].getExternals();
var imported = _libNormalize2['default'](importedPaths);
// difference, uniq
var toUninstall = _libFns._.difference(installed, imported);
// log(LOG, 'uninstall',
// 'installed', installed,
// 'imported', imported,
// 'toUninstall', toUninstall,
// )
if (!toUninstall.length) return {
v: undefined
};
print('\n Uninstalling...'.bold);
// do uninstalls
var attempted = yield Promise.all(toUninstall.map(_asyncToGenerator(function* (dep) {
try {
yield _libNpm2['default'].unsave(dep, toUninstall.indexOf(dep), toUninstall.length);
print((' ✘ ' + dep).red);
return dep;
} catch (e) {
_libFns.handleError(e);
return false;
}
})));
var uninstalled = attempted.filter(function (l) {
return !!l;
});
_libFns.log('externals', 'uninstalled', uninstalled);
// if uninstalled stuff, write
if (uninstalled.length) {
var nowInstalled = _libFns._.difference(imported, uninstalled);
var nowInstalledPaths = _libFilterWithPath2['default'](importedPaths, nowInstalled);
_libFns.log(LOG, 'uninstall', 'nowInstalled', nowInstalled, 'nowInstalledPaths', nowInstalledPaths);
yield _libInstalled.writeInstalled(nowInstalledPaths);
}
// if asked to rebundle or uninstalled, rebundle
if (rebundle || uninstalled.length) {
yield _externals.externals();
}
return {
v: uninstalled
};
})();
if (typeof _ret === 'object') return _ret.v;
} catch (e) {
_libFns.handleError(e);
}
});
exports.uninstall = uninstall;
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) { var callNext = step.bind(null, 'next'); var callThrow = step.bind(null, 'throw'); 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 { Promise.resolve(value).then(callNext, callThrow); } } callNext(); }); }; }
var _cache = require('../cache');
var _cache2 = _interopRequireDefault(_cache);
var _opts = require('../opts');
var _opts2 = _interopRequireDefault(_opts);
var _libNormalize = require('./lib/normalize');
var _libNormalize2 = _interopRequireDefault(_libNormalize);
var _libNpm = require('./lib/npm');
var _libNpm2 = _interopRequireDefault(_libNpm);
var _libFilterWithPath = require('./lib/filterWithPath');
var _libFilterWithPath2 = _interopRequireDefault(_libFilterWithPath);
var _libInstalled = require('./lib/installed');
var _externals = require('./externals');
var _libFns = require('../lib/fns');
var LOG = 'externals';