Skip to main content

Compression

Create ZIP archives from directories with progress tracking.

Basic Compression

import { getUnzip } from 'react-native-nitro-unzip';

const unzip = getUnzip();
const task = unzip.zip('/path/to/folder', '/output/archive.zip');

const result = await task.await();
console.log(`Compressed ${result.compressedFiles} files`);

Progress Tracking

Monitor compression progress in real-time:

const task = unzip.zip('/path/to/folder', '/output/archive.zip');

task.onProgress((progress) => {
console.log(`${(progress.progress * 100).toFixed(0)}%`);
console.log(`${progress.compressedFiles}/${progress.totalFiles} files`);
console.log(`Speed: ${progress.speed.toFixed(0)} files/sec`);
});

const result = await task.await();

Progress Fields

FieldTypeDescription
compressedFilesnumberFiles compressed so far
totalFilesnumberTotal files to compress
progressnumber0.0 to 1.0
speednumberCurrent speed in files per second

Result

The await() method resolves with a ZipResult:

const result = await task.await();

if (result.success) {
console.log(`Compressed ${result.compressedFiles} files`);
console.log(`Duration: ${result.duration}ms`);
console.log(`Average speed: ${result.averageSpeed.toFixed(0)} files/sec`);
console.log(`Output size: ${result.totalBytes} bytes`);
}
FieldTypeDescription
successbooleanWhether compression completed
compressedFilesnumberTotal files compressed
totalFilesnumberTotal files to compress
durationnumberDuration in milliseconds
averageSpeednumberAverage files per second
totalBytesnumberTotal bytes written to the zip file