diff --git a/server/src-lib/Hasura/Server/Compression.hs b/server/src-lib/Hasura/Server/Compression.hs index d35a91ba8bb10..34eec6fba9f58 100644 --- a/server/src-lib/Hasura/Server/Compression.hs +++ b/server/src-lib/Hasura/Server/Compression.hs @@ -31,11 +31,16 @@ compressResponse compressResponse reqHeaders unCompressedResp = let compressionTypeM = getRequestedCompression reqHeaders appendCompressionType (res, headerM) = (res, headerM, compressionTypeM) + brotliCompressionParams = + BR.defaultCompressParams{BR.compressLevel = BR.CompressionLevel4} + gzipCompressionParams = + GZ.defaultCompressParams{GZ.compressLevel = GZ.compressionLevel 1} in appendCompressionType $ case compressionTypeM of - Just CTBrotli -> (BR.compress unCompressedResp, Just brHeader) - Just CTGZip -> (GZ.compress unCompressedResp, Just gzipHeader) + Just CTBrotli -> (BR.compressWith brotliCompressionParams unCompressedResp, Just brHeader) + Just CTGZip -> (GZ.compressWith gzipCompressionParams unCompressedResp, Just gzipHeader) Nothing -> (unCompressedResp, Nothing) + getRequestedCompression :: NH.RequestHeaders -> Maybe CompressionType getRequestedCompression reqHeaders | "br" `elem` acceptEncodingVals = Just CTBrotli