pagespeed-quest
Version:
A framework for efficient web front-end speed improvement
43 lines • 3.24 kB
JavaScript
import Zlib from 'zlib';
export const ContentEncodingMap = new Map();
ContentEncodingMap.set('gzip', {
compress: Zlib.gzip,
decompress: Zlib.gunzip,
});
ContentEncodingMap.set('compress', {
compress: Zlib.gzip,
decompress: Zlib.gunzip,
});
ContentEncodingMap.set('deflate', {
compress: Zlib.deflate,
decompress: Zlib.inflate,
});
ContentEncodingMap.set('br', {
compress: Zlib.brotliCompress,
decompress: Zlib.brotliDecompress,
});
export async function compress(type, buffer) {
const pair = ContentEncodingMap.get(type);
if (!pair)
return Buffer.from(buffer);
return new Promise((resolve, reject) => {
pair.compress(buffer, (err, result) => {
if (err)
return reject(err);
resolve(result);
});
});
}
export async function decompress(type, buffer) {
const pair = ContentEncodingMap.get(type);
if (!pair)
return Buffer.from(buffer);
return new Promise((resolve, reject) => {
pair.decompress(buffer, (err, result) => {
if (err)
return reject(err);
resolve(result);
});
});
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW5jb2RpbmcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvZW5jb2RpbmcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxJQUFJLE1BQU0sTUFBTSxDQUFBO0FBU3ZCLE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHLElBQUksR0FBRyxFQUE0QyxDQUFBO0FBRXJGLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUU7SUFDN0IsUUFBUSxFQUFFLElBQUksQ0FBQyxJQUFJO0lBQ25CLFVBQVUsRUFBRSxJQUFJLENBQUMsTUFBTTtDQUN4QixDQUFDLENBQUE7QUFFRixrQkFBa0IsQ0FBQyxHQUFHLENBQUMsVUFBVSxFQUFFO0lBQ2pDLFFBQVEsRUFBRSxJQUFJLENBQUMsSUFBSTtJQUNuQixVQUFVLEVBQUUsSUFBSSxDQUFDLE1BQU07Q0FDeEIsQ0FBQyxDQUFBO0FBRUYsa0JBQWtCLENBQUMsR0FBRyxDQUFDLFNBQVMsRUFBRTtJQUNoQyxRQUFRLEVBQUUsSUFBSSxDQUFDLE9BQU87SUFDdEIsVUFBVSxFQUFFLElBQUksQ0FBQyxPQUFPO0NBQ3pCLENBQUMsQ0FBQTtBQUVGLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUU7SUFDM0IsUUFBUSxFQUFFLElBQUksQ0FBQyxjQUFjO0lBQzdCLFVBQVUsRUFBRSxJQUFJLENBQUMsZ0JBQWdCO0NBQ2xDLENBQUMsQ0FBQTtBQUVGLE1BQU0sQ0FBQyxLQUFLLFVBQVUsUUFBUSxDQUFDLElBQXlCLEVBQUUsTUFBYztJQUN0RSxNQUFNLElBQUksR0FBRyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUE7SUFDekMsSUFBSSxDQUFDLElBQUk7UUFBRSxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUE7SUFFckMsT0FBTyxJQUFJLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRTtRQUNyQyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsRUFBRSxNQUFNLEVBQUUsRUFBRTtZQUNwQyxJQUFJLEdBQUc7Z0JBQUUsT0FBTyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUE7WUFDM0IsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFBO1FBQ2pCLENBQUMsQ0FBQyxDQUFBO0lBQ0osQ0FBQyxDQUFDLENBQUE7QUFDSixDQUFDO0FBRUQsTUFBTSxDQUFDLEtBQUssVUFBVSxVQUFVLENBQUMsSUFBeUIsRUFBRSxNQUFjO0lBQ3hFLE1BQU0sSUFBSSxHQUFHLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQTtJQUN6QyxJQUFJLENBQUMsSUFBSTtRQUFFLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQTtJQUVyQyxPQUFPLElBQUksT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFFO1FBQ3JDLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxFQUFFLE1BQU0sRUFBRSxFQUFFO1lBQ3RDLElBQUksR0FBRztnQkFBRSxPQUFPLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQTtZQUMzQixPQUFPLENBQUMsTUFBTSxDQUFDLENBQUE7UUFDakIsQ0FBQyxDQUFDLENBQUE7SUFDSixDQUFDLENBQUMsQ0FBQTtBQUNKLENBQUMifQ==