UNPKG

@lark-project/cli

Version:

飞书项目插件开发工具

42 lines (41 loc) 1.65 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const path_1 = __importDefault(require("path")); const fs_extra_1 = __importDefault(require("fs-extra")); const __1 = require(".."); const Compressor_1 = __importDefault(require("../Compressor")); const logger_1 = require("../../../utils/logger"); class Generator { constructor({ options, targetDir }) { this.options = options; this.targetDir = targetDir; } async downloadAndUnzip() { const zipFilePath = path_1.default.resolve(__dirname, '../../../template/v1.zip'); // 创建位置 // 模板下载完成,zip 文件临时存储本地磁盘 try { const targetDir = path_1.default.resolve(process.cwd(), this.targetDir); if (!fs_extra_1.default.existsSync(zipFilePath)) { const packageJson = require('../../../../package.json'); const { name } = packageJson; logger_1.logger.error(`There is a problem with ${name}. Please execute 'npm install --global ${name}'`); process.exit(1); } await Compressor_1.default.unzip(zipFilePath, targetDir); } catch (err) { (0, __1.error)(`Template unzip failed: ${err.message}`); } finally { // 清理 zip 文件 // await fs.unlink(zipFilePath); } } async initProject() { await this.downloadAndUnzip(); } } exports.default = Generator;