xframelib
Version:
积累的前端开发基础库,来源于项目和服务于项目。
79 lines (78 loc) • 2.08 kB
TypeScript
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;
}