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