1 | "use strict";
|
2 | var __importDefault = (this && this.__importDefault) || function (mod) {
|
3 | return (mod && mod.__esModule) ? mod : { "default": mod };
|
4 | };
|
5 | Object.defineProperty(exports, "__esModule", { value: true });
|
6 | const yauzl_1 = __importDefault(require("yauzl"));
|
7 | const get_stream_1 = __importDefault(require("get-stream"));
|
8 | async function readFilesFromZip(filename) {
|
9 | const files = {};
|
10 | await new Promise((resolve, reject) => {
|
11 | const promises = [];
|
12 | yauzl_1.default.open(filename, {}, (err, zipfile) => {
|
13 | if (err || !zipfile)
|
14 | return reject(err);
|
15 | zipfile.on('entry', (entry) => {
|
16 | promises.push(new Promise((res, rej) => {
|
17 | if (entry.fileName.endsWith('/'))
|
18 | return;
|
19 | zipfile.openReadStream(entry, async (err, stream) => {
|
20 | if (err || !stream)
|
21 | return rej(err);
|
22 | files[`/${entry.fileName}`] = await get_stream_1.default.buffer(stream);
|
23 | res();
|
24 | });
|
25 | }));
|
26 | });
|
27 | zipfile.once('end', () => Promise.all(promises).then(resolve, reject));
|
28 | });
|
29 | });
|
30 | return files;
|
31 | }
|
32 | exports.readFilesFromZip = readFilesFromZip;
|
33 |
|
\ | No newline at end of file |