UNPKG

codess

Version:

vscode代码片段管理器,通过 本地包(本地某个文件夹) 或官网的 远程包(代码片段集合) 生成本地项目的 vscode 代码片段配置。

146 lines (145 loc) 5.87 kB
#!/usr/bin/env node "use strict"; 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 }); const chalk_1 = __importDefault(require("chalk")); const ArrayUtils_1 = require("../yayaluoya-tool/ArrayUtils"); const packageJSON_1 = require("../config/packageJSON"); const config_1 = require("../config/config"); const seting_1 = require("../seting"); const commander_1 = __importDefault(require("commander")); const child_process_1 = __importDefault(require("child_process")); const env_1 = require("../env"); const saveSnippetsConfig_1 = require("../saveSnippetsConfig"); const init_1 = require("./init"); const install_1 = require("./install"); const uninstall_1 = require("./uninstall"); const search_1 = require("./search"); const toLocal_1 = require("./toLocal"); const build_1 = require("./build"); (() => __awaiter(void 0, void 0, void 0, function* () { let actionFT = []; let getActionF = (f) => { return (...arg) => { actionFT.push(setTimeout(() => { if (!env_1.ENV.production) { console.log(chalk_1.default.yellow(`Note:The current running environment is ${env_1.ENV.env}`)); console.log(''); } f(...arg); }, 0)); }; }; let endActionF = () => { actionFT.forEach((_) => { clearTimeout(_); }); }; let program = new commander_1.default.Command(); program.addOption(new commander_1.default.Option('--env <env>').default('production').hideHelp()); program.name(packageJSON_1.packageJSON.name).version(packageJSON_1.packageJSON.version); program .command('init') .description(`create project package management profile ${config_1.configName}`) .action(getActionF(() => { (0, init_1.init)(); })); program .command('install') .alias('i') .description('install one or more packages') .argument('[lists...]', 'Packet list, If empty, Reinstall the installed packages') .action(getActionF((res) => { (0, install_1.install)(ArrayUtils_1.ArrayUtils.arraify(res || [])).catch((e) => { console.log(chalk_1.default.red('Install error:\n')); console.log(e); }); })); program .command('build') .alias('b') .description('building vscode config through packages') .argument('[lists...]', 'Packet list, If empty, Build the installed packages') .option('-f, --fouce', 'fouce build') .action(getActionF((res, { fouce }) => { (0, build_1.build)(ArrayUtils_1.ArrayUtils.arraify(res || []), Boolean(fouce)).catch((e) => { console.log(chalk_1.default.red('Build error:\n')); console.log(e); }); })); program .command('uninstall') .alias('uni') .description('uninstall package') .argument('[lists...]', 'Packet list, If empty, Build the installed packages') .action(getActionF((res) => { (0, uninstall_1.uninstall)(ArrayUtils_1.ArrayUtils.arraify(res || [])).catch((e) => { console.log(chalk_1.default.red('Ininstall error:\n')); console.log(e); }); })); program .command('search') .alias('s') .description('search a package') .argument('<name>', 'Package name') .argument('[prefix]', 'prefix') .argument('[languages]', 'languages') .action(getActionF((name, prefix, languages) => { (0, search_1.search)(name, prefix, languages); })); program .command('remote-to-local') .alias('rtl') .description('download a remote package to use locally as a local package') .argument('<name>', 'Package name') .argument('[path]', 'Local directory path') .action(getActionF((name, path_) => { (0, toLocal_1.toLocal)(name, path_).catch((e) => { console.log(chalk_1.default.red('Remote to local error:\n')); console.log(e); }); })); program .command('clear-snippets') .alias('cs') .description('clear the generated vscode snippet configuration under the current project') .action(getActionF(() => { (0, saveSnippetsConfig_1.clearSnippets)(); (0, saveSnippetsConfig_1.saveDefSnippets)(); let config = (0, config_1.getConfig)(); config.installRecord = {}; (0, config_1.setConfig)(config); console.log('Cleared'); })); program .command('doc') .alias('d') .description('open official document') .action(getActionF(() => { child_process_1.default.exec(`start ${seting_1.seting.officialDoc}`); })); program.parse(process.argv); let opts = program.opts(); try { opts.env && env_1.ENV.setEnv(opts.env); } catch (e) { endActionF(); throw e; } }))().catch((e) => { console.log(chalk_1.default.red('Error:')); console.log(e); });