UNPKG

he-cli-fe

Version:

frontend cli tool for development

43 lines (42 loc) 1.87 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.toolCommand = void 0; const fs_1 = __importDefault(require("fs")); const ora_1 = __importDefault(require("ora")); const global_1 = require("config/global"); const useEjs_1 = require("utils/useEjs"); const useCmd_1 = require("utils/useCmd"); const tool_1 = require("utils/tool"); //读取所有工具模板文件名(去掉后缀) const tmpDir = fs_1.default.readdirSync(tool_1.resolve(global_1.resolveTmp, 'js')); const tools = tmpDir.map((file) => file.split('.')[0]); function toolCommand(program) { program .command('tool') .description('创建js工具, tool [-d toolPath]') .action(async () => { const toolName = await useCmd_1.select(tools, '请选择要添加的js工具:'); const spinner = ora_1.default(`创建${toolName}.js...`); try { spinner.start(); const dest = program.opts().dest; const targetDir = dest ? `utils/${dest}` : 'utils/tools'; const targetPath = tool_1.resolve(global_1.targetRoot, targetDir); tool_1.compilePath(targetPath); const filePath = tool_1.resolve(targetPath, `${toolName}.js`); const proceed = await tool_1.existsFileCover(filePath, spinner); if (proceed) { await useEjs_1.writeFileEjs(tool_1.resolve(global_1.resolveTmp, `js/${toolName}.ejs`), filePath); spinner.succeed(`创建成功: ${filePath}`); } } catch (err) { spinner.fail('创建失败'); err && tool_1.errLog(err); } }); } exports.toolCommand = toolCommand;