@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.
@@ -8162,14 +8162,14 @@
8162
8162
 
8163
8163
  constructor(writerGenerator, maxSize = 4294967296) {
8164
8164
  super();
8165
- const writer = this;
8166
- Object.assign(writer, {
8165
+ const zipWriter = this;
8166
+ Object.assign(zipWriter, {
8167
8167
  diskNumber: 0,
8168
8168
  diskOffset: 0,
8169
8169
  size: 0,
8170
8170
  availableSize: maxSize
8171
8171
  });
8172
- let currentWriter, diskWritable, diskWriter;
8172
+ let diskSourceWriter, diskWritable, diskWriter;
8173
8173
  const writable = new WritableStream({
8174
8174
  async write(chunk) {
8175
8175
  if (!diskWriter) {
@@ -8177,43 +8177,49 @@
8177
8177
  if (done && !value) {
8178
8178
  throw new Error(ERR_ITERATOR_COMPLETED_TOO_SOON);
8179
8179
  } else {
8180
- currentWriter = value;
8181
- currentWriter.size = 0;
8180
+ diskSourceWriter = value;
8181
+ diskSourceWriter.size = 0;
8182
8182
  diskWritable = value.writable;
8183
8183
  diskWriter = diskWritable.getWriter();
8184
8184
  }
8185
8185
  await this.write(chunk);
8186
- } else if (diskWriter && currentWriter.size + chunk.length > maxSize) {
8187
- await diskWriter.ready;
8188
- const chunkLength = maxSize - currentWriter.size;
8189
- await diskWriter.write(chunk.slice(0, chunkLength));
8190
- chunk = chunk.slice(chunkLength);
8191
- currentWriter.size += chunkLength;
8192
- writer.size += chunkLength;
8193
- writer.diskOffset += diskWritable.size = currentWriter.size;
8194
- writer.diskNumber++;
8195
- await diskWriter.close();
8186
+ } else if (diskSourceWriter.size + chunk.length >= maxSize) {
8187
+ const chunkLength = maxSize - diskSourceWriter.size;
8188
+ await writeChunk(chunk.slice(0, chunkLength));
8189
+ await closeDisk();
8190
+ zipWriter.diskOffset += diskSourceWriter.size;
8191
+ zipWriter.diskNumber++;
8196
8192
  diskWriter = null;
8197
- await this.write(chunk);
8193
+ await this.write(chunk.slice(chunkLength));
8198
8194
  } else {
8199
- await diskWriter.ready;
8200
- await diskWriter.write(chunk);
8201
- currentWriter.size += chunk.length;
8202
- writer.size += chunk.length;
8195
+ if (chunk.length) {
8196
+ await writeChunk(chunk);
8197
+ }
8198
+ zipWriter.availableSize = maxSize - diskSourceWriter.size;
8203
8199
  }
8204
- writer.availableSize = maxSize - currentWriter.size;
8205
8200
  },
8206
8201
  async close() {
8207
8202
  await diskWriter.ready;
8208
- diskWritable.size = currentWriter.size;
8209
- await diskWriter.close();
8203
+ await closeDisk();
8210
8204
  }
8211
8205
  });
8212
- Object.defineProperty(writer, PROPERTY_NAME_WRITABLE, {
8206
+ Object.defineProperty(zipWriter, PROPERTY_NAME_WRITABLE, {
8213
8207
  get() {
8214
8208
  return writable;
8215
8209
  }
8216
8210
  });
8211
+
8212
+ async function writeChunk(chunk) {
8213
+ await diskWriter.ready;
8214
+ await diskWriter.write(chunk);
8215
+ diskSourceWriter.size += chunk.length;
8216
+ zipWriter.size += chunk.length;
8217
+ }
8218
+
8219
+ async function closeDisk() {
8220
+ diskWritable.size = diskSourceWriter.size;
8221
+ await diskWriter.close();
8222
+ }
8217
8223
  }
8218
8224
  }
8219
8225