From 33febd61e2be1356402fb1cbe9c76f8cfa242be5 Mon Sep 17 00:00:00 2001 From: "U-MGC\\bburke" Date: Wed, 13 Apr 2016 16:38:15 -0700 Subject: [PATCH] Fixed issue 37, where entry.size is undefined. --- lib/parse.js | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/lib/parse.js b/lib/parse.js index 69fc2c4..1a4ed0c 100644 --- a/lib/parse.js +++ b/lib/parse.js @@ -86,12 +86,20 @@ Parse.prototype._readFile = function () { if (err) { return self.emit('error', err); } - fileName = fileName.toString('utf8'); + var entry = new Entry(); + var fileSizeKnown = !(vars.flags & 0x08); + + fileName = fileName.toString('utf8'); + entry.path = fileName; entry.props.path = fileName; entry.type = (vars.compressedSize === 0 && /[\/\\]$/.test(fileName)) ? 'Directory' : 'File'; + if (entry.type === 'File' && fileSizeKnown) { + entry.size = vars.uncompressedSize; + } + if (self._opts.verbose) { if (entry.type === 'Directory') { console.log(' creating:', fileName); @@ -127,15 +135,12 @@ Parse.prototype._readFile = function () { return self._readRecord(); }); } else { - var fileSizeKnown = !(vars.flags & 0x08); - var inflater = zlib.createInflateRaw(); inflater.on('error', function (err) { self.emit('error', err); }); if (fileSizeKnown) { - entry.size = vars.uncompressedSize; if (hasEntryListener) { entry.on('finish', self._readRecord.bind(self)); self._pullStream.pipe(vars.compressedSize, inflater).pipe(entry);