Skip to content

coderaiser/node-onezip

Repository files navigation

OneZip License NPM version Build Status Coverage Status

Pack and extract .zip archives with emitter.

Global

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

Local

onezip could be used locally. It will emit event on every packed/extracted file. Good for making progress bars.

Install

npm i onezip --save

How to use?

pack(from, to, names)

  • from - string directory that would be packed
  • to - string or stream, name of archive
  • names - array of names in directory from 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');
});

extract(from, to)

  • from - path to .zip archive
  • to - 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

Related

  • 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.

License

MIT