Tiny zip64 (de)compression library for browser, nodejs and deno.
npm install @toneb/cszipcszip`:
`
npm i cszip
`
Create zip files:
`javascript
import { ZipWriter } from "@toneb/cszip";
// create output stream (browser)
const fileHandle = await window.showSaveFilePicker();
// create zip file
const zip = new ZipWriter(fileHandle.createWritable());
// stream large file into zip
const entry1 = zip.addEntry("largefile.bin");
const largeFile = await fetch("/largeFile");
await largeFile.pipeTo(entry1);
// add text file via stream writer
const entry2 = zip.addEntry("README");
const entry2writer = entry2.getWriter();
await entry2writer.write(new TextEncoder().encode("Hello, World!"));
await entry2writer.close();
// finalize zip file
await test.close();
`
API
`typescript
/**
* The zip file writer.
*/
class ZipWriter {
/**
* Creates new instance of zip writer.
* @param stream The output stream where data will be written.
*/
constructor(stream: WritableStream);
/**
* Adds new entry to zip file. Returns WritableStream which should be used to write entry data.
* @param name File name.
* @param options Additional options.
*/
async addEntry(name: string, options?: { noCompression?: boolean, dateModified?: Date }): Promise>;
/**
* Finalizes the file (writes entries) and closes input stream.
*/
async close(): Promise;
}
``