extract-zip
Advanced tools
Comparing version 1.3.0 to 1.4.0
20
index.js
var fs = require('fs') | ||
var path = require('path') | ||
var async = require('async') | ||
var yauzl = require('yauzl') | ||
@@ -20,15 +19,13 @@ var mkdirp = require('mkdirp') | ||
yauzl.open(zipPath, {autoClose: false}, function (err, zipfile) { | ||
yauzl.open(zipPath, {lazyEntries: true}, function (err, zipfile) { | ||
if (err) return cb(err) | ||
var cancelled = false | ||
var finished = false | ||
var q = async.queue(extractEntry, 1) | ||
zipfile.readEntry() | ||
q.drain = function () { | ||
if (!finished) return | ||
zipfile.on('close', function () { | ||
debug('zip extraction complete') | ||
cb() | ||
} | ||
}) | ||
@@ -45,10 +42,10 @@ zipfile.on('entry', function (entry) { | ||
// dir name starts with __MACOSX/ | ||
zipfile.readEntry() | ||
return | ||
} | ||
q.push(entry, function (err) { | ||
extractEntry(entry, function (err) { | ||
// if any extraction fails then abort everything | ||
if (err) { | ||
cancelled = true | ||
q.kill() | ||
zipfile.close() | ||
@@ -58,9 +55,6 @@ return cb(err) | ||
debug('finished processing', entry.fileName) | ||
zipfile.readEntry() | ||
}) | ||
}) | ||
zipfile.on('end', function () { | ||
finished = true | ||
}) | ||
function extractEntry (entry, done) { | ||
@@ -67,0 +61,0 @@ if (cancelled) { |
{ | ||
"name": "extract-zip", | ||
"version": "1.3.0", | ||
"version": "1.4.0", | ||
"description": "unzip a zip file into a directory using 100% pure gluten-free organic javascript", | ||
@@ -28,7 +28,6 @@ "main": "index.js", | ||
"dependencies": { | ||
"async": "1.5.0", | ||
"concat-stream": "1.5.0", | ||
"debug": "0.7.4", | ||
"mkdirp": "0.5.0", | ||
"yauzl": "2.3.1" | ||
"yauzl": "2.4.1" | ||
}, | ||
@@ -35,0 +34,0 @@ "devDependencies": { |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
4
7600
146
+ Addedyauzl@2.4.1(transitive)
- Removedasync@1.5.0
- Removedasync@1.5.0(transitive)
- Removedyauzl@2.3.1(transitive)
Updatedyauzl@2.4.1