RoadSign/pkg/sign/transformers/compress.go
LittleSheep f31d35c86c
All checks were successful
release-nightly / build-docker (push) Successful in 1m4s
Compress Transformer
2023-12-16 11:42:14 +08:00

20 lines
489 B
Go

package transformers
import (
"github.com/gofiber/fiber/v2"
"github.com/gofiber/fiber/v2/middleware/compress"
"github.com/samber/lo"
)
var CompressResponse = RequestTransformer{
ModifyResponse: func(options any, ctx *fiber.Ctx) error {
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)
},
}