Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/nodejs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,4 +13,4 @@ jobs:
uses: node-modules/github-actions/.github/workflows/node-test.yml@master
with:
os: 'ubuntu-latest, macos-latest, windows-latest'
version: '14, 16, 18, 20, 22, 24'
version: '18, 20, 22, 24'
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,7 @@ fs.createReadStream('file/path/to/compress')
.on('error', handleError);

// You should take care of stream errors in caution, use pump to handle error in one place
const pump = require('pump');
const { pipeline: pump } = require('stream');
const sourceStream = fs.createReadStream('file/path/to/compress');
const gzipStream = new compressing.gzip.FileStream();
const destStream = fs.createWriteStream('path/to/destination.gz');
Expand Down Expand Up @@ -193,7 +193,7 @@ function onEntry(header, stream, next) => {
if (header.type === 'file') {
stream.pipe(fs.createWriteStream(path.join(destDir, header.name)));
} else { // directory
mkdirp(path.join(destDir, header.name), err => {
fs.mkdir(path.join(destDir, header.name), { recursive: true }, err => {
if (err) return handleError(err);
stream.resume();
});
Expand Down
2 changes: 1 addition & 1 deletion lib/tgz/file_stream.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ const tar = require('../tar');
const gzip = require('../gzip');
const utils = require('../utils');
const stream = require('stream');
const pump = require('pump');
const { pipeline: pump } = require('stream');
const ready = require('get-ready');

class TgzFileStream extends stream.Transform {
Expand Down
11 changes: 5 additions & 6 deletions lib/utils.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,7 @@

const fs = require('fs');
const path = require('path');
const mkdirp = require('mkdirp');
const pump = require('pump');
const { pipeline: pump } = require('stream');

// file/fileBuffer/stream
exports.sourceType = source => {
Expand Down Expand Up @@ -90,7 +89,7 @@ exports.makeUncompressFn = StreamClass => {
}

return new Promise((resolve, reject) => {
mkdirp(destDir, err => {
fs.mkdir(destDir, { recursive: true }, err => {
if (err) return reject(err);

let entryCount = 0;
Expand All @@ -113,7 +112,7 @@ exports.makeUncompressFn = StreamClass => {

if (header.type === 'file') {
const dir = path.dirname(destFilePath);
mkdirp(dir, err => {
fs.mkdir(dir, { recursive: true }, err => {
if (err) return reject(err);

entryCount++;
Expand All @@ -128,7 +127,7 @@ exports.makeUncompressFn = StreamClass => {
const target = path.resolve(dir, header.linkname);
entryCount++;

mkdirp(dir, err => {
fs.mkdir(dir, { recursive: true }, err => {
if (err) return reject(err);

const relativeTarget = path.relative(dir, target);
Expand All @@ -139,7 +138,7 @@ exports.makeUncompressFn = StreamClass => {
});
});
} else { // directory
mkdirp(destFilePath, err => {
fs.mkdir(destFilePath, { recursive: true }, err => {
if (err) return reject(err);
stream.resume();
});
Expand Down
6 changes: 2 additions & 4 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -39,14 +39,12 @@
},
"homepage": "https://github.com/node-modules/compressing#readme",
"dependencies": {
"@eggjs/yauzl": "^2.11.0",
"flushwritable": "^1.0.0",
"get-ready": "^1.0.0",
"iconv-lite": "^0.5.0",
"mkdirp": "^0.5.1",
"pump": "^3.0.0",
"streamifier": "^0.1.1",
"tar-stream": "^1.5.2",
"@eggjs/yauzl": "^2.11.0",
"yazl": "^2.4.2"
},
"devDependencies": {
Expand All @@ -62,6 +60,6 @@
"uuid": "^3.0.1"
},
"engines": {
"node": ">= 4.0.0"
"node": ">= 18.0.0"
}
}
2 changes: 1 addition & 1 deletion test/gzip/file_stream.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ const fs = require('fs');
const os = require('os');
const path = require('path');
const uuid = require('uuid');
const pump = require('pump');
const { pipeline: pump } = require('stream');
const compressing = require('../..');
const assert = require('assert');

Expand Down
2 changes: 1 addition & 1 deletion test/gzip/uncompress_stream.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ const os = require('os');
const uuid = require('uuid');
const path = require('path');
const assert = require('assert');
const pump = require('pump');
const { pipeline: pump } = require('stream');
const streamifier = require('streamifier');
const compressing = require('../..');

Expand Down
2 changes: 1 addition & 1 deletion test/tar/file_stream.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ const os = require('os');
const path = require('path');
const uuid = require('uuid');
const assert = require('assert');
const pump = require('pump');
const { pipeline: pump } = require('stream');
const compressing = require('../..');

describe('test/tar/file_stream.test.js', () => {
Expand Down
3 changes: 1 addition & 2 deletions test/tar/index.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,6 @@ const uuid = require('uuid');
const compressing = require('../..');
const assert = require('assert');
const dircompare = require('dir-compare');
const mkdirp = require('mz-modules/mkdirp');

describe('test/tar/index.test.js', () => {
afterEach(mm.restore);
Expand Down Expand Up @@ -108,7 +107,7 @@ describe('test/tar/index.test.js', () => {
assert(fs.existsSync(destFile));

const destDir = path.join(os.tmpdir(), uuid.v4());
await mkdirp(destDir);
await fs.promises.mkdir(destDir, { recursive: true });
await compressing.tar.uncompress(destFile, destDir);
const stat = fs.statSync(path.join(destDir, 'bin'));
assert(stat.mode === originStat.mode);
Expand Down
2 changes: 1 addition & 1 deletion test/tar/stream.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ const fs = require('fs');
const os = require('os');
const path = require('path');
const uuid = require('uuid');
const pump = require('pump');
const { pipeline: pump } = require('stream');
const compressing = require('../..');
const assert = require('assert');
const TarStream = compressing.tar.Stream;
Expand Down
19 changes: 9 additions & 10 deletions test/tar/uncompress_stream.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,7 @@ const os = require('os');
const path = require('path');
const uuid = require('uuid');
const assert = require('assert');
const mkdirp = require('mkdirp');
const pump = require('pump');
const { pipeline: pump } = require('stream');
const dircompare = require('dir-compare');
const streamifier = require('streamifier');
const { pipelinePromise } = require('../util');
Expand All @@ -22,7 +21,7 @@ describe('test/tar/uncompress_stream.test.js', () => {
const destDir = path.join(os.tmpdir(), uuid.v4());

const uncompressStream = new compressing.tar.UncompressStream();
mkdirp.sync(destDir);
fs.mkdirSync(destDir, { recursive: true });
pump(sourceStream, uncompressStream, err => {
assert(!err);
const res = dircompare.compareSync(originalDir, path.join(destDir, 'xxx'));
Expand All @@ -39,7 +38,7 @@ describe('test/tar/uncompress_stream.test.js', () => {
.then(next)
.catch(done);
} else { // directory
mkdirp(path.join(destDir, header.name), err => {
fs.mkdir(path.join(destDir, header.name), { recursive: true }, err => {
if (err) return done(err);
stream.resume();
});
Expand All @@ -52,7 +51,7 @@ describe('test/tar/uncompress_stream.test.js', () => {
const destDir = path.join(os.tmpdir(), uuid.v4());

const uncompressStream = new compressing.tar.UncompressStream({ source: sourceFile });
mkdirp.sync(destDir);
fs.mkdirSync(destDir, { recursive: true });

uncompressStream.on('finish', () => {
const res = dircompare.compareSync(originalDir, path.join(destDir, 'xxx'));
Expand All @@ -69,7 +68,7 @@ describe('test/tar/uncompress_stream.test.js', () => {
.then(next)
.catch(done);
} else { // directory
mkdirp(path.join(destDir, header.name), err => {
fs.mkdir(path.join(destDir, header.name), { recursive: true }, err => {
if (err) return done(err);
stream.resume();
});
Expand All @@ -83,7 +82,7 @@ describe('test/tar/uncompress_stream.test.js', () => {
const destDir = path.join(os.tmpdir(), uuid.v4());

const uncompressStream = new compressing.tar.UncompressStream({ source: sourceBuffer });
mkdirp.sync(destDir);
fs.mkdirSync(destDir, { recursive: true });

uncompressStream.on('finish', () => {
const res = dircompare.compareSync(originalDir, path.join(destDir, 'xxx'));
Expand All @@ -103,7 +102,7 @@ describe('test/tar/uncompress_stream.test.js', () => {
.then(next)
.catch(done);
} else { // directory
mkdirp(path.join(destDir, header.name), err => {
fs.mkdir(path.join(destDir, header.name), err => {
if (err) return done(err);
stream.resume();
});
Expand All @@ -117,7 +116,7 @@ describe('test/tar/uncompress_stream.test.js', () => {
const destDir = path.join(os.tmpdir(), uuid.v4());

const uncompressStream = new compressing.tar.UncompressStream({ source: sourceStream });
mkdirp.sync(destDir);
fs.mkdirSync(destDir, { recursive: true });

uncompressStream.on('finish', () => {
const res = dircompare.compareSync(originalDir, path.join(destDir, 'xxx'));
Expand All @@ -134,7 +133,7 @@ describe('test/tar/uncompress_stream.test.js', () => {
.then(next)
.catch(done);
} else { // directory
mkdirp(path.join(destDir, header.name), err => {
fs.mkdir(path.join(destDir, header.name), { recursive: true }, err => {
if (err) return done(err);
stream.resume();
});
Expand Down
2 changes: 1 addition & 1 deletion test/tgz/file_stream.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ const fs = require('fs');
const os = require('os');
const path = require('path');
const uuid = require('uuid');
const pump = require('pump');
const { pipeline: pump } = require('stream');
const compressing = require('../..');
const assert = require('assert');

Expand Down
3 changes: 1 addition & 2 deletions test/tgz/index.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@ const path = require('path');
const uuid = require('uuid');
const assert = require('assert');
const dircompare = require('dir-compare');
const mkdirp = require('mz-modules/mkdirp');
const compressing = require('../..');

const isWindows = os.platform() === 'win32';
Expand Down Expand Up @@ -68,7 +67,7 @@ describe('test/tgz/index.test.js', () => {
assert(fs.existsSync(destFile));

const destDir = path.join(os.tmpdir(), uuid.v4());
await mkdirp(destDir);
await fs.promises.mkdir(destDir, { recursive: true });
await compressing.tgz.uncompress(destFile, destDir);
const stat = fs.statSync(path.join(destDir, 'bin'));
assert(stat.mode);
Expand Down
2 changes: 1 addition & 1 deletion test/tgz/stream.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ const fs = require('fs');
const os = require('os');
const path = require('path');
const uuid = require('uuid');
const pump = require('pump');
const { pipeline: pump } = require('stream');
const compressing = require('../..');
const assert = require('assert');
const TgzStream = compressing.tgz.Stream;
Expand Down
19 changes: 9 additions & 10 deletions test/tgz/uncompress_stream.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,7 @@ const os = require('os');
const path = require('path');
const uuid = require('uuid');
const assert = require('assert');
const mkdirp = require('mkdirp');
const pump = require('pump');
const { pipeline: pump } = require('stream');
const dircompare = require('dir-compare');
const { pipelinePromise } = require('../util');
const compressing = require('../..');
Expand All @@ -21,7 +20,7 @@ describe('test/tgz/uncompress_stream.test.js', () => {
const destDir = path.join(os.tmpdir(), uuid.v4());

const uncompressStream = new compressing.tgz.UncompressStream();
mkdirp.sync(destDir);
fs.mkdirSync(destDir, { recursive: true });
pump(sourceStream, uncompressStream, err => {
console.error(err);
assert(!err);
Expand All @@ -39,7 +38,7 @@ describe('test/tgz/uncompress_stream.test.js', () => {
.then(next)
.catch(done);
} else { // directory
mkdirp(path.join(destDir, header.name), err => {
fs.mkdir(path.join(destDir, header.name), { recursive: true }, err => {
if (err) return done(err);
stream.resume();
});
Expand All @@ -52,7 +51,7 @@ describe('test/tgz/uncompress_stream.test.js', () => {
const destDir = path.join(os.tmpdir(), uuid.v4());

const uncompressStream = new compressing.tgz.UncompressStream({ source: sourceFile });
mkdirp.sync(destDir);
fs.mkdirSync(destDir, { recursive: true });

uncompressStream.on('finish', () => {
const res = dircompare.compareSync(originalDir, path.join(destDir, 'xxx'));
Expand All @@ -70,7 +69,7 @@ describe('test/tgz/uncompress_stream.test.js', () => {
.then(next)
.catch(done);
} else { // directory
mkdirp(path.join(destDir, header.name), err => {
fs.mkdir(path.join(destDir, header.name), { recursive: true }, err => {
if (err) return done(err);
stream.resume();
});
Expand All @@ -84,7 +83,7 @@ describe('test/tgz/uncompress_stream.test.js', () => {
const destDir = path.join(os.tmpdir(), uuid.v4());

const uncompressStream = new compressing.tgz.UncompressStream({ source: sourceBuffer });
mkdirp.sync(destDir);
fs.mkdirSync(destDir, { recursive: true });

uncompressStream.on('finish', () => {
const res = dircompare.compareSync(originalDir, path.join(destDir, 'xxx'));
Expand All @@ -101,7 +100,7 @@ describe('test/tgz/uncompress_stream.test.js', () => {
.then(next)
.catch(done);
} else { // directory
mkdirp(path.join(destDir, header.name), err => {
fs.mkdir(path.join(destDir, header.name), { recursive: true }, err => {
if (err) return done(err);
stream.resume();
});
Expand All @@ -115,7 +114,7 @@ describe('test/tgz/uncompress_stream.test.js', () => {
const destDir = path.join(os.tmpdir(), uuid.v4());

const uncompressStream = new compressing.tgz.UncompressStream({ source: sourceStream });
mkdirp.sync(destDir);
fs.mkdirSync(destDir, { recursive: true });

uncompressStream.on('finish', () => {
const res = dircompare.compareSync(originalDir, path.join(destDir, 'xxx'));
Expand All @@ -135,7 +134,7 @@ describe('test/tgz/uncompress_stream.test.js', () => {
.then(next)
.catch(done);
} else { // directory
mkdirp(path.join(destDir, header.name), err => {
fs.mkdir(path.join(destDir, header.name), { recursive: true }, err => {
if (err) return done(err);
stream.resume();
});
Expand Down
13 changes: 2 additions & 11 deletions test/util.js
Original file line number Diff line number Diff line change
@@ -1,14 +1,5 @@
const stream = require('stream');
const pump = require('pump');

// impl promise pipeline on Node.js 14
const pipelinePromise = stream.promises?.pipeline ?? function pipeline(...args) {
return new Promise((resolve, reject) => {
pump(...args, err => {
if (err) return reject(err);
resolve();
});
});
};
const pipelinePromise = stream.promises.pipeline;

exports.pipelinePromise = pipelinePromise;
module.exports = { pipelinePromise };
2 changes: 1 addition & 1 deletion test/zip/file_stream.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ const fs = require('fs');
const os = require('os');
const path = require('path');
const uuid = require('uuid');
const pump = require('pump');
const { pipeline: pump } = require('stream');
const compressing = require('../..');
const assert = require('assert');

Expand Down
Loading