From 47bc1c6aa1d4eefe71f9da754e67a5f734dc67da Mon Sep 17 00:00:00 2001 From: LittleSheep Date: Sat, 16 Dec 2023 12:49:08 +0800 Subject: [PATCH] :bug: Bug fixes of compress transformer --- pkg/sign/transformers/compress.go | 32 ++++++++++++++++++++++++++----- 1 file changed, 27 insertions(+), 5 deletions(-) diff --git a/pkg/sign/transformers/compress.go b/pkg/sign/transformers/compress.go index cddbe43..671ee3a 100644 --- a/pkg/sign/transformers/compress.go +++ b/pkg/sign/transformers/compress.go @@ -2,8 +2,7 @@ package transformers import ( "github.com/gofiber/fiber/v2" - "github.com/gofiber/fiber/v2/middleware/compress" - "github.com/samber/lo" + "github.com/valyala/fasthttp" ) var CompressResponse = RequestTransformer{ @@ -11,9 +10,32 @@ var CompressResponse = RequestTransformer{ opts := DeserializeOptions[struct { Level int `json:"level"` }](options) - level := lo.Ternary(opts.Level < 0 || opts.Level > 2, 0, opts.Level) - ware := compress.New(compress.Config{Level: compress.Level(level)}) - return ware(ctx) + var fctx = func(c *fasthttp.RequestCtx) {} + var compressor fasthttp.RequestHandler + switch opts.Level { + // Best Speed Mode + case 1: + compressor = fasthttp.CompressHandlerBrotliLevel(fctx, + fasthttp.CompressBrotliBestSpeed, + fasthttp.CompressBestSpeed, + ) + // Best Compression Mode + case 2: + compressor = fasthttp.CompressHandlerBrotliLevel(fctx, + fasthttp.CompressBrotliBestCompression, + fasthttp.CompressBestCompression, + ) + // Default Mode + default: + compressor = fasthttp.CompressHandlerBrotliLevel(fctx, + fasthttp.CompressBrotliDefaultCompression, + fasthttp.CompressDefaultCompression, + ) + } + + compressor(ctx.Context()) + + return nil }, }