|
# extract-zip |
|
|
|
Unzip written in pure JavaScript. Extracts a zip into a directory. Available as a library or a command line program. |
|
|
|
Uses the [`yauzl`](http://npmjs.org/yauzl) ZIP parser. |
|
|
|
[](https://npm.im/extract-zip) |
|
[](https://github.com/standard/standard) |
|
[](https://github.com/maxogden/extract-zip/actions?query=workflow%3ACI) |
|
|
|
## Installation |
|
|
|
Make sure you have Node 10 or greater installed. |
|
|
|
Get the library: |
|
|
|
``` |
|
npm install extract-zip --save |
|
``` |
|
|
|
Install the command line program: |
|
|
|
``` |
|
npm install extract-zip -g |
|
``` |
|
|
|
## JS API |
|
|
|
```javascript |
|
const extract = require('extract-zip') |
|
|
|
async function main () { |
|
try { |
|
await extract(source, { dir: target }) |
|
console.log('Extraction complete') |
|
} catch (err) { |
|
// handle any errors |
|
} |
|
} |
|
``` |
|
|
|
### Options |
|
|
|
- `dir` (required) - the path to the directory where the extracted files are written |
|
- `defaultDirMode` - integer - Directory Mode (permissions), defaults to `0o755` |
|
- `defaultFileMode` - integer - File Mode (permissions), defaults to `0o644` |
|
- `onEntry` - function - if present, will be called with `(entry, zipfile)`, entry is every entry from the zip file forwarded from the `entry` event from yauzl. `zipfile` is the `yauzl` instance |
|
|
|
Default modes are only used if no permissions are set in the zip file. |
|
|
|
## CLI Usage |
|
|
|
``` |
|
extract-zip foo.zip <targetDirectory> |
|
``` |
|
|
|
If not specified, `targetDirectory` will default to `process.cwd()`. |
|
|