@zip.js/zip.js
    Preparing search index...

    Class ZipWriter<Type>

    Represents an instance used to create a zip file.

    Here is an example showing how to create a zip file containing a compressed text file:

    // use a BlobWriter to store with a ZipWriter the zip into a Blob object
    const blobWriter = new zip.BlobWriter("application/zip");
    const writer = new zip.ZipWriter(blobWriter);

    // use a TextReader to read the String to add
    await writer.add("filename.txt", new zip.TextReader("test!"));

    // close the ZipReader
    await writer.close();

    // get the zip file as a Blob
    const blob = await blobWriter.getData();

    Type Parameters

    • Type
    Index
    hasCorruptedEntries?: boolean

    true if the zip contains at least one entry that has been partially written.

    • Adds an entry into the zip file

      Type Parameters

      • ReaderType

      Parameters

      • filename: string

        The filename of the entry. Paths must use forward slashes ("/") as separator, as required by section 4.4.17.1 of the zip specification. The value is stored as-is; in particular, Windows path separators ("\") are not converted and become part of the filename, which is interpreted inconsistently by zip tools, and leading or trailing whitespace is preserved, which Windows filesystems cannot represent at the end of a name.

      • Optionalreader:
            | ReadableStream<any>
            | ReadableStream<any>[]
            | ReadableReader
            | Reader<unknown>[]
            | ReadableReader[]
            | Reader<ReaderType>

        The Reader instance used to read the content of the entry.

      • Optionaloptions: ZipWriterAddDataOptions

        The options.

      Returns Promise<EntryMetaData>

      A promise resolving to an EntryMetaData instance.

      The returned promise can safely be left un-awaited: ZipWriter#close waits for the entry and throws its error if it was not caught.

    • Adds the entries of an existing zip file into the current zip. This method can be called at any time, including between calls to ZipWriter#add and repeatedly to merge several zip files.

      Type Parameters

      • ReaderType

      Parameters

      Returns Promise<void>

      A promise resolving when the zip file has been added.

      The data of the zip file is copied, its central directory is rebuilt and its entries are relocated to the positions they get in the output. The disks of a split zip file passed as input are therefore unrelated to the disks of the output, which is a single zip file unless the writer is a split zip file writer. The data of the entries is copied as-is; in particular, the constraints set by ZipWriterConstructorOptions#usdz are not applied to the copied entries.

      Pending ZipWriter#add calls are completed before the data is copied, and add() calls made while the copy is in progress are written after it. If an entry of the zip file has the same filename as an entry of the current zip, the method throws with the ERR_DUPLICATED_NAME error message and leaves the current zip unchanged; call ZipWriter#remove beforehand to resolve the conflicts.

      The returned promise can safely be left un-awaited: ZipWriter#close waits for the copy and throws its error if it was not caught.

    • Writes the entries directory, writes the global comment, and returns the content of the zip file

      Parameters

      • Optionalcomment: Uint8Array<ArrayBufferLike>

        The global comment of the zip file.

      • Optionaloptions: ZipWriterCloseOptions

        The options.

      Returns Promise<Type>

      The content of the zip file.

      The global comment is passed as raw bytes and the comment of an entry (ZipWriterAddDataOptions#comment) as a string on purpose, see ZipReader#comment.

      If ZipWriter#add or ZipWriter#appendZip calls failed and their rejection was never handled — e.g. the returned promise was not awaited — this method throws the first of these errors instead of finalizing the zip file. The entryErrors property of the thrown error contains all of them. Errors already caught by the caller do not resurface here, so entries can still be skipped by awaiting ZipWriter#add and catching the error. Throwing the errors counts as reporting them: catching the error of this method and calling it again finalizes the zip file without the failed entries.

    • Adds an existing zip file at the beginning of the current zip. This method cannot be called after the first call to ZipWriter#add.

      Type Parameters

      • ReaderType

      Parameters

      Returns Promise<void>

      A promise resolving when the zip file has been added.

      Use ZipWriter#appendZip instead, which is equivalent when the zip file is empty and can also be called after entries have been added.

    • Removes an entry from the central directory that will be written for the zip file. The entry data itself cannot be removed because it has already been streamed to the output.

      Parameters

      • entry: string | Entry

        The entry to remove. This can be an Entry instance or the filename of the entry.

      Returns boolean

      true if the entry has been removed, false otherwise.