From b66e6751d41c36d5be0686a8a442c08f5af2e034 Mon Sep 17 00:00:00 2001 From: Gildas Date: Wed, 8 Mar 2023 21:15:52 +0100 Subject: [PATCH] pass options to Reader instances --- lib/core/zip-fs-core.js | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/lib/core/zip-fs-core.js b/lib/core/zip-fs-core.js index 020b7d74..72defeb9 100644 --- a/lib/core/zip-fs-core.js +++ b/lib/core/zip-fs-core.js @@ -347,7 +347,7 @@ class ZipDirectoryEntry extends ZipEntry { async exportZip(writer, options) { const zipEntry = this; - await Promise.all([initReaders(zipEntry), initStream(writer)]); + await Promise.all([initReaders(zipEntry, options), initStream(writer)]); const zipWriter = new ZipWriter(writer, options); await exportZip(zipWriter, zipEntry, getTotalSize([zipEntry], "uncompressedSize"), options); await zipWriter.close(); @@ -535,13 +535,15 @@ function getZipBlobReader(options) { }; } -async function initReaders(entry) { +async function initReaders(entry, options) { if (entry.children.length) { await Promise.all(entry.children.map(async child => { if (child.directory) { - await initReaders(child); + const readerOptions = Object.assign({}, options); + readerOptions.onprogress = null; + await initReaders(child, readerOptions); } else { - const reader = child.reader = new child.Reader(child.data); + const reader = child.reader = new child.Reader(child.data, options); await initStream(reader); child.uncompressedSize = reader.size; }