github.com/gofiber/fiber/v2@v2.47.0/middleware/etag/config.go (about)

     1  package etag
     2  
     3  import (
     4  	"github.com/gofiber/fiber/v2"
     5  )
     6  
     7  // Config defines the config for middleware.
     8  type Config struct {
     9  	// Weak indicates that a weak validator is used. Weak etags are easy
    10  	// to generate, but are far less useful for comparisons. Strong
    11  	// validators are ideal for comparisons but can be very difficult
    12  	// to generate efficiently. Weak ETag values of two representations
    13  	// of the same resources might be semantically equivalent, but not
    14  	// byte-for-byte identical. This means weak etags prevent caching
    15  	// when byte range requests are used, but strong etags mean range
    16  	// requests can still be cached.
    17  	Weak bool
    18  
    19  	// Next defines a function to skip this middleware when returned true.
    20  	//
    21  	// Optional. Default: nil
    22  	Next func(c *fiber.Ctx) bool
    23  }
    24  
    25  // ConfigDefault is the default config
    26  var ConfigDefault = Config{
    27  	Weak: false,
    28  	Next: nil,
    29  }
    30  
    31  // Helper function to set default values
    32  func configDefault(config ...Config) Config {
    33  	// Return default config if nothing provided
    34  	if len(config) < 1 {
    35  		return ConfigDefault
    36  	}
    37  
    38  	// Override default config
    39  	cfg := config[0]
    40  
    41  	// Set default values
    42  
    43  	return cfg
    44  }