@zip.js/zip.js 2.5.21 → 2.5.22
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/core/zip-writer.js +6 -8
- package/package.json +1 -1
package/lib/core/zip-writer.js
CHANGED
|
@@ -301,10 +301,10 @@ async function getFileEntry(zipWriter, name, reader, options) {
|
|
|
301
301
|
let releaseLockWriter;
|
|
302
302
|
let resolveLockCurrentFileEntry;
|
|
303
303
|
let writingBufferedData;
|
|
304
|
+
let fileWriter;
|
|
304
305
|
files.set(name, fileEntry);
|
|
305
306
|
try {
|
|
306
307
|
let lockPreviousFileEntry;
|
|
307
|
-
let fileWriter;
|
|
308
308
|
if (options.keepOrder) {
|
|
309
309
|
lockPreviousFileEntry = previousFileEntry && previousFileEntry.lock;
|
|
310
310
|
}
|
|
@@ -320,7 +320,7 @@ async function getFileEntry(zipWriter, name, reader, options) {
|
|
|
320
320
|
}
|
|
321
321
|
fileWriter = writer;
|
|
322
322
|
}
|
|
323
|
-
fileEntry = await createFileEntry(reader, fileWriter.writable, zipWriter.config, options);
|
|
323
|
+
fileEntry = await createFileEntry(reader, fileEntry, fileWriter.writable, zipWriter.config, options);
|
|
324
324
|
files.set(name, fileEntry);
|
|
325
325
|
fileEntry.filename = name;
|
|
326
326
|
if (bufferedWrite) {
|
|
@@ -361,9 +361,7 @@ async function getFileEntry(zipWriter, name, reader, options) {
|
|
|
361
361
|
} catch (error) {
|
|
362
362
|
if ((bufferedWrite && writingBufferedData) || (!bufferedWrite && fileEntry.dataWritten)) {
|
|
363
363
|
error.corruptedEntry = zipWriter.hasCorruptedEntries = true;
|
|
364
|
-
|
|
365
|
-
zipWriter.offset += fileEntry.uncompressedSize;
|
|
366
|
-
}
|
|
364
|
+
zipWriter.offset += fileWriter.size;
|
|
367
365
|
}
|
|
368
366
|
files.delete(name);
|
|
369
367
|
throw error;
|
|
@@ -384,7 +382,7 @@ async function getFileEntry(zipWriter, name, reader, options) {
|
|
|
384
382
|
}
|
|
385
383
|
}
|
|
386
384
|
|
|
387
|
-
async function createFileEntry(reader, writable, config, options) {
|
|
385
|
+
async function createFileEntry(reader, pendingFileEntry, writable, config, options) {
|
|
388
386
|
const {
|
|
389
387
|
rawFilename,
|
|
390
388
|
lastAccessDate,
|
|
@@ -534,7 +532,7 @@ async function createFileEntry(reader, writable, config, options) {
|
|
|
534
532
|
let compressedSize = 0;
|
|
535
533
|
if (reader) {
|
|
536
534
|
await writeUint8Array(writable, localHeaderArray);
|
|
537
|
-
fileEntry.dataWritten = true;
|
|
535
|
+
fileEntry.dataWritten = pendingFileEntry.dataWritten = true;
|
|
538
536
|
const size = () => reader.size;
|
|
539
537
|
const readable = reader.readable;
|
|
540
538
|
readable.size = size;
|
|
@@ -562,7 +560,7 @@ async function createFileEntry(reader, writable, config, options) {
|
|
|
562
560
|
compressedSize = result.length;
|
|
563
561
|
} else {
|
|
564
562
|
await writeUint8Array(writable, localHeaderArray);
|
|
565
|
-
fileEntry.dataWritten = true;
|
|
563
|
+
fileEntry.dataWritten = pendingFileEntry.dataWritten = true;
|
|
566
564
|
}
|
|
567
565
|
let dataDescriptorArray = new Uint8Array();
|
|
568
566
|
let dataDescriptorView, dataDescriptorOffset = 0;
|