Skip to content

Commit 53f6e0d

Browse files
authored
feat: uncompress support overwrite file mode (#81)
1 parent bc4cc95 commit 53f6e0d

File tree

2 files changed

+11
-1
lines changed

2 files changed

+11
-1
lines changed

lib/utils.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -116,7 +116,7 @@ exports.makeUncompressFn = StreamClass => {
116116
if (err) return reject(err);
117117

118118
entryCount++;
119-
pump(stream, fs.createWriteStream(fullpath, { mode: header.mode }), err => {
119+
pump(stream, fs.createWriteStream(fullpath, { mode: opts.mode || header.mode }), err => {
120120
if (err) return reject(err);
121121

122122
successCount++;

test/zip/index.test.js

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -173,6 +173,16 @@ describe('test/zip/index.test.js', () => {
173173
assert(res.totalDirs === 1);
174174
});
175175

176+
it('zip.uncompress(sourceFile, destDir) support file mode', function* () {
177+
const sourceFile = path.join(__dirname, '..', 'fixtures', 'xxx.zip');
178+
destDir = path.join(os.tmpdir(), uuid.v4());
179+
yield compressing.zip.uncompress(sourceFile, destDir, {
180+
mode: 32804,
181+
});
182+
const stat = fs.statSync(path.join(destDir, 'xxx', 'foo'));
183+
assert(stat.mode === 32804);
184+
});
185+
176186
// only test on local
177187
it.skip('zip.uncompress(sourceFile, destDir) support chinese gbk path', function* () {
178188
const sourceFile = path.join(__dirname, '..', 'fixtures', 'chinese-path-test.zip');

0 commit comments

Comments
 (0)