zyf-server
Version:
A modern HTTP static file server with Vue SSR directory listing, built for developers
45 lines • 1.36 kB
JavaScript
;
/**
* 压缩服务
* 处理HTTP响应压缩
*/
Object.defineProperty(exports, "__esModule", { value: true });
exports.CompressionService = void 0;
const zlib_1 = require("zlib");
class CompressionService {
/**
* 检查请求是否支持压缩
*/
isSupported(req) {
const acceptEncoding = req.headers['accept-encoding'];
return Boolean(acceptEncoding);
}
/**
* 获取最佳压缩格式
*/
getBestEncoding(req) {
const acceptEncoding = req.headers['accept-encoding'] || '';
if (acceptEncoding.includes('gzip')) {
return "gzip" /* CompressionEncoding.GZIP */;
}
if (acceptEncoding.includes('deflate')) {
return "deflate" /* CompressionEncoding.DEFLATE */;
}
return null;
}
/**
* 创建压缩流
*/
createCompressionStream(encoding) {
switch (encoding) {
case "gzip" /* CompressionEncoding.GZIP */:
return (0, zlib_1.createGzip)();
case "deflate" /* CompressionEncoding.DEFLATE */:
return (0, zlib_1.createDeflate)();
default:
throw new Error(`Unsupported compression encoding: ${encoding}`);
}
}
}
exports.CompressionService = CompressionService;
//# sourceMappingURL=CompressionService.js.map