add deflate_level to config
This commit is contained in:
parent
7e1731f2bb
commit
7286116f1c
|
@ -30,6 +30,8 @@ export default {
|
|||
encryption_cipher: enums.symmetric.aes256,
|
||||
/** @property {Integer} compression Default compression algorithm {@link module:enums.compression} */
|
||||
compression: enums.compression.uncompressed,
|
||||
/** @property {Integer} deflate_level Default zip/zlib compression level, between 1 and 9 */
|
||||
deflate_level: 6,
|
||||
|
||||
/**
|
||||
* Use Authenticated Encryption with Additional Data (AEAD) protection for symmetric encryption.
|
||||
|
|
|
@ -31,6 +31,7 @@
|
|||
*/
|
||||
|
||||
import pako from 'pako';
|
||||
import config from '../config';
|
||||
import enums from '../enums.js';
|
||||
import util from '../util.js';
|
||||
import Bzip2 from '../compression/bzip2.build.js';
|
||||
|
@ -38,6 +39,12 @@ import Bzip2 from '../compression/bzip2.build.js';
|
|||
const nodeZlib = util.getNodeZlib();
|
||||
const Buffer = util.getNodeBuffer();
|
||||
|
||||
function node_zlib(func, options = {}) {
|
||||
return function (data) {
|
||||
return func(data, options);
|
||||
};
|
||||
}
|
||||
|
||||
function pako_zlib(constructor, options = {}) {
|
||||
return function(data) {
|
||||
const obj = new constructor(options);
|
||||
|
@ -51,23 +58,23 @@ let decompress_fns;
|
|||
if (nodeZlib) { // Use Node native zlib for DEFLATE compression/decompression
|
||||
compress_fns = {
|
||||
// eslint-disable-next-line no-sync
|
||||
zip: nodeZlib.deflateRawSync,
|
||||
zip: node_zlib(nodeZlib.deflateRawSync, { level: config.deflate_level }),
|
||||
// eslint-disable-next-line no-sync
|
||||
zlib: nodeZlib.deflateSync,
|
||||
zlib: node_zlib(nodeZlib.deflateSync, { level: config.deflate_level }),
|
||||
bzip2: Bzip2.compressFile
|
||||
};
|
||||
|
||||
decompress_fns = {
|
||||
// eslint-disable-next-line no-sync
|
||||
zip: nodeZlib.inflateRawSync,
|
||||
zip: node_zlib(nodeZlib.inflateRawSync),
|
||||
// eslint-disable-next-line no-sync
|
||||
zlib: nodeZlib.inflateSync,
|
||||
zlib: node_zlib(nodeZlib.inflateSync),
|
||||
bzip2: Bzip2.decompressFile
|
||||
};
|
||||
} else { // Use JS fallbacks
|
||||
compress_fns = {
|
||||
zip: pako_zlib(pako.Deflate, { raw: true }),
|
||||
zlib: pako_zlib(pako.Deflate),
|
||||
zip: pako_zlib(pako.Deflate, { raw: true, level: config.deflate_level }),
|
||||
zlib: pako_zlib(pako.Deflate, { level: config.deflate_level }),
|
||||
bzip2: Bzip2.compressFile
|
||||
};
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user