From 3cfdaa92b69ade41d2187a73dc55def0f8dd8a03 Mon Sep 17 00:00:00 2001 From: Thanatat Tamtan Date: Sat, 10 Jun 2023 18:01:41 +0700 Subject: [PATCH] compress: allow config level --- pkg/compress/br.go | 15 ++++++++++++--- pkg/compress/gzip.go | 6 +++++- 2 files changed, 17 insertions(+), 4 deletions(-) diff --git a/pkg/compress/br.go b/pkg/compress/br.go index ee7002d..0601288 100644 --- a/pkg/compress/br.go +++ b/pkg/compress/br.go @@ -10,9 +10,17 @@ import ( // Br creates new brotli compress middleware func Br() *Compress { + return BrWithOption(cbrotli.WriterOptions{Quality: 4}) +} + +func BrWithQuality(quality int) *Compress { + return BrWithOption(cbrotli.WriterOptions{Quality: quality}) +} + +func BrWithOption(opt cbrotli.WriterOptions) *Compress { return &Compress{ New: func() Compressor { - return &brWriter{quality: 4} + return &brWriter{opt: &opt} }, Encoding: "br", Vary: defaultCompressVary, @@ -22,10 +30,11 @@ func Br() *Compress { } type brWriter struct { - quality int *cbrotli.Writer + + opt *cbrotli.WriterOptions } func (w *brWriter) Reset(p io.Writer) { - w.Writer = cbrotli.NewWriter(p, cbrotli.WriterOptions{Quality: w.quality}) + w.Writer = cbrotli.NewWriter(p, *w.opt) } diff --git a/pkg/compress/gzip.go b/pkg/compress/gzip.go index 11dd987..414ef70 100644 --- a/pkg/compress/gzip.go +++ b/pkg/compress/gzip.go @@ -7,9 +7,13 @@ import ( // Gzip creates new gzip compress middleware func Gzip() *Compress { + return GzipWithLevel(gzip.DefaultCompression) +} + +func GzipWithLevel(level int) *Compress { return &Compress{ New: func() Compressor { - g, err := gzip.NewWriterLevel(io.Discard, gzip.DefaultCompression) + g, err := gzip.NewWriterLevel(io.Discard, level) if err != nil { panic(err) }