Pack and extract .zip archives with emitter.
onezip
could be installed global with
npm i onezip -g
And used this way:
Usage: onezip [filename]
Options:
-h, --help display this help and exit
-v, --version output version information and exit
-p, --pack pack files to archive
-x, --extract extract files from archive
onezip
could be used locally. It will emit event on every packed/extracted file.
Good for making progress bars.
npm i onezip --save
from
- string directory that would be packedto
- string or stream, name of archivenames
- array of names in directoryfrom
that would be packed.
const onezip = require('onezip');
const path = require('node:path');
const cwd = process.cwd();
const name = 'pipe.tar.gz';
const from = `${cwd}/pipe-io`;
const to = path.join(cwd, name);
const pack = onezip.pack(from, to, ['LICENSE', 'README.md', 'package.json']);
pack.on('file', (name) => {
console.log(name);
});
pack.on('start', () => {
console.log('start packing');
});
pack.on('progress', (percent) => {
console.log(`${percent}%`);
});
pack.on('error', (error) => {
console.error(error);
});
pack.on('end', () => {
console.log('done');
});
from
- path to .zip archiveto
- path to directory where files would be stored.
const onezip = require('onezip');
const path = require('node:path');
const cwd = process.cwd();
const name = 'pipe.zip';
const to = `${cwd}/pipe-io`;
const from = path.join(cwd, name);
const extract = onezip.extract(from, to);
extract.on('file', (name) => {
console.log(name);
});
extract.on('start', (percent) => {
console.log('extracting started');
});
extract.on('progress', (percent) => {
console.log(`${percent}%`);
});
extract.on('error', (error) => {
console.error(error);
});
extract.on('end', () => {
console.log('done');
});
In case of starting example output should be similar to (but with additional events):
33%
67%
100%
done
- Jag - Pack files and folders with tar and gzip.
- Jaguar - Pack and extract .tar.gz archives with emitter.
- Tar-to-zip - Convert tar and tar.gz archives to zip.
MIT