| 123 | generateAsync(options: JSZipGenerateOptions & { type: "arraybuffer" }): Promise<ArrayBuffer>; |
| 124 | |
| 125 | async generateAsync(options: JSZipGenerateOptions): Promise<Blob | Uint8Array<ArrayBuffer> | ArrayBuffer> { |
| 126 | const method = getCompressionMethod(options); |
| 127 | const writer = new ZipWriter({ |
| 128 | outputAs: options.type as ZipWriterOutput, |
| 129 | level: getLevel(options), |
| 130 | comment: options.comment || undefined, |
| 131 | }); |
| 132 | |
| 133 | for (const [path, file] of Object.entries(this.files)) { |
| 134 | await writer.add({ |
| 135 | path, |
| 136 | data: file.getContent(), |
| 137 | method, |
| 138 | meta: { modifiedAt: file.date }, |
| 139 | }); |
| 140 | } |
| 141 | |
| 142 | return writer.close() as Promise<Blob | Uint8Array<ArrayBuffer> | ArrayBuffer>; |
| 143 | } |
| 144 | } |
| 145 | |
| 146 | export const createJSZip = () => { |