1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- package compress
- import (
- "github.com/gofiber/fiber/v2"
- )
- // Config defines the config for middleware.
- type Config struct {
- // Next defines a function to skip this middleware when returned true.
- //
- // Optional. Default: nil
- Next func(c *fiber.Ctx) bool
- // Level determines the compression algorithm
- //
- // Optional. Default: LevelDefault
- // LevelDisabled: -1
- // LevelDefault: 0
- // LevelBestSpeed: 1
- // LevelBestCompression: 2
- Level Level
- }
- // Level is numeric representation of compression level
- type Level int
- // Represents compression level that will be used in the middleware
- const (
- LevelDisabled Level = -1
- LevelDefault Level = 0
- LevelBestSpeed Level = 1
- LevelBestCompression Level = 2
- )
- // ConfigDefault is the default config
- var ConfigDefault = Config{
- Next: nil,
- Level: LevelDefault,
- }
- // Helper function to set default values
- func configDefault(config ...Config) Config {
- // Return default config if nothing provided
- if len(config) < 1 {
- return ConfigDefault
- }
- // Override default config
- cfg := config[0]
- // Set default values
- if cfg.Level < LevelDisabled || cfg.Level > LevelBestCompression {
- cfg.Level = ConfigDefault.Level
- }
- return cfg
- }
|