adm-zip
adm-zip copied to clipboard
When the length of zipEntries is 0, extractAllToAsync callback is not invoked.
This Promise will waiting forever
const zip = new AdmZip(zipPath);
const zipEntries = zip.getEntries();
for (let zipEntry of Object.values(zipEntries)) {
zip.deleteFile(zipEntry.entryName);
}
// zipEntries.length === 0;
new Promise((resolve, reject) => {
zip.extractAllToAsync(distDir, true, err => {
if (err) return reject(err);
resolve();
});
});
Same problem here. I faced it when using promisify
:
const { promisify } = require('util');
const Zip = require('adm-zip');
const zip = new Zip(srcPath);
await promisify(zip.extractAllToAsync)(dstPath, true, (err) => { });