UNPKG

@zenweb/cache

Version:
21 lines (20 loc) 534 B
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); } }