gzipper
Version:
CLI for compressing files.
33 lines • 2.34 kB
JavaScript
import zlib from 'node:zlib';
import { Compression } from './Compression.js';
import { CompressionExtensions, CompressionNames } from '../enums.js';
/**
* Deflate compression
*/
export class DeflateCompression extends Compression {
compressionName = CompressionNames.DEFLATE;
ext = CompressionExtensions.DEFLATE;
/**
* Returns deflate compression instance in closure.
*/
getCompression() {
return zlib.createDeflate(this.compressionOptions);
}
/**
* Build deflate compression options object.
*/
selectCompression() {
const options = {};
if (this.options.deflateLevel !== undefined) {
options.level = this.options.deflateLevel;
}
if (this.options.deflateMemoryLevel !== undefined) {
options.memLevel = this.options.deflateMemoryLevel;
}
if (this.options.deflateStrategy !== undefined) {
options.strategy = this.options.deflateStrategy;
}
this.compressionOptions = options;
}
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGVmbGF0ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wcmVzc2lvbnMvRGVmbGF0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLElBQUksTUFBTSxXQUFXLENBQUM7QUFFN0IsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRS9DLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUV0RTs7R0FFRztBQUNILE1BQU0sT0FBTyxrQkFBbUIsU0FBUSxXQUFzQztJQUNuRSxlQUFlLEdBQUcsZ0JBQWdCLENBQUMsT0FBTyxDQUFDO0lBQzNDLEdBQUcsR0FBRyxxQkFBcUIsQ0FBQyxPQUFPLENBQUM7SUFFN0M7O09BRUc7SUFDSCxjQUFjO1FBQ1osT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO0lBQ3JELENBQUM7SUFFRDs7T0FFRztJQUNPLGlCQUFpQjtRQUN6QixNQUFNLE9BQU8sR0FBOEIsRUFBRSxDQUFDO1FBRTlDLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDNUMsT0FBTyxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQztRQUM1QyxDQUFDO1FBRUQsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLGtCQUFrQixLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQ2xELE9BQU8sQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQztRQUNyRCxDQUFDO1FBRUQsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLGVBQWUsS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUMvQyxPQUFPLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsZUFBZSxDQUFDO1FBQ2xELENBQUM7UUFFRCxJQUFJLENBQUMsa0JBQWtCLEdBQUcsT0FBTyxDQUFDO0lBQ3BDLENBQUM7Q0FDRiJ9