@zenweb/cache
Version:
Zenweb Cache module
21 lines (20 loc) • 534 B
JavaScript
import { gzip, unzip } from 'node:zlib';
import { promisify } from 'node:util';
const compress = promisify(gzip);
const decompress = promisify(unzip);
const GZ_HEADER = Buffer.from([0x1F, 0x8B, 0x08]);
export class GzCompressor {
opt;
constructor(opt) {
this.opt = opt;
}
isCompressed(data) {
return GZ_HEADER.equals(data.subarray(0, GZ_HEADER.length));
}
compress(data) {
return compress(data, this.opt);
}
decompress(data) {
return decompress(data, this.opt);
}
}