@lark-project/cli
Version:
飞书项目插件开发工具
42 lines (41 loc) • 1.65 kB
JavaScript
;
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;