Use promisify for gzip

This commit is contained in:
Koen Vlaswinkel
2023-07-26 14:28:45 +02:00
parent 84de8ad252
commit de5dbea69f

View File

@@ -1,43 +1,12 @@
import { gzip, gunzip, InputType as ZlibInputType, ZlibOptions } from "zlib";
import { promisify } from "util";
import { gzip, gunzip } from "zlib";
/**
* Promisified version of zlib.gzip
* @param buffer Buffer to compress
* @param options zlib options
*/
export function gzipEncode(
buffer: ZlibInputType,
options: ZlibOptions = {},
): Promise<Buffer> {
return new Promise((resolve, reject) => {
gzip(buffer, options, (error, result) => {
if (error) {
reject(error);
return;
}
resolve(result);
});
});
}
export const gzipEncode = promisify(gzip);
/**
* Promisified version of zlib.gunzip
* @param buffer Buffer to decompress
* @param options zlib options
*/
export function gzipDecode(
buffer: ZlibInputType,
options: ZlibOptions = {},
): Promise<Buffer> {
return new Promise((resolve, reject) => {
gunzip(buffer, options, (error, result) => {
if (error) {
reject(error);
return;
}
resolve(result);
});
});
}
export const gzipDecode = promisify(gunzip);