codess
Version:
vscode代码片段管理器,通过 本地包(本地某个文件夹) 或官网的 远程包(代码片段集合) 生成本地项目的 vscode 代码片段配置。
146 lines (145 loc) • 5.87 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 });
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);
});