Замена decompress-zip на adm-zip

This commit is contained in:
Book Pauk
2019-10-16 21:08:34 +07:00
parent 16eebfb9a4
commit 2b5f47b3de
3 changed files with 16 additions and 91 deletions

View File

@@ -4,7 +4,7 @@ const crypto = require('crypto');
const path = require('path');
const unbzip2Stream = require('unbzip2-stream');
const tar = require('tar-fs');
const DecompressZip = require('decompress-zip');
const AdmZip = require('adm-zip');
const utils = require('./utils');
const FileDetector = require('./FileDetector');
@@ -112,26 +112,17 @@ class FileDecompressor {
}
async unZip(filename, outputDir) {
return new Promise((resolve, reject) => {
return new Promise((resolve) => {
const files = [];
const unzipper = new DecompressZip(filename);
const zip = new AdmZip(filename);
unzipper.on('error', function(err) {
reject(err);
zip.getEntries().forEach(function(zipEntry) {
files.push({path: zipEntry.entryName, size: zipEntry.header.size});
});
unzipper.on('extract', function() {
resolve(files);
});
zip.extractAllTo(outputDir, true);
unzipper.extract({
path: outputDir,
filter: function(file) {
if (file.type == 'File')
files.push({path: file.path, size: file.uncompressedSize});
return true;
}
});
resolve(files);
});
}