( sourceDir: string, )
| 214 | * @returns ZIP file as Uint8Array |
| 215 | */ |
| 216 | export async function createZipFromDirectory( |
| 217 | sourceDir: string, |
| 218 | ): Promise<Uint8Array> { |
| 219 | const files: Record<string, ZipEntry> = {} |
| 220 | const visited = new Set<string>() |
| 221 | await collectFilesForZip(sourceDir, '', files, visited) |
| 222 | |
| 223 | const { zipSync } = await import('fflate') |
| 224 | const zipData = zipSync(files, { level: 6 }) |
| 225 | logForDebugging( |
| 226 | `Created ZIP from ${sourceDir}: ${Object.keys(files).length} files, ${zipData.length} bytes`, |
| 227 | ) |
| 228 | return zipData |
| 229 | } |
| 230 | |
| 231 | /** |
| 232 | * Recursively collect files from a directory for zipping. |
no test coverage detected