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
| Field | Type | Description |
|---|---|---|
compressedFiles | number | Files compressed so far |
totalFiles | number | Total files to compress |
progress | number | 0.0 to 1.0 |
speed | number | Current 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`);
}
| Field | Type | Description |
|---|---|---|
success | boolean | Whether compression completed |
compressedFiles | number | Total files compressed |
totalFiles | number | Total files to compress |
duration | number | Duration in milliseconds |
averageSpeed | number | Average files per second |
totalBytes | number | Total bytes written to the zip file |