zip-a-folder
Version:
Compress a complete folder or a glob list into a zip/tgz/br/7z file
50 lines • 2 kB
text/typescript
import * as fs from "fs";
import * as zlib from "zlib";
//#region lib/core/types.d.ts
type COMPRESSION_LEVELS = 'uncompressed' | 'medium' | 'high';
type TAR_COMPRESSION_TYPE = 'none' | 'gzip' | 'brotli';
type CoreOptions = {
statConcurrency?: number;
exclude?: string[];
};
type ZipArchiveOptions = CoreOptions & {
comment?: string;
forceLocalTime?: boolean;
forceZip64?: boolean;
namePrependSlash?: boolean;
store?: boolean;
zlib?: import('zlib').ZlibOptions;
customWriteStream?: fs.WriteStream;
destPath?: string;
compression?: COMPRESSION_LEVELS;
};
type TarArchiveOptions = CoreOptions & {
gzip?: boolean;
gzipOptions?: zlib.ZlibOptions;
compressionType?: TAR_COMPRESSION_TYPE;
brotliOptions?: zlib.BrotliOptions;
customWriteStream?: fs.WriteStream;
compression?: COMPRESSION_LEVELS;
};
type SevenZipArchiveOptions = CoreOptions & {
compressionLevel?: number;
customWriteStream?: fs.WriteStream;
compression?: COMPRESSION_LEVELS;
};
//#endregion
//#region lib/ZipAFolder.d.ts
declare const COMPRESSION_LEVEL: {
readonly uncompressed: "uncompressed";
readonly medium: "medium";
readonly high: "high";
};
declare class ZipAFolder {
static zip(source: string, targetFilePath?: string, options?: ZipArchiveOptions): Promise<void>;
static tar(source: string, targetFilePath?: string, options?: TarArchiveOptions): Promise<void>;
static sevenZip(source: string, targetFilePath?: string, options?: SevenZipArchiveOptions): Promise<void>;
}
declare function zip(source: string, targetFilePath?: string, options?: ZipArchiveOptions): Promise<void>;
declare function tar(source: string, targetFilePath?: string, options?: TarArchiveOptions): Promise<void>;
declare function sevenZip(source: string, targetFilePath?: string, options?: SevenZipArchiveOptions): Promise<void>;
//#endregion
export { COMPRESSION_LEVEL, type SevenZipArchiveOptions, type TAR_COMPRESSION_TYPE, type TarArchiveOptions, ZipAFolder, type ZipArchiveOptions, sevenZip, tar, zip };