@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.
@@ -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,47 @@
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);
8198
- } else {
8199
- await diskWriter.ready;
8200
- await diskWriter.write(chunk);
8201
- currentWriter.size += chunk.length;
8202
- writer.size += chunk.length;
8193
+ await this.write(chunk.slice(chunkLength));
8194
+ } else if (chunk.length) {
8195
+ await writeChunk(chunk);
8203
8196
  }
8204
- writer.availableSize = maxSize - currentWriter.size;
8197
+ zipWriter.availableSize = maxSize - diskSourceWriter.size;
8205
8198
  },
8206
8199
  async close() {
8207
8200
  await diskWriter.ready;
8208
- diskWritable.size = currentWriter.size;
8209
- await diskWriter.close();
8201
+ await closeDisk();
8210
8202
  }
8211
8203
  });
8212
- Object.defineProperty(writer, PROPERTY_NAME_WRITABLE, {
8204
+ Object.defineProperty(zipWriter, PROPERTY_NAME_WRITABLE, {
8213
8205
  get() {
8214
8206
  return writable;
8215
8207
  }
8216
8208
  });
8209
+
8210
+ async function writeChunk(chunk) {
8211
+ await diskWriter.ready;
8212
+ await diskWriter.write(chunk);
8213
+ diskSourceWriter.size += chunk.length;
8214
+ zipWriter.size += chunk.length;
8215
+ }
8216
+
8217
+ async function closeDisk() {
8218
+ diskWritable.size = diskSourceWriter.size;
8219
+ await diskWriter.close();
8220
+ }
8217
8221
  }
8218
8222
  }
8219
8223