github.com/gofiber/fiber/v2@v2.47.0/middleware/compress/config.go (about) 1 package compress 2 3 import ( 4 "github.com/gofiber/fiber/v2" 5 ) 6 7 // Config defines the config for middleware. 8 type Config struct { 9 // Next defines a function to skip this middleware when returned true. 10 // 11 // Optional. Default: nil 12 Next func(c *fiber.Ctx) bool 13 14 // Level determines the compression algorithm 15 // 16 // Optional. Default: LevelDefault 17 // LevelDisabled: -1 18 // LevelDefault: 0 19 // LevelBestSpeed: 1 20 // LevelBestCompression: 2 21 Level Level 22 } 23 24 // Level is numeric representation of compression level 25 type Level int 26 27 // Represents compression level that will be used in the middleware 28 const ( 29 LevelDisabled Level = -1 30 LevelDefault Level = 0 31 LevelBestSpeed Level = 1 32 LevelBestCompression Level = 2 33 ) 34 35 // ConfigDefault is the default config 36 var ConfigDefault = Config{ 37 Next: nil, 38 Level: LevelDefault, 39 } 40 41 // Helper function to set default values 42 func configDefault(config ...Config) Config { 43 // Return default config if nothing provided 44 if len(config) < 1 { 45 return ConfigDefault 46 } 47 48 // Override default config 49 cfg := config[0] 50 51 // Set default values 52 if cfg.Level < LevelDisabled || cfg.Level > LevelBestCompression { 53 cfg.Level = ConfigDefault.Level 54 } 55 return cfg 56 }