archive: yauzl

node v10.24.1
version: 1.0.0
endpointsharetweet
Test yauzl to see if it will work on PKZip
require('request'); const requestPromise = require('request-promise'); const buffer = await requestPromise('http://www.brisnet.com/samples/aqu0207n.zip', {encoding: null}); const { fromBuffer } = require('yauzl'); const archive = await new Promise((resolve, reject) => { fromBuffer(buffer, (error, zipFile) => { if (error) reject(error); if (zipFile) resolve(zipFile); }); }); return new Promise(async (resolve, reject) => { const entries = []; archive.on('entry', async (entry) => { entries.push( new Promise((resolve, reject) => { archive.openReadStream(entry, (error, stream) => { if (error) reject(error); else { const chunks = []; stream.on('error', reject); stream.on('data', data => { chunks.push(data); }); stream.on('end', () => { resolve(Object.assign(entry, { data: Buffer.concat(chunks) })); }); } }); }) ); }); archive.on('error', error => { reject(error); }); archive.on('end', async () => { resolve(await Promise.all(entries)); }); });
Loading…

no comments

    sign in to comment