optimise zip compression

This commit is contained in:
gozzy 2022-09-21 04:08:59 +00:00
parent e502259cdb
commit b277b603c9
119 changed files with 30 additions and 39 deletions

View file

@ -1,17 +1,37 @@
import fs from 'fs'
import zipper from 'zip-local'
import Jszip from 'jszip'
const compressionConfig = {
type: "nodebuffer",
compression: "DEFLATE",
compressionOptions: {
level: 9
}
}
const fileConfig = {
binary: true,
compression: "DEFLATE"
}
export async function save(filePath) {
const jszip = new Jszip()
const directories = filePath.split('/')
const fileName = directories[directories.length - 1]
export function save(fileName) {
try {
zipper.sync
.zip(`${fileName}`)
.compress()
.save(`${fileName}.zip`)
const data = fs.readFileSync(`${filePath}`)
await jszip.file(`${fileName}`, data, fileConfig)
await jszip.generateNodeStream({
...compressionConfig,
streamFiles: true
})
.pipe(fs.createWriteStream(`${filePath}.zip`))
fs.unlinkSync(fileName)
return true
} catch (err) {
console.log('on save error', fileName, err.message)
console.log('on save error', filePath, err.message)
return false
}
}