codess
Version:
vscode代码片段管理器,通过 本地包(本地某个文件夹) 或官网的 远程包(代码片段集合) 生成本地项目的 vscode 代码片段配置。
72 lines (71 loc) • 3.4 kB
JavaScript
;
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.uninstall = uninstall;
const chalk_1 = __importDefault(require("chalk"));
const inquirer_1 = __importDefault(require("inquirer"));
const config_1 = require("../config/config");
const package_1 = require("../package");
const saveSnippetsConfig_1 = require("../saveSnippetsConfig");
const ArrayUtils_1 = require("../yayaluoya-tool/ArrayUtils");
function uninstall(list) {
return __awaiter(this, void 0, void 0, function* () {
(0, saveSnippetsConfig_1.saveDefSnippets)();
let config = (0, config_1.getConfig)();
config.dependent = config.dependent || [];
config.installRecord = config.installRecord || {};
if (config.dependent.length > 0) {
let lists = list.length > 0
? config.dependent
.filter((_) => list.findIndex((__) => (0, package_1.comparePackageStr)(_.package, __)) != -1)
.map((_) => _.package)
: ArrayUtils_1.ArrayUtils.arraify(yield inquirer_1.default
.prompt({
type: 'checkbox',
name: 'checkbox',
message: 'Select the package to uninstall',
choices: config.dependent.map((_) => {
return {
name: _.package,
value: _.package,
};
}),
pageSize: config.dependent.length,
loop: true,
})
.then(({ checkbox }) => checkbox)
.catch(() => {
return [];
}));
if (lists.length <= 0) {
}
else {
lists.forEach((_) => {
let c = (0, package_1.parsePackageNameStr)(_);
c && (0, saveSnippetsConfig_1.saveSnippetsConfig)('', _, c.type);
c.type == 'web' && (config.installRecord[c.op.web.name] = undefined);
});
ArrayUtils_1.ArrayUtils.eliminate(config.dependent, (_) => lists.includes(_.package));
console.log(lists.join(','), chalk_1.default.red('Uninstalled'));
}
}
else {
console.log(chalk_1.default.yellow('There are no packages to uninstall'));
}
if (!config.dependent || config.dependent.length <= 0) {
config.installRecord = {};
}
(0, config_1.setConfig)(config);
});
}