https://github.com/coderaiser/node-onezip
Pack and extract zip archives with emitter
https://github.com/coderaiser/node-onezip
emitter extract hacktoberfest javascript nodejs pack zip
Last synced: 9 months ago
JSON representation
Pack and extract zip archives with emitter
- Host: GitHub
- URL: https://github.com/coderaiser/node-onezip
- Owner: coderaiser
- License: mit
- Created: 2016-11-01T15:26:46.000Z (over 9 years ago)
- Default Branch: master
- Last Pushed: 2024-12-05T15:08:57.000Z (over 1 year ago)
- Last Synced: 2025-06-17T05:19:08.947Z (10 months ago)
- Topics: emitter, extract, hacktoberfest, javascript, nodejs, pack, zip
- Language: JavaScript
- Homepage:
- Size: 109 KB
- Stars: 7
- Watchers: 3
- Forks: 5
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- Changelog: ChangeLog
- License: LICENSE
Awesome Lists containing this project
README
# OneZip [![License][LicenseIMGURL]][LicenseURL] [![NPM version][NPMIMGURL]][NPMURL] [![Build Status][BuildStatusIMGURL]][BuildStatusURL] [![Coverage Status][CoverageIMGURL]][CoverageURL]
[LicenseURL]: https://tldrlegal.com/license/mit-license "MIT License"
[LicenseIMGURL]: https://img.shields.io/badge/license-MIT-317BF9.svg?style=flat
[NPMURL]: https://npmjs.org/package/onezip "npm"
[NPMIMGURL]: https://img.shields.io/npm/v/onezip.svg?style=flat
[BuildStatusURL]: https://github.com/coderaiser/node-onezip/actions/workflows/nodejs.yml "Build Status"
[BuildStatusIMGURL]: https://github.com/coderaiser/node-onezip/actions/workflows/nodejs.yml/badge.svg
[CoverageURL]: https://coveralls.io/github/coderaiser/node-onezip?branch=master
[CoverageIMGURL]: https://coveralls.io/repos/coderaiser/node-onezip/badge.svg?branch=master&service=github
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.
```js
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.
```js
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](https://github.com/coderaiser/node-jag "Jag") - Pack files and folders with tar and gzip.
- [Jaguar](https://github.com/coderaiser/node-jaguar "Jaguar") - Pack and extract .tar.gz archives with emitter.
- [Tar-to-zip](https://github.com/coderaiser/node-tar-to-zip "Tar-to-zip") - Convert tar and tar.gz archives to zip.
## License
MIT