@zip.js/zip.js 2.6.34 → 2.6.36

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,49 @@
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);
7192
+ await this.write(chunk.slice(chunkLength));
7197
7193
  } else {
7198
- await diskWriter.ready;
7199
- await diskWriter.write(chunk);
7200
- currentWriter.size += chunk.length;
7201
- writer.size += chunk.length;
7194
+ if (chunk.length) {
7195
+ await writeChunk(chunk);
7196
+ }
7197
+ zipWriter.availableSize = maxSize - diskSourceWriter.size;
7202
7198
  }
7203
- writer.availableSize = maxSize - currentWriter.size;
7204
7199
  },
7205
7200
  async close() {
7206
7201
  await diskWriter.ready;
7207
- diskWritable.size = currentWriter.size;
7208
- await diskWriter.close();
7202
+ await closeDisk();
7209
7203
  }
7210
7204
  });
7211
- Object.defineProperty(writer, PROPERTY_NAME_WRITABLE, {
7205
+ Object.defineProperty(zipWriter, PROPERTY_NAME_WRITABLE, {
7212
7206
  get() {
7213
7207
  return writable;
7214
7208
  }
7215
7209
  });
7210
+
7211
+ async function writeChunk(chunk) {
7212
+ await diskWriter.ready;
7213
+ await diskWriter.write(chunk);
7214
+ diskSourceWriter.size += chunk.length;
7215
+ zipWriter.size += chunk.length;
7216
+ }
7217
+
7218
+ async function closeDisk() {
7219
+ diskWritable.size = diskSourceWriter.size;
7220
+ await diskWriter.close();
7221
+ }
7216
7222
  }
7217
7223
  }
7218
7224