@zip.js/zip.js 2.6.34 → 2.6.35

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/dist/zip-full.js CHANGED
@@ -7161,14 +7161,14 @@
7161
7161
 
7162
7162
  constructor(writerGenerator, maxSize = 4294967296) {
7163
7163
  super();
7164
- const writer = this;
7165
- Object.assign(writer, {
7164
+ const zipWriter = this;
7165
+ Object.assign(zipWriter, {
7166
7166
  diskNumber: 0,
7167
7167
  diskOffset: 0,
7168
7168
  size: 0,
7169
7169
  availableSize: maxSize
7170
7170
  });
7171
- let currentWriter, diskWritable, diskWriter;
7171
+ let diskSourceWriter, diskWritable, diskWriter;
7172
7172
  const writable = new WritableStream({
7173
7173
  async write(chunk) {
7174
7174
  if (!diskWriter) {
@@ -7176,43 +7176,47 @@
7176
7176
  if (done && !value) {
7177
7177
  throw new Error(ERR_ITERATOR_COMPLETED_TOO_SOON);
7178
7178
  } else {
7179
- currentWriter = value;
7180
- currentWriter.size = 0;
7179
+ diskSourceWriter = value;
7180
+ diskSourceWriter.size = 0;
7181
7181
  diskWritable = value.writable;
7182
7182
  diskWriter = diskWritable.getWriter();
7183
7183
  }
7184
7184
  await this.write(chunk);
7185
- } else if (diskWriter && currentWriter.size + chunk.length > maxSize) {
7186
- await diskWriter.ready;
7187
- const chunkLength = maxSize - currentWriter.size;
7188
- await diskWriter.write(chunk.slice(0, chunkLength));
7189
- chunk = chunk.slice(chunkLength);
7190
- currentWriter.size += chunkLength;
7191
- writer.size += chunkLength;
7192
- writer.diskOffset += diskWritable.size = currentWriter.size;
7193
- writer.diskNumber++;
7194
- await diskWriter.close();
7185
+ } else if (diskSourceWriter.size + chunk.length >= maxSize) {
7186
+ const chunkLength = maxSize - diskSourceWriter.size;
7187
+ await writeChunk(chunk.slice(0, chunkLength));
7188
+ await closeDisk();
7189
+ zipWriter.diskOffset += diskSourceWriter.size;
7190
+ zipWriter.diskNumber++;
7195
7191
  diskWriter = null;
7196
- await this.write(chunk);
7197
- } else {
7198
- await diskWriter.ready;
7199
- await diskWriter.write(chunk);
7200
- currentWriter.size += chunk.length;
7201
- writer.size += chunk.length;
7192
+ await this.write(chunk.slice(chunkLength));
7193
+ } else if (chunk.length) {
7194
+ await writeChunk(chunk);
7202
7195
  }
7203
- writer.availableSize = maxSize - currentWriter.size;
7196
+ zipWriter.availableSize = maxSize - diskSourceWriter.size;
7204
7197
  },
7205
7198
  async close() {
7206
7199
  await diskWriter.ready;
7207
- diskWritable.size = currentWriter.size;
7208
- await diskWriter.close();
7200
+ await closeDisk();
7209
7201
  }
7210
7202
  });
7211
- Object.defineProperty(writer, PROPERTY_NAME_WRITABLE, {
7203
+ Object.defineProperty(zipWriter, PROPERTY_NAME_WRITABLE, {
7212
7204
  get() {
7213
7205
  return writable;
7214
7206
  }
7215
7207
  });
7208
+
7209
+ async function writeChunk(chunk) {
7210
+ await diskWriter.ready;
7211
+ await diskWriter.write(chunk);
7212
+ diskSourceWriter.size += chunk.length;
7213
+ zipWriter.size += chunk.length;
7214
+ }
7215
+
7216
+ async function closeDisk() {
7217
+ diskWritable.size = diskSourceWriter.size;
7218
+ await diskWriter.close();
7219
+ }
7216
7220
  }
7217
7221
  }
7218
7222