Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

gzipper

Package Overview
Dependencies
Maintainers
1
Versions
73
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

gzipper - npm Package Compare versions

Comparing version 3.2.1 to 3.3.0

dist/src/compressions/Deflate.d.ts

34

dist/index.js

@@ -23,5 +23,12 @@ #!/usr/bin/env node

.option('-t, --threshold <number>', 'exclude assets smaller than this byte size. 0 (default)', function (value) { return parseInt(value); })
.option('--gzip-level <number>', 'gzip compression level 6 (default), 0 (no compression) - 9 (best compression)', function (value) { return parseInt(value); })
.option('--gzip-memory-level <number>', 'amount of memory which will be allocated for compression 8 (default), 1 (minimum memory) - 9 (maximum memory)', function (value) { return parseInt(value); })
.option('--gzip-strategy <number>', 'compression strategy 0 (default), 1 (filtered), 2 (huffman only), 3 (RLE), 4 (fixed)', function (value) { return parseInt(value); })
// TODO: Remove @deprecated --gzip-level
.option('--gzip-level <number> (deprecated)', 'gzip compression level 6 (default), 0 (no compression) - 9 (best compression)', function (value) { return parseInt(value); })
.option('--level <number>', 'compression level 6 (default), 0 (no compression) - 9 (best compression)', function (value) { return parseInt(value); })
// TODO: Remove @deprecated --gzip-memory-level
.option('--gzip-memory-level <number> (deprecated)', 'amount of memory which will be allocated for compression 8 (default), 1 (minimum memory) - 9 (maximum memory)', function (value) { return parseInt(value); })
.option('--memory-level <number>', 'amount of memory which will be allocated for compression 8 (default), 1 (minimum memory) - 9 (maximum memory)', function (value) { return parseInt(value); })
// TODO: Remove @deprecated --gzip-strategy
.option('--gzip-strategy <number> (deprecated)', 'compression strategy 0 (default), 1 (filtered), 2 (huffman only), 3 (RLE), 4 (fixed)', function (value) { return parseInt(value); })
.option('--strategy <number>', 'compression strategy 0 (default), 1 (filtered), 2 (huffman only), 3 (RLE), 4 (fixed)', function (value) { return parseInt(value); })
.option('--deflate', 'enable deflate compression')
.option('--brotli', 'enable brotli compression, Node.js >= v11.7.0')

@@ -55,6 +62,16 @@ .option('--brotli-param-mode <value>', 'default, text (for UTF-8 text), font (for WOFF 2.0 fonts)')

0,
gzipLevel: parseInt(this.env.GZIPPER_GZIP_LEVEL) || commander_1.default.gzipLevel,
gzipMemoryLevel: parseInt(this.env.GZIPPER_GZIP_MEMORY_LEVEL) ||
// TODO: Remove @deprecated GZIPPER_GZIP_LEVEL, gzipLevel
level: parseInt(this.env.GZIPPER_LEVEL) ||
commander_1.default.level ||
parseInt(this.env.GZIPPER_GZIP_LEVEL) ||
commander_1.default.gzipLevel,
// TODO: Remove @deprecated GZIPPER_GZIP_MEMORY_LEVEL, gzipMemoryLevel
memoryLevel: parseInt(this.env.GZIPPER_MEMORY_LEVEL) ||
commander_1.default.memoryLevel ||
parseInt(this.env.GZIPPER_GZIP_MEMORY_LEVEL) ||
commander_1.default.gzipMemoryLevel,
gzipStrategy: parseInt(this.env.GZIPPER_GZIP_STRATEGY) ||
// TODO: Remove @deprecated GZIPPER_GZIP_STRATEGY, gzipStrategy
strategy: parseInt(this.env.GZIPPER_STRATEGY) ||
commander_1.default.strategy ||
parseInt(this.env.GZIPPER_GZIP_STRATEGY) ||
commander_1.default.gzipStrategy,

@@ -64,2 +81,5 @@ brotli: this.env.GZIPPER_BROTLI

: commander_1.default.brotli,
deflate: this.env.GZIPPER_DEFLATE
? !!parseInt(this.env.GZIPPER_DEFLATE)
: commander_1.default.deflate,
brotliParamMode: this.env.GZIPPER_BROTLI_PARAM_MODE || commander_1.default.brotliParamMode,

@@ -108,2 +128,2 @@ brotliQuality: parseInt(this.env.GZIPPER_BROTLI_QUALITY) ||

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFDQSx3REFBZ0M7QUFFaEMseUNBQXdDO0FBRXhDLElBQU0sT0FBTyxHQUFHLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLE9BQU8sQ0FBQztBQUVsRDtJQUFBO1FBSW1CLFNBQUksR0FBYSxPQUFPLENBQUMsSUFBSSxDQUFDO1FBQzlCLFFBQUcsR0FBc0IsT0FBTyxDQUFDLEdBQUcsQ0FBQztJQStJeEQsQ0FBQztJQTdJUSwwQkFBVSxHQUFqQjtRQUNFLG1CQUFPO2FBQ0osT0FBTyxDQUFDLE9BQU8sQ0FBQzthQUNoQixLQUFLLENBQUMsK0JBQStCLENBQUM7YUFDdEMsTUFBTSxDQUFDLGVBQWUsRUFBRSx3QkFBd0IsQ0FBQzthQUNqRCxNQUFNLENBQ0wsNEJBQTRCLEVBQzVCLGdFQUFnRSxFQUNoRSxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FDOUI7YUFDQSxNQUFNLENBQ0wsNEJBQTRCLEVBQzVCLGtFQUFrRSxFQUNsRSxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FDOUI7YUFDQSxNQUFNLENBQ0wsMEJBQTBCLEVBQzFCLHlEQUF5RCxFQUN6RCxVQUFBLEtBQUssSUFBSSxPQUFBLFFBQVEsQ0FBQyxLQUFLLENBQUMsRUFBZixDQUFlLENBQ3pCO2FBQ0EsTUFBTSxDQUNMLHVCQUF1QixFQUN2QiwrRUFBK0UsRUFDL0UsVUFBQSxLQUFLLElBQUksT0FBQSxRQUFRLENBQUMsS0FBSyxDQUFDLEVBQWYsQ0FBZSxDQUN6QjthQUNBLE1BQU0sQ0FDTCw4QkFBOEIsRUFDOUIsK0dBQStHLEVBQy9HLFVBQUEsS0FBSyxJQUFJLE9BQUEsUUFBUSxDQUFDLEtBQUssQ0FBQyxFQUFmLENBQWUsQ0FDekI7YUFDQSxNQUFNLENBQ0wsMEJBQTBCLEVBQzFCLHNGQUFzRixFQUN0RixVQUFBLEtBQUssSUFBSSxPQUFBLFFBQVEsQ0FBQyxLQUFLLENBQUMsRUFBZixDQUFlLENBQ3pCO2FBQ0EsTUFBTSxDQUFDLFVBQVUsRUFBRSwrQ0FBK0MsQ0FBQzthQUNuRSxNQUFNLENBQ0wsNkJBQTZCLEVBQzdCLDJEQUEyRCxDQUM1RDthQUNBLE1BQU0sQ0FDTCwyQkFBMkIsRUFDM0IsaURBQWlELEVBQ2pELFVBQUEsS0FBSyxJQUFJLE9BQUEsUUFBUSxDQUFDLEtBQUssQ0FBQyxFQUFmLENBQWUsQ0FDekI7YUFDQSxNQUFNLENBQ0wsNkJBQTZCLEVBQzdCLGlDQUFpQyxFQUNqQyxVQUFBLEtBQUssSUFBSSxPQUFBLFFBQVEsQ0FBQyxLQUFLLENBQUMsRUFBZixDQUFlLENBQ3pCO2FBQ0EsTUFBTSxDQUNMLDhCQUE4QixFQUM5QiwwRUFBMEUsQ0FDM0U7YUFDQSxNQUFNLENBQUMsRUFBRSxFQUFFLFFBQVEsQ0FBQzthQUNwQixNQUFNLENBQUMsRUFBRSxFQUFFLHVCQUF1QixDQUFDO2FBQ25DLE1BQU0sQ0FBQyxFQUFFLEVBQUUsdUJBQXVCLENBQUM7YUFDbkMsTUFBTSxDQUFDLEVBQUUsRUFBRSxtREFBbUQsQ0FBQzthQUMvRCxNQUFNLENBQUMsRUFBRSxFQUFFLDJCQUEyQixDQUFDO2FBQ3ZDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsVUFBVSxDQUFDO2FBQ3RCLE1BQU0sQ0FBQyxFQUFFLEVBQUUsZ0NBQWdDLENBQUM7YUFDNUMsTUFBTSxDQUFDLEVBQUUsRUFBRSw0Q0FBNEMsQ0FBQzthQUN4RCxNQUFNLENBQUMsRUFBRSxFQUFFLHNEQUFzRCxDQUFDO2FBQ2xFLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO2FBQ2hCLGtCQUFrQixFQUFFLENBQUM7UUFFbEIsSUFBQSw2QkFBbUMsRUFBbEMsY0FBTSxFQUFFLGtCQUEwQixDQUFDO1FBQzFDLElBQU0sT0FBTyxHQUFrQjtZQUM3QixPQUFPLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxlQUFlO2dCQUMvQixDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLGVBQXlCLENBQUM7Z0JBQ2hELENBQUMsQ0FBQyxtQkFBTyxDQUFDLE9BQU87WUFDbkIsT0FBTyxFQUNMLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxlQUF5QixDQUFDO2dCQUN0RCxtQkFBTyxDQUFDLE9BQU87WUFDakIsT0FBTyxFQUNMLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxlQUF5QixDQUFDO2dCQUN0RCxtQkFBTyxDQUFDLE9BQU87WUFDakIsU0FBUyxFQUNQLFFBQVEsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLGlCQUEyQixDQUFDO2dCQUM5QyxtQkFBTyxDQUFDLFNBQVM7Z0JBQ2pCLENBQUM7WUFDSCxTQUFTLEVBQ1AsUUFBUSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsa0JBQTRCLENBQUMsSUFBSSxtQkFBTyxDQUFDLFNBQVM7WUFDdEUsZUFBZSxFQUNiLFFBQVEsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLHlCQUFtQyxDQUFDO2dCQUN0RCxtQkFBTyxDQUFDLGVBQWU7WUFDekIsWUFBWSxFQUNWLFFBQVEsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLHFCQUErQixDQUFDO2dCQUNsRCxtQkFBTyxDQUFDLFlBQVk7WUFDdEIsTUFBTSxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsY0FBYztnQkFDN0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxjQUF3QixDQUFDO2dCQUMvQyxDQUFDLENBQUMsbUJBQU8sQ0FBQyxNQUFNO1lBQ2xCLGVBQWUsRUFDYixJQUFJLENBQUMsR0FBRyxDQUFDLHlCQUF5QixJQUFJLG1CQUFPLENBQUMsZUFBZTtZQUMvRCxhQUFhLEVBQ1gsUUFBUSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsc0JBQWdDLENBQUM7Z0JBQ25ELG1CQUFPLENBQUMsYUFBYTtZQUN2QixjQUFjLEVBQ1osUUFBUSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsd0JBQWtDLENBQUM7Z0JBQ3JELG1CQUFPLENBQUMsY0FBYztZQUN4QixnQkFBZ0IsRUFDZCxJQUFJLENBQUMsR0FBRyxDQUFDLDBCQUEwQixJQUFJLG1CQUFPLENBQUMsZ0JBQWdCO1NBQ2xFLENBQUM7UUFFRixJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztRQUNyQixJQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQztRQUM3QixJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztRQUN2QixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCw0QkFBNEI7SUFDckIsNkJBQWEsR0FBcEI7UUFBQSxpQkFZQztRQVhDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQXdCLENBQUMsQ0FBQyxPQUFPLENBQUMsVUFBQSxHQUFHO1lBQ3BELElBQ0csS0FBSSxDQUFDLE9BQXlCLENBQUMsR0FBRyxDQUFDLEtBQUssU0FBUztnQkFDakQsS0FBSSxDQUFDLE9BQXlCLENBQUMsR0FBRyxDQUFDO29CQUNqQyxLQUFJLENBQUMsT0FBeUIsQ0FBQyxHQUFHLENBQUMsRUFDdEM7Z0JBQ0EsT0FBUSxLQUFJLENBQUMsT0FBeUIsQ0FBQyxHQUFHLENBQUMsQ0FBQzthQUM3QztRQUNILENBQUMsQ0FBQyxDQUFDO1FBRUgsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRU0scUJBQUssR0FBWjtRQUNFLElBQU0sT0FBTyxHQUFHLElBQUksaUJBQU8sQ0FDekIsSUFBSSxDQUFDLE1BQU0sRUFDWCxJQUFJLENBQUMsVUFBVSxFQUNkLElBQUksQ0FBQyxPQUF5QixJQUFJLEVBQUUsQ0FDdEMsQ0FBQztRQUNGLE9BQU8sQ0FBQyxRQUFRLEVBQUUsQ0FBQyxLQUFLLENBQUMsVUFBQSxHQUFHLElBQUksT0FBQSxPQUFPLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxFQUFsQixDQUFrQixDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUVPLDZCQUFhLEdBQXJCLFVBQXNCLEtBQWE7UUFDakMsSUFBSSxLQUFLLEVBQUU7WUFDVCxPQUFPLEtBQUssQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLFVBQUEsSUFBSSxJQUFJLE9BQUEsTUFBSSxJQUFJLENBQUMsSUFBSSxFQUFJLEVBQWpCLENBQWlCLENBQUMsQ0FBQztTQUN4RDtRQUVELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUNILFlBQUM7QUFBRCxDQUFDLEFBcEpELElBb0pDO0FBcEpZLHNCQUFLO0FBc0psQixJQUFJLE9BQU8sQ0FBQyxHQUFHLENBQUMsUUFBUSxLQUFLLFNBQVMsRUFBRTtJQUN0QyxJQUFJLEtBQUssRUFBRTtTQUNSLFVBQVUsRUFBRTtTQUNaLGFBQWEsRUFBRTtTQUNmLEtBQUssRUFBRSxDQUFDO0NBQ1oifQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFDQSx3REFBZ0M7QUFFaEMseUNBQXdDO0FBRXhDLElBQU0sT0FBTyxHQUFHLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLE9BQU8sQ0FBQztBQUVsRDtJQUFBO1FBSW1CLFNBQUksR0FBYSxPQUFPLENBQUMsSUFBSSxDQUFDO1FBQzlCLFFBQUcsR0FBc0IsT0FBTyxDQUFDLEdBQUcsQ0FBQztJQStLeEQsQ0FBQztJQTdLUSwwQkFBVSxHQUFqQjtRQUNFLG1CQUFPO2FBQ0osT0FBTyxDQUFDLE9BQU8sQ0FBQzthQUNoQixLQUFLLENBQUMsK0JBQStCLENBQUM7YUFDdEMsTUFBTSxDQUFDLGVBQWUsRUFBRSx3QkFBd0IsQ0FBQzthQUNqRCxNQUFNLENBQ0wsNEJBQTRCLEVBQzVCLGdFQUFnRSxFQUNoRSxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FDOUI7YUFDQSxNQUFNLENBQ0wsNEJBQTRCLEVBQzVCLGtFQUFrRSxFQUNsRSxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FDOUI7YUFDQSxNQUFNLENBQ0wsMEJBQTBCLEVBQzFCLHlEQUF5RCxFQUN6RCxVQUFBLEtBQUssSUFBSSxPQUFBLFFBQVEsQ0FBQyxLQUFLLENBQUMsRUFBZixDQUFlLENBQ3pCO1lBQ0Qsd0NBQXdDO2FBQ3ZDLE1BQU0sQ0FDTCxvQ0FBb0MsRUFDcEMsK0VBQStFLEVBQy9FLFVBQUEsS0FBSyxJQUFJLE9BQUEsUUFBUSxDQUFDLEtBQUssQ0FBQyxFQUFmLENBQWUsQ0FDekI7YUFDQSxNQUFNLENBQ0wsa0JBQWtCLEVBQ2xCLDBFQUEwRSxFQUMxRSxVQUFBLEtBQUssSUFBSSxPQUFBLFFBQVEsQ0FBQyxLQUFLLENBQUMsRUFBZixDQUFlLENBQ3pCO1lBQ0QsK0NBQStDO2FBQzlDLE1B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
{
"name": "gzipper",
"version": "3.2.1",
"version": "3.3.0",
"description": "CLI for compressing files.",

@@ -5,0 +5,0 @@ "main": "dist/index.js",

@@ -7,7 +7,7 @@ /// <reference types="node" />

/**
* Brotli
* Brotli compression
*/
export declare class BrotliCompression extends Compression {
readonly compressionName = "BROTLI";
readonly ext = "br";
private compressionOptions;
/**

@@ -18,2 +18,6 @@ * Creates an instance of BrotliCompression

/**
* Returns brotli compression instance in closure.
*/
getCompression(): () => zlib.BrotliCompress;
/**
* Returns human-readable brotli compression options info.

@@ -23,13 +27,9 @@ */

/**
* Returns brotli compression instance in closure.
*/
getCompression(): () => zlib.BrotliCompress;
/**
* Build brotli options object [compressionOptions].
*/
private selectCompression;
protected selectCompression(): void;
/**
* Returns human-readable brotli option name.
*/
private getBrotliOptionName;
protected getBrotliOptionName(index: string): string | undefined;
/**

@@ -36,0 +36,0 @@ * Check if brotli compression is exists on current Node.js version.

@@ -22,3 +22,3 @@ "use strict";

/**
* Brotli
* Brotli compression
*/

@@ -32,20 +32,8 @@ var BrotliCompression = /** @class */ (function (_super) {

var _this = _super.call(this, options, logger) || this;
_this.compressionName = 'BROTLI';
_this.ext = 'br';
_this.compressionOptions = {};
_this.availability();
_this.selectCompression();
return _this;
}
/**
* Returns human-readable brotli compression options info.
*/
BrotliCompression.prototype.readableOptions = function () {
var options = '';
for (var _i = 0, _a = Object.entries(this.compressionOptions); _i < _a.length; _i++) {
var _b = _a[_i], key = _b[0], value = _b[1];
options += this.getBrotliOptionName(parseInt(key)) + ": " + value + ", ";
}
return "BROTLI -> " + options.slice(0, -2);
};
/**
* Returns brotli compression instance in closure.

@@ -62,2 +50,8 @@ */

/**
* Returns human-readable brotli compression options info.
*/
BrotliCompression.prototype.readableOptions = function () {
return _super.prototype.readableOptions.call(this, this.getBrotliOptionName.bind(this));
};
/**
* Build brotli options object [compressionOptions].

@@ -99,3 +93,3 @@ */

BrotliCompression.prototype.getBrotliOptionName = function (index) {
switch (index) {
switch (parseInt(index)) {
case zlib_1.default.constants.BROTLI_PARAM_MODE:

@@ -122,2 +116,2 @@ return 'brotliParamMode';

exports.BrotliCompression = BrotliCompression;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQnJvdGxpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbXByZXNzaW9ucy9Ccm90bGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsOENBQXdCO0FBRXhCLDZDQUE0QztBQU01Qzs7R0FFRztBQUNIO0lBQXVDLHFDQUFXO0lBR2hEOztPQUVHO0lBQ0gsMkJBQVksT0FBc0IsRUFBRSxNQUFjO1FBQWxELFlBQ0Usa0JBQU0sT0FBTyxFQUFFLE1BQU0sQ0FBQyxTQUd2QjtRQVRlLFNBQUcsR0FBRyxJQUFJLENBQUM7UUFDbkIsd0JBQWtCLEdBQWtCLEVBQUUsQ0FBQztRQU03QyxLQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDcEIsS0FBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7O0lBQzNCLENBQUM7SUFFRDs7T0FFRztJQUNJLDJDQUFlLEdBQXRCO1FBQ0UsSUFBSSxPQUFPLEdBQUcsRUFBRSxDQUFDO1FBRWpCLEtBQTJCLFVBQXVDLEVBQXZDLEtBQUEsTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsRUFBdkMsY0FBdUMsRUFBdkMsSUFBdUMsRUFBRTtZQUF6RCxJQUFBLFdBQVksRUFBWCxXQUFHLEVBQUUsYUFBSztZQUNwQixPQUFPLElBQU8sSUFBSSxDQUFDLG1CQUFtQixDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxVQUFLLEtBQUssT0FBSSxDQUFDO1NBQ3JFO1FBRUQsT0FBTyxlQUFhLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFHLENBQUM7SUFDN0MsQ0FBQztJQUVEOztPQUVHO0lBQ0ksMENBQWMsR0FBckI7UUFBQSxpQkFLQztRQUpDLE9BQU87WUFDTCxPQUFBLGNBQUksQ0FBQyxvQkFBb0IsQ0FBQztnQkFDeEIsTUFBTSxFQUFFLEtBQUksQ0FBQyxrQkFBa0I7YUFDaEMsQ0FBQztRQUZGLENBRUUs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
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQnJvdGxpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbXByZXNzaW9ucy9Ccm90bGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsOENBQXdCO0FBRXhCLDZDQUE0QztBQUk1Qzs7R0FFRztBQUNIO0lBQXVDLHFDQUFXO0lBR2hEOztPQUVHO0lBQ0gsMkJBQVksT0FBc0IsRUFBRSxNQUFjO1FBQWxELFlBQ0Usa0JBQU0sT0FBTyxFQUFFLE1BQU0sQ0FBQyxTQUV2QjtRQVJlLHFCQUFlLEdBQUcsUUFBUSxDQUFDO1FBQzNCLFNBQUcsR0FBRyxJQUFJLENBQUM7UUFNekIsS0FBSSxDQUFDLFlBQVksRUFBRSxDQUFDOztJQUN0QixDQUFDO0lBRUQ7O09BRUc7SUFDSSwwQ0FBYyxHQUFyQjtRQUFBLGlCQUtDO1FBSkMsT0FBTztZQUNMLE9BQUEsY0FBSSxDQUFDLG9CQUFvQixDQUFDO2dCQUN4QixNQUFNLEVBQUUsS0FBSSxDQUFDLGtCQUFrQjthQUNoQyxDQUFDO1FBRkYsQ0FFRSxDQUFDO0lBQ1AsQ0FBQztJQUVEOztPQUVHO0lBQ0ksMkNBQWUsR0FBdEI7UUFDRSxPQUFPLGlCQUFNLGVBQWUsWUFBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDcEUsQ0FBQztJQUVEOztPQUVHO0lBQ08sNkNBQWlCLEdBQTNCO1FBQ0UsSUFBTSxPQUFPLEdBQWtCLEVBQUUsQ0FBQztRQUVsQyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsZUFBZSxLQUFLLFNBQVMsRUFBRTtZQUM5QyxRQUFRLElBQUksQ0FBQyxPQUFPLENBQUMsZUFBZSxFQUFFO2dCQUNwQyxLQUFLLFNBQVM7b0JBQ1osT0FBTyxDQUFDLGNBQUksQ0FBQyxTQUFTLENBQUMsaUJBQWlCLENBQUM7d0JBQ3ZDLGNBQUksQ0FBQyxTQUFTLENBQUMsbUJBQW1CLENBQUM7b0JBQ3JDLE1BQU07Z0JBRVIsS0FBSyxNQUFNO29CQUNULE9BQU8sQ0FBQyxjQUFJLENBQUMsU0FBUyxDQUFDLGlCQUFpQixDQUFDO3dCQUN2QyxjQUFJLENBQUMsU0FBUyxDQUFDLGdCQUFnQixDQUFDO29CQUNsQyxNQUFNO2dCQUVSLEtBQUssTUFBTTtvQkFDVCxPQUFPLENBQUMsY0FBSSxDQUFDLFNBQVMsQ0FBQyxpQkFBaUIsQ0FBQzt3QkFDdkMsY0FBSSxDQUFDLFNBQVMsQ0FBQyxnQkFBZ0IsQ0FBQztvQkFDbEMsTUFBTTtnQkFFUjtvQkFDRSxPQUFPLENBQUMsY0FBSSxDQUFDLFNBQVMsQ0FBQyxpQkFBaUIsQ0FBQzt3QkFDdkMsY0FBSSxDQUFDLFNBQVMsQ0FBQyxtQkFBbUIsQ0FBQztvQkFDckMsTUFBTTthQUNUO1NBQ0Y7UUFFRCxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxLQUFLLFNBQVMsRUFBRTtZQUM1QyxPQUFPLENBQUMsY0FBSSxDQUFDLFNBQVMsQ0FBQyxvQkFBb0IsQ0FBQyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDO1NBQzNFO1FBRUQsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLGNBQWMsS0FBSyxTQUFTLEVBQUU7WUFDN0MsT0FBTyxDQUNMLGNBQUksQ0FBQyxTQUFTLENBQUMsc0JBQXNCLENBQ3RDLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUM7U0FDakM7UUFDRCxJQUFJLENBQUMsa0JBQWtCLEdBQUcsT0FBTyxDQUFDO0lBQ3BDLENBQUM7SUFFRDs7T0FFRztJQUNPLCtDQUFtQixHQUE3QixVQUE4QixLQUFhO1FBQ3pDLFFBQVEsUUFBUSxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ3ZCLEtBQUssY0FBSSxDQUFDLFNBQVMsQ0FBQyxpQkFBaUI7Z0JBQ25DLE9BQU8saUJBQWlCLENBQUM7WUFFM0IsS0FBSyxjQUFJLENBQUMsU0FBUyxDQUFDLG9CQUFvQjtnQkFDdEMsT0FBTyxlQUFlLENBQUM7WUFFekIsS0FBSyxjQUFJLENBQUMsU0FBUyxDQUFDLHNCQUFzQjtnQkFDeEMsT0FBTyxnQkFBZ0IsQ0FBQztTQUMzQjtJQUNILENBQUM7SUFFRDs7T0FFRztJQUNLLHdDQUFZLEdBQXBCO1FBQ0UsSUFBSSxPQUFPLGNBQUksQ0FBQyxvQkFBb0IsS0FBSyxVQUFVLEVBQUU7WUFDbkQsSUFBTSxPQUFPLEdBQUcsNERBQTRELENBQUM7WUFDN0UsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxDQUFDO1lBQ2pDLE1BQU0sSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7U0FDMUI7SUFDSCxDQUFDO0lBQ0gsd0JBQUM7QUFBRCxDQUFDLEFBaEdELENBQXVDLHlCQUFXLEdBZ0dqRDtBQWhHWSw4Q0FBaUIifQ==
/// <reference types="node" />
import zlib from 'zlib';
import { GlobalOptions } from '../interfaces';
import { GlobalOptions, CompressionOptions, BrotliOptions } from '../interfaces';
import { Logger } from '../Logger';
export declare abstract class Compression {
abstract ext: string;
abstract compressionName: string;
protected readonly options: GlobalOptions;
protected readonly logger: Logger;
protected compressionOptions: CompressionOptions | BrotliOptions;
/**

@@ -13,9 +16,13 @@ * Creates an instance of Compression.

/**
* Returns a compression instance in closure.
*/
abstract getCompression(): () => zlib.BrotliCompress | zlib.Gzip;
/**
* Returns human-readable compression options info.
*/
abstract readableOptions(): string;
readableOptions(keyWrapper?: (key: string) => string | undefined): string;
/**
* Returns a compression instance in closure.
* Build compression options object [compressionOptions].
*/
abstract getCompression(): () => zlib.BrotliCompress | zlib.Gzip;
protected selectCompression(): void;
}

@@ -8,8 +8,38 @@ "use strict";

function Compression(options, logger) {
this.compressionOptions = {};
this.options = options;
this.logger = logger;
this.selectCompression();
}
/**
* Returns human-readable compression options info.
*/
Compression.prototype.readableOptions = function (keyWrapper) {
if (keyWrapper === void 0) { keyWrapper = function (key) { return key; }; }
var options = '';
for (var _i = 0, _a = Object.entries(this.compressionOptions); _i < _a.length; _i++) {
var _b = _a[_i], key = _b[0], value = _b[1];
options += keyWrapper(key) + ": " + value + ", ";
}
return this.compressionName + " -> " + options.slice(0, -2);
};
/**
* Build compression options object [compressionOptions].
*/
Compression.prototype.selectCompression = function () {
var options = {};
if (this.options.level !== undefined) {
options.level = this.options.level;
}
if (this.options.memoryLevel !== undefined) {
options.memLevel = this.options.memoryLevel;
}
if (this.options.strategy !== undefined) {
options.strategy = this.options.strategy;
}
this.compressionOptions = options;
};
return Compression;
}());
exports.Compression = Compression;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29tcHJlc3Npb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tcHJlc3Npb25zL0NvbXByZXNzaW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBS0E7SUFHRTs7T0FFRztJQUNILHFCQUFZLE9BQXNCLEVBQUUsTUFBYztRQUNoRCxJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztRQUN2QixJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztJQUN2QixDQUFDO0lBV0gsa0JBQUM7QUFBRCxDQUFDLEFBcEJELElBb0JDO0FBcEJxQixrQ0FBVyJ9
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29tcHJlc3Npb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tcHJlc3Npb25zL0NvbXByZXNzaW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBU0E7SUFNRTs7T0FFRztJQUNILHFCQUFZLE9BQXNCLEVBQUUsTUFBYztRQUp4Qyx1QkFBa0IsR0FBdUMsRUFBRSxDQUFDO1FBS3BFLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFPRDs7T0FFRztJQUNJLHFDQUFlLEdBQXRCLFVBQ0UsVUFFNEI7UUFGNUIsMkJBQUEsRUFBQSx1QkFDRSxHQUFXLElBQ1ksT0FBQSxHQUFHLEVBQUgsQ0FBRztRQUU1QixJQUFJLE9BQU8sR0FBRyxFQUFFLENBQUM7UUFFakIsS0FBMkIsVUFBdUMsRUFBdkMsS0FBQSxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxFQUF2QyxjQUF1QyxFQUF2QyxJQUF1QyxFQUFFO1lBQXpELElBQUEsV0FBWSxFQUFYLFdBQUcsRUFBRSxhQUFLO1lBQ3BCLE9BQU8sSUFBTyxVQUFVLENBQUMsR0FBRyxDQUFDLFVBQUssS0FBSyxPQUFJLENBQUM7U0FDN0M7UUFFRCxPQUFVLElBQUksQ0FBQyxlQUFlLFlBQU8sT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUcsQ0FBQztJQUM5RCxDQUFDO0lBRUQ7O09BRUc7SUFDTyx1Q0FBaUIsR0FBM0I7UUFDRSxJQUFNLE9BQU8sR0FBdUIsRUFBRSxDQUFDO1FBRXZDLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEtBQUssU0FBUyxFQUFFO1lBQ3BDLE9BQU8sQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUM7U0FDcEM7UUFFRCxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxLQUFLLFNBQVMsRUFBRTtZQUMxQyxPQUFPLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDO1NBQzdDO1FBRUQsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsS0FBSyxTQUFTLEVBQUU7WUFDdkMsT0FBTyxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQztTQUMxQztRQUVELElBQUksQ0FBQyxrQkFBa0IsR0FBRyxPQUFPLENBQUM7SUFDcEMsQ0FBQztJQUNILGtCQUFDO0FBQUQsQ0FBQyxBQXpERCxJQXlEQztBQXpEcUIsa0NBQVcifQ==

@@ -7,7 +7,7 @@ /// <reference types="node" />

/**
* Gzip
* Gzip compression
*/
export declare class GzipCompression extends Compression {
readonly compressionName = "GZIP";
readonly ext = "gz";
private compressionOptions;
/**

@@ -18,13 +18,5 @@ * Creates an instance of GzipCompression.

/**
* Returns human-readable gzip compression options info.
*/
readableOptions(): string;
/**
* Returns gzip compression instance in closure.
*/
getCompression(): () => zlib.Gzip;
/**
* Build gzip options object [compressionOptions].
*/
private selectCompression;
}

@@ -22,3 +22,3 @@ "use strict";

/**
* Gzip
* Gzip compression
*/

@@ -32,19 +32,7 @@ var GzipCompression = /** @class */ (function (_super) {

var _this = _super.call(this, options, logger) || this;
_this.compressionName = 'GZIP';
_this.ext = 'gz';
_this.compressionOptions = {};
_this.selectCompression();
return _this;
}
/**
* Returns human-readable gzip compression options info.
*/
GzipCompression.prototype.readableOptions = function () {
var options = '';
for (var _i = 0, _a = Object.entries(this.compressionOptions); _i < _a.length; _i++) {
var _b = _a[_i], key = _b[0], value = _b[1];
options += key + ": " + value + ", ";
}
return "GZIP -> " + options.slice(0, -2);
};
/**
* Returns gzip compression instance in closure.

@@ -56,21 +44,5 @@ */

};
/**
* Build gzip options object [compressionOptions].
*/
GzipCompression.prototype.selectCompression = function () {
var options = {};
if (this.options.gzipLevel !== undefined) {
options.level = this.options.gzipLevel;
}
if (this.options.gzipMemoryLevel !== undefined) {
options.memLevel = this.options.gzipMemoryLevel;
}
if (this.options.gzipStrategy !== undefined) {
options.strategy = this.options.gzipStrategy;
}
this.compressionOptions = options;
};
return GzipCompression;
}(Compression_1.Compression));
exports.GzipCompression = GzipCompression;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiR3ppcC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wcmVzc2lvbnMvR3ppcC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSw4Q0FBd0I7QUFFeEIsNkNBQTRDO0FBVTVDOztHQUVHO0FBQ0g7SUFBcUMsbUNBQVc7SUFHOUM7O09BRUc7SUFDSCx5QkFBWSxPQUFzQixFQUFFLE1BQWM7UUFBbEQsWUFDRSxrQkFBTSxPQUFPLEVBQUUsTUFBTSxDQUFDLFNBRXZCO1FBUmUsU0FBRyxHQUFHLElBQUksQ0FBQztRQUNuQix3QkFBa0IsR0FBZ0IsRUFBRSxDQUFDO1FBTTNDLEtBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDOztJQUMzQixDQUFDO0lBRUQ7O09BRUc7SUFDSSx5Q0FBZSxHQUF0QjtRQUNFLElBQUksT0FBTyxHQUFHLEVBQUUsQ0FBQztRQUVqQixLQUEyQixVQUF1QyxFQUF2QyxLQUFBLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEVBQXZDLGNBQXVDLEVBQXZDLElBQXVDLEVBQUU7WUFBekQsSUFBQSxXQUFZLEVBQVgsV0FBRyxFQUFFLGFBQUs7WUFDcEIsT0FBTyxJQUFPLEdBQUcsVUFBSyxLQUFLLE9BQUksQ0FBQztTQUNqQztRQUVELE9BQU8sYUFBVyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBRyxDQUFDO0lBQzNDLENBQUM7SUFFRDs7T0FFRztJQUNJLHdDQUFjLEdBQXJCO1FBQUEsaUJBRUM7UUFEQyxPQUFPLGNBQWlCLE9BQUEsY0FBSSxDQUFDLFVBQVUsQ0FBQyxLQUFJLENBQUMsa0JBQWtCLENBQUMsRUFBeEMsQ0FBd0MsQ0FBQztJQUNuRSxDQUFDO0lBRUQ7O09BRUc7SUFDSywyQ0FBaUIsR0FBekI7UUFDRSxJQUFNLE9BQU8sR0FBZ0IsRUFBRSxDQUFDO1FBRWhDLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEtBQUssU0FBUyxFQUFFO1lBQ3hDLE9BQU8sQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUM7U0FDeEM7UUFFRCxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsZUFBZSxLQUFLLFNBQVMsRUFBRTtZQUM5QyxPQUFPLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsZUFBZSxDQUFDO1NBQ2pEO1FBRUQsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksS0FBSyxTQUFTLEVBQUU7WUFDM0MsT0FBTyxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQztTQUM5QztRQUVELElBQUksQ0FBQyxrQkFBa0IsR0FBRyxPQUFPLENBQUM7SUFDcEMsQ0FBQztJQUNILHNCQUFDO0FBQUQsQ0FBQyxBQW5ERCxDQUFxQyx5QkFBVyxHQW1EL0M7QUFuRFksMENBQWUifQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiR3ppcC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wcmVzc2lvbnMvR3ppcC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSw4Q0FBd0I7QUFFeEIsNkNBQTRDO0FBSTVDOztHQUVHO0FBQ0g7SUFBcUMsbUNBQVc7SUFHOUM7O09BRUc7SUFDSCx5QkFBWSxPQUFzQixFQUFFLE1BQWM7UUFBbEQsWUFDRSxrQkFBTSxPQUFPLEVBQUUsTUFBTSxDQUFDLFNBQ3ZCO1FBUGUscUJBQWUsR0FBRyxNQUFNLENBQUM7UUFDekIsU0FBRyxHQUFHLElBQUksQ0FBQzs7SUFNM0IsQ0FBQztJQUVEOztPQUVHO0lBQ0ksd0NBQWMsR0FBckI7UUFBQSxpQkFFQztRQURDLE9BQU8sY0FBaUIsT0FBQSxjQUFJLENBQUMsVUFBVSxDQUFDLEtBQUksQ0FBQyxrQkFBa0IsQ0FBQyxFQUF4QyxDQUF3QyxDQUFDO0lBQ25FLENBQUM7SUFDSCxzQkFBQztBQUFELENBQUMsQUFoQkQsQ0FBcUMseUJBQVcsR0FnQi9DO0FBaEJZLDBDQUFlIn0=

@@ -24,2 +24,6 @@ import { GlobalOptions } from './interfaces';

/**
* Return compression instance.
*/
private getCompressionInstance;
/**
* Compile files in folder recursively.

@@ -26,0 +30,0 @@ */

@@ -51,2 +51,3 @@ "use strict";

var constants_1 = require("./constants");
var Deflate_1 = require("./compressions/Deflate");
var OUTPUT_FILE_FORMAT_REGEXP = /(\[filename\]*)|(\[hash\]*)|(\[compressExt\]*)|(\[ext\]*)/g;

@@ -81,5 +82,3 @@ /**

}
this.compressionInstance = this.options.brotli
? new Brotli_1.BrotliCompression(this.options, this.logger)
: new Gzip_1.GzipCompression(this.options, this.logger);
this.compressionInstance = this.getCompressionInstance();
this.target = path_1.default.resolve(process.cwd(), target);

@@ -128,2 +127,16 @@ this.createCompression = this.compressionInstance.getCompression();

/**
* Return compression instance.
*/
Gzipper.prototype.getCompressionInstance = function () {
if (this.options.brotli) {
return new Brotli_1.BrotliCompression(this.options, this.logger);
}
else if (this.options.deflate) {
return new Deflate_1.DeflateCompression(this.options, this.logger);
}
else {
return new Gzip_1.GzipCompression(this.options, this.logger);
}
};
/**
* Compile files in folder recursively.

@@ -304,2 +317,2 @@ */

exports.Gzipper = Gzipper;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiR3ppcHBlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9HemlwcGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsMENBQW9CO0FBQ3BCLDhDQUF3QjtBQUN4Qiw4Q0FBd0I7QUFDeEIsK0NBQTJCO0FBQzNCLGtEQUE0QjtBQUU1QixtQ0FBa0M7QUFDbEMsZ0RBQTBEO0FBQzFELDRDQUFzRDtBQUN0RCx5Q0FBK0M7QUFHL0MsSUFBTSx5QkFBeUIsR0FBRyw0REFBNEQsQ0FBQztBQUUvRjs7R0FFRztBQUNIO0lBbUJFOztPQUVHO0lBQ0gsaUJBQ0UsTUFBaUMsRUFDakMsVUFBcUMsRUFDckMsT0FBb0M7UUFBcEMsd0JBQUEsRUFBQSxVQUF5QixFQUFXO1FBeEJyQixhQUFRLEdBQUc7WUFDMUIsSUFBSSxFQUFFLGNBQUksQ0FBQyxTQUFTLENBQUMsWUFBRSxDQUFDLElBQUksQ0FBQztZQUM3QixLQUFLLEVBQUUsY0FBSSxDQUFDLFNBQVMsQ0FBQyxZQUFFLENBQUMsS0FBSyxDQUFDO1lBQy9CLE9BQU8sRUFBRSxjQUFJLENBQUMsU0FBUyxDQUFDLFlBQUUsQ0FBQyxPQUFPLENBQUM7WUFDbkMsS0FBSyxFQUFFLGNBQUksQ0FBQyxTQUFTLENBQUMsWUFBRSxDQUFDLEtBQUssQ0FBQztTQUNoQyxDQUFDO1FBQ2UsaUJBQVksR0FBRztZQUM5QixRQUFRLEVBQUUsY0FBSSxDQUFDLFNBQVMsQ0FBQyxnQkFBTSxDQUFDLFFBQVEsQ0FBQztTQUMxQyxDQUFDO1FBa0JBLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxlQUFNLENBQUMsT0FBTyxDQUFDLE9BQWtCLENBQUMsQ0FBQztRQUNyRCxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ1gsSUFBTSxPQUFPLEdBQUcsb0JBQW9CLENBQUM7WUFDckMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsT0FBTyxF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
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiR3ppcHBlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9HemlwcGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsMENBQW9CO0FBQ3BCLDhDQUF3QjtBQUN4Qiw4Q0FBd0I7QUFDeEIsK0NBQTJCO0FBQzNCLGtEQUE0QjtBQUU1QixtQ0FBa0M7QUFDbEMsZ0RBQTBEO0FBQzFELDRDQUFzRDtBQUN0RCx5Q0FBK0M7QUFFL0Msa0RBQTREO0FBRTVELElBQU0seUJBQXlCLEdBQUcsNERBQTRELENBQUM7QUFFL0Y7O0dBRUc7QUFDSDtJQXVCRTs7T0FFRztJQUNILGlCQUNFLE1BQWlDLEVBQ2pDLFVBQXFDLEVBQ3JDLE9BQW9DO1FBQXBDLHdCQUFBLEVBQUEsVUFBeUIsRUFBVztRQTVCckIsYUFBUSxHQUFHO1lBQzFCLElBQUksRUFBRSxjQUFJLENBQUMsU0FBUyxDQUFDLFlBQUUsQ0FBQyxJQUFJLENBQUM7WUFDN0IsS0FBSyxFQUFFLGNBQUksQ0FBQyxTQUFTLENBQUMsWUFBRSxDQUFDLEtBQUssQ0FBQztZQUMvQixPQUFPLEVBQUUsY0FBSSxDQUFDLFNBQVMsQ0FBQyxZQUFFLENBQUMsT0FBTyxDQUFDO1lBQ25DLEtBQUssRUFBRSxjQUFJLENBQUMsU0FBUyxDQUFDLFlBQUUsQ0FBQyxLQUFLLENBQUM7U0FDaEMsQ0FBQztRQUNlLGlCQUFZLEdBQUc7WUFDOUIsUUFBUSxFQUFFLGNBQUksQ0FBQyxTQUFTLENBQUMsZ0JBQU0sQ0FBQyxRQUFRLENBQUM7U0FDMUMsQ0FBQztRQXNCQSxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksZUFBTSxDQUFDLE9BQU8sQ0FBQyxPQUFrQixDQUFDLENBQUM7UUFDckQsSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUNYLElBQU0sT0FBTyxHQUFHLG9CQUFvQixDQUFDO1lBQ3JDLElBQUksQ0FBQyxNQUFNLENBQUMsS0FB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

@@ -0,1 +1,3 @@

/// <reference types="node" />
import zlib from 'zlib';
export interface GlobalOptions {

@@ -6,5 +8,6 @@ verbose?: boolean;

threshold: number;
gzipLevel?: number;
gzipMemoryLevel?: number;
gzipStrategy?: number;
level?: number;
memoryLevel?: number;
strategy?: number;
deflate?: boolean;
brotli?: boolean;

@@ -17,1 +20,9 @@ brotliParamMode?: string;

}
export declare type CompressionOptions = {
level?: number;
memoryLevel?: number;
strategy?: number;
} & zlib.ZlibOptions;
export declare type BrotliOptions = {
[key: number]: number;
};

@@ -35,4 +35,5 @@ #!/usr/bin/env node

)
// TODO: Remove @deprecated --gzip-level
.option(
'--gzip-level <number>',
'--gzip-level <number> (deprecated)',
'gzip compression level 6 (default), 0 (no compression) - 9 (best compression)',

@@ -42,3 +43,9 @@ value => parseInt(value),

.option(
'--gzip-memory-level <number>',
'--level <number>',
'compression level 6 (default), 0 (no compression) - 9 (best compression)',
value => parseInt(value),
)
// TODO: Remove @deprecated --gzip-memory-level
.option(
'--gzip-memory-level <number> (deprecated)',
'amount of memory which will be allocated for compression 8 (default), 1 (minimum memory) - 9 (maximum memory)',

@@ -48,6 +55,18 @@ value => parseInt(value),

.option(
'--gzip-strategy <number>',
'--memory-level <number>',
'amount of memory which will be allocated for compression 8 (default), 1 (minimum memory) - 9 (maximum memory)',
value => parseInt(value),
)
// TODO: Remove @deprecated --gzip-strategy
.option(
'--gzip-strategy <number> (deprecated)',
'compression strategy 0 (default), 1 (filtered), 2 (huffman only), 3 (RLE), 4 (fixed)',
value => parseInt(value),
)
.option(
'--strategy <number>',
'compression strategy 0 (default), 1 (filtered), 2 (huffman only), 3 (RLE), 4 (fixed)',
value => parseInt(value),
)
.option('--deflate', 'enable deflate compression')
.option('--brotli', 'enable brotli compression, Node.js >= v11.7.0')

@@ -99,8 +118,18 @@ .option(

0,
gzipLevel:
parseInt(this.env.GZIPPER_GZIP_LEVEL as string) || program.gzipLevel,
gzipMemoryLevel:
// TODO: Remove @deprecated GZIPPER_GZIP_LEVEL, gzipLevel
level:
parseInt(this.env.GZIPPER_LEVEL as string) ||
program.level ||
parseInt(this.env.GZIPPER_GZIP_LEVEL as string) ||
program.gzipLevel,
// TODO: Remove @deprecated GZIPPER_GZIP_MEMORY_LEVEL, gzipMemoryLevel
memoryLevel:
parseInt(this.env.GZIPPER_MEMORY_LEVEL as string) ||
program.memoryLevel ||
parseInt(this.env.GZIPPER_GZIP_MEMORY_LEVEL as string) ||
program.gzipMemoryLevel,
gzipStrategy:
// TODO: Remove @deprecated GZIPPER_GZIP_STRATEGY, gzipStrategy
strategy:
parseInt(this.env.GZIPPER_STRATEGY as string) ||
program.strategy ||
parseInt(this.env.GZIPPER_GZIP_STRATEGY as string) ||

@@ -111,2 +140,5 @@ program.gzipStrategy,

: program.brotli,
deflate: this.env.GZIPPER_DEFLATE
? !!parseInt(this.env.GZIPPER_DEFLATE as string)
: program.deflate,
brotliParamMode:

@@ -113,0 +145,0 @@ this.env.GZIPPER_BROTLI_PARAM_MODE || program.brotliParamMode,

{
"name": "gzipper",
"version": "3.2.1",
"version": "3.3.0",
"description": "CLI for compressing files.",

@@ -5,0 +5,0 @@ "main": "dist/index.js",

@@ -73,18 +73,19 @@ # Gzipper

| Option | ENV | Description |
| ----------------------------------- | ---------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `-V, --version` | | output the version number |
| `-v, --verbose` | `GZIPPER_VERBOSE` (0 or 1) | detailed level of logs |
| `-e, --exclude <extensions>` | `GZIPPER_EXCLUDE` | exclude file extensions from compression, example: jpeg,jpg... |
| `-i, --include <extensions>` | `GZIPPER_INCLUDE` | include file extensions for compression, example: js,css,html... |
| `-t, --threshold <number>` | `GZIPPER_THRESHOLD` | exclude assets smaller than this byte size. 0 (default) |
| `--gzip-level <number>` | `GZIPPER_GZIP_LEVEL` | gzip compression level 6 (default), 0 (no compression) - 9 (best compression) |
| `--gzip-memory-level <number>` | `GZIPPER_GZIP_MEMORY_LEVEL` | amount of memory which will be allocated for compression 8 (default), 1 (minimum memory) - 9 (maximum memory) |
| `--gzip-strategy <number>` | `GZIPPER_GZIP_STRATEGY` | compression strategy 0 (default), 1 (filtered), 2 (huffman only), 3 (RLE), 4 (fixed) |
| `--brotli` | `GZIPPER_BROTLI` (0 or 1) | enable brotli compression, Node.js >= v11.7.0 |
| `--brotli-param-mode <value>` | `GZIPPER_BROTLI_PARAM_MODE` | default, text (for UTF-8 text), font (for WOFF 2.0 fonts) |
| `--brotli-quality <number>` | `GZIPPER_BROTLI_QUALITY` | brotli compression quality 11 (default), 0 - 11 |
| `--brotli-size-hint <number>` | `GZIPPER_BROTLI_SIZE_HINT` | expected input size 0 (default) |
| `--output-file-format <value>` | `GZIPPER_OUTPUT_FILE_FORMAT` | output file format with artifacts, default format: `[filename].[ext].[compressExt]`. Where: `filename` -> name of your file, `ext` -> file extension, `compressExt` -> compress extension (.gz, .br, etc), `hash` -> uniq uuid/v4 hash. [More examples](#output-file-format) |
| `-h, --help` | | output usage information |
| Option | ENV | Description |
| -------------------------------------------------------------- | ----------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `-V, --version` | | output the version number |
| `-v, --verbose` | `GZIPPER_VERBOSE` (0 or 1) | detailed level of logs |
| `-e, --exclude <extensions>` | `GZIPPER_EXCLUDE` | exclude file extensions from compression, example: jpeg,jpg... |
| `-i, --include <extensions>` | `GZIPPER_INCLUDE` | include file extensions for compression, example: js,css,html... |
| `-t, --threshold <number>` | `GZIPPER_THRESHOLD` | exclude assets smaller than this byte size. 0 (default) |
| `--gzip-level <number>`(deprecated) or `--level` | `GZIPPER_GZIP_LEVEL`(deprecated) or `GZIPPER_LEVEL` | compression level 6 (default), 0 (no compression) - 9 (best compression) |
| `--gzip-memory-level <number>`(deprecated) or `--memory-level` | `GZIPPER_GZIP_MEMORY_LEVEL`(deprecated) or `GZIPPER_MEMORY_LEVEL` | amount of memory which will be allocated for compression 8 (default), 1 (minimum memory) - 9 (maximum memory) |
| `--gzip-strategy <number>`(deprecated) or `--strategy` | `GZIPPER_GZIP_STRATEGY`(deprecated) or `GZIPPER_STRATEGY` | compression strategy 0 (default), 1 (filtered), 2 (huffman only), 3 (RLE), 4 (fixed) |
| `--deflate` | `GZIPPER_DEFLATE` (0 or 1) | enable deflate compression |
| `--brotli` | `GZIPPER_BROTLI` (0 or 1) | enable brotli compression, Node.js >= v11.7.0 |
| `--brotli-param-mode <value>` | `GZIPPER_BROTLI_PARAM_MODE` | default, text (for UTF-8 text), font (for WOFF 2.0 fonts), only for `--brotli` |
| `--brotli-quality <number>` | `GZIPPER_BROTLI_QUALITY` | brotli compression quality 11 (default), 0 - 11, only for `--brotli` |
| `--brotli-size-hint <number>` | `GZIPPER_BROTLI_SIZE_HINT` | expected input size 0 (default), only for `--brotli` |
| `--output-file-format <value>` | `GZIPPER_OUTPUT_FILE_FORMAT` | output file format with artifacts, default format: `[filename].[ext].[compressExt]`. Where: `filename` -> name of your file, `ext` -> file extension, `compressExt` -> compress extension (.gz, .br, etc), `hash` -> uniq uuid/v4 hash. [More examples](#output-file-format) |
| `-h, --help` | | output usage information |

@@ -91,0 +92,0 @@ > ENV Variables have higher priority over CLI arguments.

@@ -5,12 +5,10 @@ import zlib from 'zlib';

import { Logger } from '../Logger';
import { GlobalOptions } from '../interfaces';
import { GlobalOptions, BrotliOptions } from '../interfaces';
type BrotliOptions = { [key: number]: number };
/**
* Brotli
* Brotli compression
*/
export class BrotliCompression extends Compression {
public readonly compressionName = 'BROTLI';
public readonly ext = 'br';
private compressionOptions: BrotliOptions = {};
/**

@@ -22,19 +20,5 @@ * Creates an instance of BrotliCompression

this.availability();
this.selectCompression();
}
/**
* Returns human-readable brotli compression options info.
*/
public readableOptions(): string {
let options = '';
for (const [key, value] of Object.entries(this.compressionOptions)) {
options += `${this.getBrotliOptionName(parseInt(key))}: ${value}, `;
}
return `BROTLI -> ${options.slice(0, -2)}`;
}
/**
* Returns brotli compression instance in closure.

@@ -50,5 +34,12 @@ */

/**
* Returns human-readable brotli compression options info.
*/
public readableOptions(): string {
return super.readableOptions(this.getBrotliOptionName.bind(this));
}
/**
* Build brotli options object [compressionOptions].
*/
private selectCompression(): void {
protected selectCompression(): void {
const options: BrotliOptions = {};

@@ -95,6 +86,4 @@

*/
private getBrotliOptionName(
index: number,
): 'brotliParamMode' | 'brotliQuality' | 'brotliSizeHint' | undefined {
switch (index) {
protected getBrotliOptionName(index: string): string | undefined {
switch (parseInt(index)) {
case zlib.constants.BROTLI_PARAM_MODE:

@@ -101,0 +90,0 @@ return 'brotliParamMode';

import zlib from 'zlib';
import { GlobalOptions } from '../interfaces';
import {
GlobalOptions,
CompressionOptions,
BrotliOptions,
} from '../interfaces';
import { Logger } from '../Logger';
export abstract class Compression {
public abstract ext: string;
public abstract compressionName: string;
protected readonly options: GlobalOptions;
protected readonly logger: Logger;
protected compressionOptions: CompressionOptions | BrotliOptions = {};
/**

@@ -15,13 +22,47 @@ * Creates an instance of Compression.

this.logger = logger;
this.selectCompression();
}
/**
* Returns a compression instance in closure.
*/
public abstract getCompression(): () => zlib.BrotliCompress | zlib.Gzip;
/**
* Returns human-readable compression options info.
*/
public abstract readableOptions(): string;
public readableOptions(
keyWrapper: (key: string) => string | undefined = (
key: string,
): string | undefined => key,
): string {
let options = '';
for (const [key, value] of Object.entries(this.compressionOptions)) {
options += `${keyWrapper(key)}: ${value}, `;
}
return `${this.compressionName} -> ${options.slice(0, -2)}`;
}
/**
* Returns a compression instance in closure.
* Build compression options object [compressionOptions].
*/
public abstract getCompression(): () => zlib.BrotliCompress | zlib.Gzip;
protected selectCompression(): void {
const options: CompressionOptions = {};
if (this.options.level !== undefined) {
options.level = this.options.level;
}
if (this.options.memoryLevel !== undefined) {
options.memLevel = this.options.memoryLevel;
}
if (this.options.strategy !== undefined) {
options.strategy = this.options.strategy;
}
this.compressionOptions = options;
}
}

@@ -7,14 +7,8 @@ import zlib from 'zlib';

type GzipOptions = {
gzipLevel?: number;
gzipMemoryLevel?: number;
gzipStrategy?: number;
} & zlib.ZlibOptions;
/**
* Gzip
* Gzip compression
*/
export class GzipCompression extends Compression {
public readonly compressionName = 'GZIP';
public readonly ext = 'gz';
private compressionOptions: GzipOptions = {};
/**

@@ -25,19 +19,5 @@ * Creates an instance of GzipCompression.

super(options, logger);
this.selectCompression();
}
/**
* Returns human-readable gzip compression options info.
*/
public readableOptions(): string {
let options = '';
for (const [key, value] of Object.entries(this.compressionOptions)) {
options += `${key}: ${value}, `;
}
return `GZIP -> ${options.slice(0, -2)}`;
}
/**
* Returns gzip compression instance in closure.

@@ -48,23 +28,2 @@ */

}
/**
* Build gzip options object [compressionOptions].
*/
private selectCompression(): void {
const options: GzipOptions = {};
if (this.options.gzipLevel !== undefined) {
options.level = this.options.gzipLevel;
}
if (this.options.gzipMemoryLevel !== undefined) {
options.memLevel = this.options.gzipMemoryLevel;
}
if (this.options.gzipStrategy !== undefined) {
options.strategy = this.options.gzipStrategy;
}
this.compressionOptions = options;
}
}

@@ -12,2 +12,3 @@ import fs from 'fs';

import { GlobalOptions } from './interfaces';
import { DeflateCompression } from './compressions/Deflate';

@@ -32,7 +33,11 @@ const OUTPUT_FILE_FORMAT_REGEXP = /(\[filename\]*)|(\[hash\]*)|(\[compressExt\]*)|(\[ext\]*)/g;

private readonly outputPath: string | undefined;
private readonly compressionInstance: BrotliCompression | GzipCompression;
private readonly compressionInstance:
| BrotliCompression
| GzipCompression
| DeflateCompression;
private readonly target: string;
private readonly createCompression:
| ReturnType<BrotliCompression['getCompression']>
| ReturnType<GzipCompression['getCompression']>;
| ReturnType<GzipCompression['getCompression']>
| ReturnType<DeflateCompression['getCompression']>;
private readonly validExtensions: string[];

@@ -57,5 +62,3 @@ /**

}
this.compressionInstance = this.options.brotli
? new BrotliCompression(this.options, this.logger)
: new GzipCompression(this.options, this.logger);
this.compressionInstance = this.getCompressionInstance();
this.target = path.resolve(process.cwd(), target);

@@ -101,2 +104,18 @@ this.createCompression = this.compressionInstance.getCompression();

/**
* Return compression instance.
*/
private getCompressionInstance():
| BrotliCompression
| DeflateCompression
| GzipCompression {
if (this.options.brotli) {
return new BrotliCompression(this.options, this.logger);
} else if (this.options.deflate) {
return new DeflateCompression(this.options, this.logger);
} else {
return new GzipCompression(this.options, this.logger);
}
}
/**
* Compile files in folder recursively.

@@ -103,0 +122,0 @@ */

@@ -0,1 +1,3 @@

import zlib from 'zlib';
export interface GlobalOptions {

@@ -6,5 +8,6 @@ verbose?: boolean;

threshold: number;
gzipLevel?: number;
gzipMemoryLevel?: number;
gzipStrategy?: number;
level?: number;
memoryLevel?: number;
strategy?: number;
deflate?: boolean;
brotli?: boolean;

@@ -17,1 +20,9 @@ brotliParamMode?: string;

}
export type CompressionOptions = {
level?: number;
memoryLevel?: number;
strategy?: number;
} & zlib.ZlibOptions;
export type BrotliOptions = { [key: number]: number };

@@ -7,3 +7,8 @@ import assert from 'assert';

import { Gzipper } from '../../../src/Gzipper';
import { COMPRESS_PATH, getFiles, clear } from '../../utils';
import {
COMPRESS_PATH,
getFiles,
clear,
COMPRESSION_EXTENSIONS,
} from '../../utils';

@@ -14,5 +19,9 @@ const describeTest = disableBrotli ? describe.skip : describe;

beforeEach(async () => {
await clear(COMPRESS_PATH, ['.gz', '.br']);
await clear(COMPRESS_PATH, COMPRESSION_EXTENSIONS);
});
afterEach(async () => {
await clear(COMPRESS_PATH, COMPRESSION_EXTENSIONS);
});
it('--brotli should emit error on compress error', () => {

@@ -203,6 +212,2 @@ const createBrotliCompress =

});
afterEach(async () => {
await clear(COMPRESS_PATH, ['.gz', '.br']);
});
});

@@ -6,14 +6,23 @@ import assert from 'assert';

import { Gzipper } from '../../../src/Gzipper';
import { COMPRESS_PATH, getFiles, clear } from '../../utils';
import {
COMPRESS_PATH,
getFiles,
clear,
COMPRESSION_EXTENSIONS,
} from '../../utils';
describe('CLI Gzipper -> Gzip compression', () => {
beforeEach(async () => {
await clear(COMPRESS_PATH, ['.gz', '.br']);
await clear(COMPRESS_PATH, COMPRESSION_EXTENSIONS);
});
it('--gzip-level, --gzip-memory-level, --gzip-strategy should change gzip configuration', async () => {
afterEach(async () => {
await clear(COMPRESS_PATH, COMPRESSION_EXTENSIONS);
});
it('--level, --memory-level, --strategy should change gzip configuration', async () => {
const options = {
gzipLevel: 6,
gzipMemoryLevel: 4,
gzipStrategy: 2,
level: 6,
memoryLevel: 4,
strategy: 2,
threshold: 0,

@@ -55,6 +64,2 @@ };

});
afterEach(async () => {
await clear(COMPRESS_PATH, ['.gz', '.br']);
});
});

@@ -16,2 +16,3 @@ import assert from 'assert';

clear,
COMPRESSION_EXTENSIONS,
} from '../utils';

@@ -26,3 +27,3 @@ import { GlobalOptions } from '../../src/interfaces';

await createFolder(COMPRESS_PATH_TARGET);
await clear(COMPRESS_PATH, ['.gz', '.br']);
await clear(COMPRESS_PATH, COMPRESSION_EXTENSIONS);
sinonSandbox = sinon.createSandbox();

@@ -34,3 +35,3 @@ });

await clear(COMPRESS_PATH_TARGET, true);
await clear(COMPRESS_PATH, ['.gz', '.br']);
await clear(COMPRESS_PATH, COMPRESSION_EXTENSIONS);
sinonSandbox.restore();

@@ -37,0 +38,0 @@ sinon.restore();

@@ -29,2 +29,96 @@ import sinon from 'sinon';

/*
* @deprecated
* TODO: Remove
* --gzip-level
* --gzip-memory-level
* --gzip-strategy
*/
it('--gzip-level, --gzip-memory-level, --gzip-strategy should update options', () => {
const cliArguments = [
'node.exe',
'index.js',
'folder_to_compress',
'folder_to_compress_out',
'--gzip-level',
'1',
'--gzip-memory-level',
'3',
'--gzip-strategy',
'5',
];
const index = new Index();
(index as any).argv = cliArguments;
sinonSandbox.stub(index, 'start' as any).returns(null);
const result: any = index.getOptions().filterOptions();
assert.strictEqual(result.target, 'folder_to_compress');
assert.strictEqual(result.outputPath, 'folder_to_compress_out');
const response: any = {
level: 1,
memoryLevel: 3,
strategy: 5,
};
for (const value of Object.values(result.options)) {
assert.notStrictEqual(value, NaN);
assert.notStrictEqual(value, undefined);
}
for (const [key, val] of Object.entries(response)) {
assert.ok(compareValues(result.options[key], val));
}
});
/*
* @deprecated
* TODO: Remove
* GZIPPER_GZIP_LEVEL
* GZIPPER_GZIP_MEMORY_LEVEL
* GZIPPER_GZIP_STRATEGY
*/
it('GZIPPER_GZIP_LEVEL, GZIPPER_GZIP_MEMORY_LEVEL, GZIPPER_GZIP_STRATEGY should overwrite options', () => {
const envArguments = {
GZIPPER_GZIP_LEVEL: '5',
GZIPPER_GZIP_MEMORY_LEVEL: '5',
GZIPPER_GZIP_STRATEGY: '6',
};
const cliArguments = [
'node.exe',
'index.js',
'folder_to_compress',
'folder_to_compress_out',
'--gzip-level',
'1',
'--gzip-memory-level',
'3',
'--gzip-strategy',
'5',
];
const index = new Index();
(index as any).argv = cliArguments;
(index as any).env = envArguments;
sinonSandbox.stub(index, 'start' as any).returns(null);
const result: any = index.getOptions().filterOptions();
assert.strictEqual(result.target, 'folder_to_compress');
assert.strictEqual(result.outputPath, 'folder_to_compress_out');
const response: any = {
level: 5,
memoryLevel: 5,
strategy: 6,
};
for (const value of Object.values(result.options)) {
assert.notStrictEqual(value, NaN);
assert.notStrictEqual(value, undefined);
}
for (const [key, val] of Object.entries(response)) {
assert.ok(compareValues(result.options[key], val));
}
});
it('getOptions() should return target, outputPath and all options', () => {

@@ -43,9 +137,10 @@ const cliArguments = [

'500',
'--gzip-level',
'--level',
'7',
'--gzip-memory-level',
'--memory-level',
'1',
'--gzip-strategy',
'--strategy',
'3',
'--brotli',
'--deflate',
'--brotli-param-mode',

@@ -73,6 +168,7 @@ 'text',

threshold: 500,
gzipLevel: 7,
gzipMemoryLevel: 1,
gzipStrategy: 3,
level: 7,
memoryLevel: 1,
strategy: 3,
brotli: true,
deflate: true,
brotliParamMode: 'text',

@@ -102,7 +198,7 @@ brotliQuality: 5,

'800',
'--gzip-level',
'--level',
'4',
'--gzip-memory-level',
'--memory-level',
'2',
'--gzip-strategy',
'--strategy',
'4',

@@ -125,8 +221,13 @@ '--output-file-format',

threshold: 800,
gzipLevel: 4,
gzipMemoryLevel: 2,
gzipStrategy: 4,
level: 4,
memoryLevel: 2,
strategy: 4,
outputFileFormat: 'test-[filename]-out.[ext].[compressExt]',
};
for (const value of Object.values(result.options)) {
assert.notStrictEqual(value, NaN);
assert.notStrictEqual(value, undefined);
}
for (const [key, val] of Object.entries(response)) {

@@ -143,6 +244,7 @@ assert.ok(compareValues(result.options[key], val));

GZIPPER_THRESHOLD: '800',
GZIPPER_GZIP_LEVEL: '2',
GZIPPER_GZIP_MEMORY_LEVEL: '2',
GZIPPER_GZIP_STRATEGY: '4',
GZIPPER_LEVEL: '2',
GZIPPER_MEMORY_LEVEL: '2',
GZIPPER_STRATEGY: '4',
GZIPPER_BROTLI: '0',
GZIPPER_DEFLATE: '0',
GZIPPER_BROTLI_PARAM_MODE: 'font',

@@ -165,9 +267,10 @@ GZIPPER_BROTLI_QUALITY: '3',

'500',
'--gzip-level',
'--level',
'7',
'--gzip-memory-level',
'--memory-level',
'1',
'--gzip-strategy',
'--strategy',
'3',
'--brotli',
'--deflate',
'--brotli-param-mode',

@@ -196,6 +299,7 @@ 'text',

threshold: 800,
gzipLevel: 2,
gzipMemoryLevel: 2,
gzipStrategy: 4,
level: 2,
memoryLevel: 2,
strategy: 4,
brotli: false,
deflate: false,
brotliParamMode: 'font',

@@ -202,0 +306,0 @@ brotliQuality: 3,

@@ -31,2 +31,4 @@ import path from 'path';

export const COMPRESSION_EXTENSIONS = ['.gz', '.br', '.zz'];
async function statExists(target: string): Promise<boolean> {

@@ -33,0 +35,0 @@ try {

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc