UNPKG

xframelib

Version:

积累的前端开发基础库,来源于项目和服务于项目。

79 lines (78 loc) 2.08 kB
import { Unzipped } from 'fflate'; export interface IZipFile { filename: string; content: Uint8Array | string | ArrayBuffer; } /** * zip压缩和解压 */ export default class ZipTool { static runningInBrowser(): boolean; /** * 解决文件名乱码问题 * @param str 乱码字符串 * @returns */ static encodeGBK(str: string): string; /** * 直接从文件列表数组,进行压缩文件 * @param zipfileName * @param files */ static saveZipFromFiles(zipfileName: string, files: Array<File>): Promise<void>; /** * 保存文件到本地 * @param zipfileName zip文件名 * @param files 压缩文件数组 */ static saveZipFile(zipfileName: string, files: Array<IZipFile>): void; /** * 同步方式压缩文件 * @param zipfileName * @param files */ static saveZipFileSync(zipfileName: string, files: Array<IZipFile>): boolean; /** * 同步解压压缩包 * @param input * @returns */ static unzipSync(input: ArrayBuffer | Uint8Array): Unzipped | undefined; /** * 直接读取压缩包文件,解压 * @param file File文件内容 * @returns */ static readZipFromFile(file: File): Promise<IZipFile[]>; /** * 读压缩包文件内容,解压 * @param zipfile * @returns */ static readZipFile(zipfile: { content: any; name: string; }): Promise<IZipFile[]>; /** * 异步解压更快 * @param buf * @param cb 回调函数 */ static unzipAsync(buf: ArrayBuffer | Uint8Array, cb: (err: any, data?: Unzipped) => {}): void; /** * 同步压缩 * @param files * @returns */ private static zipSync; /** * 异步压缩,回调返回:Uint8Array * @param files * @param cb 回调返回:Uint8Array */ private static zipAsync; private static fflateFilter; private static fflatePostprocess; private static isImportableZipPath; private static fflatePreprocess; }