Clone and edit this document
Runkit
Runkit
home page
user forum
new notebook
clone notebook
download notebook
support & documentation
log in
sign up
new notebook
help & feedback
clone this notebook
download this notebook
Sign In
Sign Up
archive: yauzl
node v10.24.1
version:
1.0.0
endpoint
share
tweet
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