import JSZip from 'jszip'; import { Constructor } from '../types'; import { Binary } from '../utils'; import { JsZipHelper } from './jsZipHelper'; export class ZipObject { public get name(): string { return this.zipObject.name; } public set name(value: string) { this.zipObject.name = value; } public get isDirectory(): boolean { return this.zipObject.dir; } private readonly zipObject: JSZip.JSZipObject; private readonly binaryFormat: Constructor; constructor(zipObject: JSZip.JSZipObject, binaryFormat: Constructor) { this.zipObject = zipObject; this.binaryFormat = binaryFormat; } public getContentText(): Promise { return this.zipObject.async('text'); } public getContentBase64(): Promise { return this.zipObject.async('binarystring'); } public getContentBinary(outputType?: Constructor): Promise { const zipOutputType: JSZip.OutputType = JsZipHelper.toJsZipOutputType(outputType ?? this.binaryFormat); return this.zipObject.async(zipOutputType) as any; } }