diff --git a/index.js b/index.js index 81625fca..71027ac9 100644 --- a/index.js +++ b/index.js @@ -135,6 +135,10 @@ ZipStream.prototype.entry = function(source, data, callback) { entry.setUnixMode(data.mode); } + if (data.extra) { + entry.setExtra(data.extra); + } + return ZipArchiveOutputStream.prototype.entry.call(this, entry, source, callback); }; diff --git a/test/pack.js b/test/pack.js index a96fb81b..0f0eaec5 100644 --- a/test/pack.js +++ b/test/pack.js @@ -130,6 +130,22 @@ describe('pack', function() { archive.finalize(); }); + it('should support file extra', function(done) { + var archive = new Packer(); + var extra = new Buffer('Extra data', 'UTF-8'); + + var testStream = new WriteHashStream('tmp/extra.zip'); + + testStream.on('close', function() { + done(); + }); + + archive.pipe(testStream); + + archive.entry(testBuffer, { name: 'buffer.txt', date: testDate, extra: extra}); + archive.finalize(); + }); + it('should STORE files when compression level is zero', function(done) { var archive = new Packer({ forceUTC: true,