gzip-all
Version:
Create .gz files for all files in a folder
26 lines (21 loc) • 686 B
JavaScript
const zlib = require('zlib')
const fs = require('fs')
const denodeify = require('then-denodeify')
const promiseMap = require('p-map')
const glob = denodeify(require('glob'))
module.exports = function gzipAllFiles(path, options) {
return glob(path, options).then(files => {
return promiseMap(files, gzipFile, { concurrency: 5 })
})
}
function gzipFile(file) {
return new Promise((resolve, reject) => {
const gzip = zlib.createGzip({ level: zlib.Z_BEST_COMPRESSION })
const gzippedFileName = file + '.gz'
fs.createReadStream(file)
.on('error', reject)
.pipe(gzip)
.pipe(fs.createWriteStream(gzippedFileName))
.on('finish', () => resolve(gzippedFileName))
})
}