diff options
Diffstat (limited to 'vendor/github.com/gin-contrib/gzip/options.go')
-rw-r--r-- | vendor/github.com/gin-contrib/gzip/options.go | 116 |
1 files changed, 0 insertions, 116 deletions
diff --git a/vendor/github.com/gin-contrib/gzip/options.go b/vendor/github.com/gin-contrib/gzip/options.go deleted file mode 100644 index 6b3bc3f4a..000000000 --- a/vendor/github.com/gin-contrib/gzip/options.go +++ /dev/null @@ -1,116 +0,0 @@ -package gzip - -import ( - "compress/gzip" - "net/http" - "regexp" - "strings" - - "github.com/gin-gonic/gin" -) - -var ( - DefaultExcludedExtentions = NewExcludedExtensions([]string{ - ".png", ".gif", ".jpeg", ".jpg", - }) - DefaultOptions = &Options{ - ExcludedExtensions: DefaultExcludedExtentions, - } -) - -type Options struct { - ExcludedExtensions ExcludedExtensions - ExcludedPaths ExcludedPaths - ExcludedPathesRegexs ExcludedPathesRegexs - DecompressFn func(c *gin.Context) -} - -type Option func(*Options) - -func WithExcludedExtensions(args []string) Option { - return func(o *Options) { - o.ExcludedExtensions = NewExcludedExtensions(args) - } -} - -func WithExcludedPaths(args []string) Option { - return func(o *Options) { - o.ExcludedPaths = NewExcludedPaths(args) - } -} - -func WithExcludedPathsRegexs(args []string) Option { - return func(o *Options) { - o.ExcludedPathesRegexs = NewExcludedPathesRegexs(args) - } -} - -func WithDecompressFn(decompressFn func(c *gin.Context)) Option { - return func(o *Options) { - o.DecompressFn = decompressFn - } -} - -// Using map for better lookup performance -type ExcludedExtensions map[string]bool - -func NewExcludedExtensions(extensions []string) ExcludedExtensions { - res := make(ExcludedExtensions) - for _, e := range extensions { - res[e] = true - } - return res -} - -func (e ExcludedExtensions) Contains(target string) bool { - _, ok := e[target] - return ok -} - -type ExcludedPaths []string - -func NewExcludedPaths(paths []string) ExcludedPaths { - return ExcludedPaths(paths) -} - -func (e ExcludedPaths) Contains(requestURI string) bool { - for _, path := range e { - if strings.HasPrefix(requestURI, path) { - return true - } - } - return false -} - -type ExcludedPathesRegexs []*regexp.Regexp - -func NewExcludedPathesRegexs(regexs []string) ExcludedPathesRegexs { - result := make([]*regexp.Regexp, len(regexs)) - for i, reg := range regexs { - result[i] = regexp.MustCompile(reg) - } - return result -} - -func (e ExcludedPathesRegexs) Contains(requestURI string) bool { - for _, reg := range e { - if reg.MatchString(requestURI) { - return true - } - } - return false -} - -func DefaultDecompressHandle(c *gin.Context) { - if c.Request.Body == nil { - return - } - r, err := gzip.NewReader(c.Request.Body) - if err != nil { - _ = c.AbortWithError(http.StatusBadRequest, err) - return - } - c.Request.Header.Del("Content-Encoding") - c.Request.Header.Del("Content-Length") - c.Request.Body = r -} |