# decompress [![Build Status](https://travis-ci.org/kevva/decompress.svg?branch=master)](https://travis-ci.org/kevva/decompress) > Extracting archives made easy *See [decompress-cli](https://github.com/kevva/decompress-cli) for the command-line version.* ## Install ``` $ npm install decompress ``` ## Usage ```js const decompress = require('decompress'); decompress('unicorn.zip', 'dist').then(files => { console.log('done!'); }); ``` ## API ### decompress(input, [output], [options]) Returns a Promise for an array of files in the following format: ```js { data: Buffer, mode: Number, mtime: String, path: String, type: String } ``` #### input Type: `string` `Buffer` File to decompress. #### output Type: `string` Output directory. #### options ##### filter Type: `Function` Filter out files before extracting. E.g: ```js decompress('unicorn.zip', 'dist', { filter: file => path.extname(file.path) !== '.exe' }).then(files => { console.log('done!'); }); ``` *Note that in the current implementation, **`filter` is only applied after fully reading all files from the archive in memory**. Do not rely on this option to limit the amount of memory used by `decompress` to the size of the files included by `filter`. `decompress` will read the entire compressed file into memory regardless.* ##### map Type: `Function` Map files before extracting: E.g: ```js decompress('unicorn.zip', 'dist', { map: file => { file.path = `unicorn-${file.path}`; return file; } }).then(files => { console.log('done!'); }); ``` ##### plugins Type: `Array`
Default: `[decompressTar(), decompressTarbz2(), decompressTargz(), decompressUnzip()]` Array of [plugins](https://www.npmjs.com/browse/keyword/decompressplugin) to use. ##### strip Type: `number`
Default: `0` Remove leading directory components from extracted files. ## License MIT © [Kevin Mårtensson](https://github.com/kevva)