parent
ed0a05df42
commit
32a105e462
1 changed files with 10 additions and 13 deletions
23
ginzip.go
23
ginzip.go
|
@ -33,7 +33,7 @@ type intOptions struct {
|
|||
GzipLevel int
|
||||
BrotliEn bool
|
||||
BrotliLevel int
|
||||
SkipExtensions []string
|
||||
SkipExtensions map[string]bool
|
||||
}
|
||||
|
||||
// New creates a new Ginzip middleware function.
|
||||
|
@ -136,16 +136,7 @@ func (b *brotliWriter) Encoding() string {
|
|||
return "br"
|
||||
}
|
||||
|
||||
func containsString(s []string, e string) bool {
|
||||
for _, a := range s {
|
||||
if a == e {
|
||||
return true
|
||||
}
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
func shouldCompress(req *http.Request, skipExtensions []string) bool {
|
||||
func shouldCompress(req *http.Request, skipExtensions map[string]bool) bool {
|
||||
// Dont compress websocket connections
|
||||
if strings.Contains(req.Header.Get("Connection"), "Upgrade") ||
|
||||
strings.Contains(req.Header.Get("Content-Type"), "text/event-stream") {
|
||||
|
@ -157,7 +148,8 @@ func shouldCompress(req *http.Request, skipExtensions []string) bool {
|
|||
return true
|
||||
}
|
||||
|
||||
return !containsString(skipExtensions, extension)
|
||||
_, doSkip := skipExtensions[extension]
|
||||
return !doSkip
|
||||
}
|
||||
|
||||
func parseLevel(level string, dfault int, min int, max int) (int, bool) {
|
||||
|
@ -193,12 +185,17 @@ func parseOptions(options Options) intOptions {
|
|||
brotli.DefaultCompression, brotli.BestSpeed, brotli.BestCompression,
|
||||
)
|
||||
|
||||
exts := map[string]bool{}
|
||||
for _, ext := range options.SkipExtensions {
|
||||
exts[ext] = true
|
||||
}
|
||||
|
||||
return intOptions{
|
||||
GzipEn: gzipEn,
|
||||
GzipLevel: gzipLvl,
|
||||
BrotliEn: brEn,
|
||||
BrotliLevel: brLvl,
|
||||
SkipExtensions: options.SkipExtensions,
|
||||
SkipExtensions: exts,
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue