// /** // * 压缩解压缩目录 // */ // import * as archiver from "archiver"; // import * as fs from "fs"; // import * as path from "path"; // import * as _unzip from "unzip"; // import { getLogger } from "./logger"; // import { listFiles } from "./file"; // import { readableByte } from "./unit"; // const logger = getLogger("zip"); // /** // * 把指定目录压缩成指定zip文件 // * @param folder // * @param zipFile // */ // export async function zipFolder(folder:string,zipFile:string){ // return new Promise((resolve,reject)=>{ // logger.trace(`start zipFolder ${folder} to ${zipFile}`); // let out = fs.createWriteStream(zipFile); // let arc = archiver.default("zip",{ // zlib:{level:9} // }); // out.on("close",()=>{ // }); // arc.on("warning",(e)=>{ // if(e.code === "ENOENT"){ // logger.warn(e.message); // } // else{ // reject(e); // } // }); // arc.on("error",(e)=>{ // reject(e); // }); // arc.on("finish",()=>{ // logger.info(`${zipFile} ${readableByte(arc.pointer())}`); // resolve(); // }); // arc.pipe(out); // listFiles(folder).forEach(file=>{ // logger.trace(`zip file ${file}`); // arc.file(file,{name:file.replace(folder,"")}); // }); // arc.finalize(); // }); // } // /** // * 解压缩到指定目录 // * @param zipFile // * @param dstFolder // */ // export async function unzip(zipFile:string,dstFolder:string){ // return new Promise((resolve,reject)=>{ // logger.trace(`start unzip ${zipFile} to ${dstFolder}`); // fs.createReadStream(zipFile).pipe(_unzip.Extract({path:dstFolder})).on("close",resolve).on("error",reject); // }); // }