RoadSign/pkg/sign/transformers/compress.go

20 lines
489 B
Go
Raw Normal View History

2023-12-16 03:42:14 +00:00
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)
},
}