Socket
Socket
Sign inDemoInstall

decompress

Package Overview
Dependencies
Maintainers
1
Versions
41
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

decompress - npm Package Compare versions

Comparing version 1.0.7 to 2.0.0

31

cli.js

@@ -69,2 +69,6 @@ #!/usr/bin/env node

function isFile(path) {
if (/^[^\s]+\.\w*$/g.test(path)) {
return true;
}
try {

@@ -80,12 +84,11 @@ return fs.statSync(path).isFile();

*
* @param {String} input
* @param {String} output
* @param {Object} opts
* @param {String} src
* @param {String} dest
* @api private
*/
function run(input, output, opts) {
function run(src, dest) {
var decompress = new Decompress(opts)
.src(input)
.dest(output)
.src(src)
.dest(dest)
.use(Decompress.tar(opts))

@@ -95,3 +98,3 @@ .use(Decompress.targz(opts))

decompress.decompress(function (err) {
decompress.run(function (err) {
if (err) {

@@ -108,6 +111,6 @@ console.error(err);

var input = opts.argv.remain;
var output = process.cwd();
var src = opts.argv.remain;
var dest = process.cwd();
if (input.length === 0) {
if (!src.length) {
help();

@@ -117,7 +120,7 @@ return;

if (input.length > 1 && !isFile(input[input.length - 1])) {
output = input[input.length - 1];
input.pop();
if (!isFile(src[src.length - 1])) {
dest = src[src.length - 1];
src.pop();
}
run(input.join(), output, opts);
run(src, dest);
'use strict';
var each = require('each-async');
var fs = require('fs-extra');
var path = require('path');
var Ware = require('ware');
var combine = require('stream-combiner');
var concat = require('concat-stream');
var File = require('vinyl');
var fs = require('vinyl-fs');
var through = require('through2');

@@ -22,24 +23,12 @@ /**

this.opts.mode = parseInt(this.opts.mode, 8) || null;
this.ware = new Ware();
this.streams = [];
}
/**
* Add a plugin to the middleware stack
* Get or set the source files
*
* @param {Function} plugin
* @param {Array|Buffer|String} file
* @api public
*/
Decompress.prototype.use = function (plugin) {
this.ware.use(plugin);
return this;
};
/**
* Get or set the source file
*
* @param {String|Buffer} file
* @api public
*/
Decompress.prototype.src = function (file) {

@@ -55,9 +44,9 @@ if (!arguments.length) {

/**
* Get or set the destination path
* Get or set the destination folder
*
* @param {String} path
* @param {String} dir
* @api public
*/
Decompress.prototype.dest = function (path) {
Decompress.prototype.dest = function (dir) {
if (!arguments.length) {

@@ -67,3 +56,3 @@ return this._dest;

this._dest = path;
this._dest = dir;
return this;

@@ -73,40 +62,16 @@ };

/**
* Decompress archive
* Add a plugin to the middleware stack
*
* @param {Function} cb
* @param {Function} plugin
* @api public
*/
Decompress.prototype.decompress = function (cb) {
cb = cb || function () {};
var self = this;
this.read(function (err, file) {
if (!file || file.contents.length === 0) {
cb();
return;
}
if (err) {
cb(err);
return;
}
self.run(file, function (err) {
if (err) {
cb(err);
return;
}
self.write(self.files, function (err) {
cb(err, file);
});
});
});
Decompress.prototype.use = function (plugin) {
this.streams.push(plugin);
return this;
};
/**
* Run a file through the middleware
* Decompress archive
*
* @param {Object} file
* @param {Function} cb

@@ -116,81 +81,44 @@ * @api public

Decompress.prototype.run = function (file, cb) {
this.ware.run(file, this, cb);
};
Decompress.prototype.run = function (cb) {
cb = cb || function () {};
this.streams.unshift(this.read(this.src()));
/**
* Read the archive
*
* @param {Function} cb
* @api public
*/
if (this.dest()) {
this.streams.push(fs.dest(this.dest(), this.opts));
}
Decompress.prototype.read = function (cb) {
var file = {};
var src = this.src();
var pipe = combine(this.streams);
var end = concat(function (file) {
cb(null, file);
});
if (Buffer.isBuffer(src)) {
file.contents = src;
cb(null, file);
pipe.on('error', function (err) {
cb(err);
return;
}
});
fs.readFile(src, function (err, buf) {
if (err) {
cb(err);
return;
}
file.contents = buf;
file.path = src;
cb(null, file);
});
pipe.pipe(end);
};
/**
* Write files to destination
* Read the source files
*
* @param {Array} files
* @param {Function} cb
* @api public
* @param {Array|Buffer|String} src
* @api private
*/
Decompress.prototype.write = function (files, cb) {
var dest = this.dest();
var mode = this.opts.mode;
Decompress.prototype.read = function (src) {
if (Buffer.isBuffer(src)) {
var stream = through.obj(function (file, enc, cb) {
cb(null, file);
});
if (!dest || !files) {
cb();
return;
stream.end(new File({
contents: src
}));
return stream;
}
each(files, function (file, i, done) {
fs.outputFile(path.join(dest, file.path), file.contents, function (err) {
if (err) {
done(err);
return;
}
if (mode) {
return fs.chmod(path.join(dest, file.path), mode, function (err) {
if (err) {
cb(err);
return;
}
done();
});
}
done();
});
}, function (err) {
if (err) {
cb(err);
return;
}
cb();
});
return fs.src(src);
};

@@ -197,0 +125,0 @@

{
"name": "decompress",
"version": "1.0.7",
"version": "2.0.0",
"description": "Easily extract archives",

@@ -26,22 +26,27 @@ "license": "MIT",

"keywords": [
"bz2",
"bzip2",
"decompress",
"extract",
"tar",
"tar.bz",
"tar.gz",
"zip"
"zip",
"unzip"
],
"dependencies": {
"decompress-tar": "^1.0.0",
"decompress-tarbz2": "^1.0.1",
"decompress-targz": "^1.0.0",
"decompress-unzip": "^1.0.0",
"each-async": "^1.0.0",
"fs-extra": "^0.11.0",
"concat-stream": "^1.4.6",
"decompress-tar": "^2.0.0",
"decompress-tarbz2": "^2.0.0",
"decompress-targz": "^2.0.0",
"decompress-unzip": "^2.0.0",
"nopt": "^3.0.1",
"ware": "^0.3.0"
"stream-combiner": "^0.2.1",
"through2": "^0.6.1",
"vinyl": "^0.4.3",
"vinyl-fs": "^0.3.7"
},
"devDependencies": {
"ava": "0.0.4",
"rimraf": "^2.2.8"
"ava": "0.0.4"
}
}

@@ -1,2 +0,2 @@

# decompress [![Build Status](https://travis-ci.org/kevva/decompress.svg?branch=master)](https://travis-ci.org/kevva/decompress)
# decompress [![Build Status](http://img.shields.io/travis/kevva/decompress.svg?style=flat)](https://travis-ci.org/kevva/decompress)

@@ -21,3 +21,3 @@ > Easily extract archives

decompress.decompress(function (err) {
decompress.run(function (err) {
if (err) {

@@ -37,5 +37,6 @@ throw err;

### .src(file)
### .src(files)
Set the file to be extract. Can be a `Buffer` or the path to a file.
Set the files to be decompress. Takes a buffer, glob string or an array of glob
strings as argument.

@@ -50,3 +51,3 @@ ### .dest(path)

### .decompress(cb)
### .run(cb)

@@ -69,2 +70,3 @@ Extract your file with the given settings.

* [tar](#tar) — Extract TAR files.
* [tar.bz](#tarbz) — Extract TAR.BZ files.
* [tar.gz](#targz) — Extract TAR.GZ files.

@@ -84,2 +86,13 @@ * [zip](#zip) — Extract ZIP files.

### .tarbz()
Extract TAR.BZ files.
```js
var Decompress = require('decompress');
var decompress = new Decompress()
.use(Decompress.tarbz({ strip: 1 }));
```
### .targz()

@@ -129,2 +142,2 @@

MIT © [Kevin Mårtensson](http://kevinmartensson.com)
MIT © [Kevin Mårtensson](https://github.com/kevva)
SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc