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

     1  package redirect
     2  
     3  import (
     4  	"regexp"
     5  
     6  	"github.com/gofiber/fiber/v2"
     7  )
     8  
     9  // Config defines the config for middleware.
    10  type Config struct {
    11  	// Filter defines a function to skip middleware.
    12  	// Optional. Default: nil
    13  	Next func(*fiber.Ctx) bool
    14  
    15  	// Rules defines the URL path rewrite rules. The values captured in asterisk can be
    16  	// retrieved by index e.g. $1, $2 and so on.
    17  	// Required. Example:
    18  	// "/old":              "/new",
    19  	// "/api/*":            "/$1",
    20  	// "/js/*":             "/public/javascripts/$1",
    21  	// "/users/*/orders/*": "/user/$1/order/$2",
    22  	Rules map[string]string
    23  
    24  	// The status code when redirecting
    25  	// This is ignored if Redirect is disabled
    26  	// Optional. Default: 302 Temporary Redirect
    27  	StatusCode int
    28  
    29  	rulesRegex map[*regexp.Regexp]string
    30  }
    31  
    32  // ConfigDefault is the default config
    33  var ConfigDefault = Config{
    34  	StatusCode: fiber.StatusFound,
    35  }
    36  
    37  // Helper function to set default values
    38  func configDefault(config ...Config) Config {
    39  	// Return default config if nothing provided
    40  	if len(config) < 1 {
    41  		return ConfigDefault
    42  	}
    43  
    44  	// Override default config
    45  	cfg := config[0]
    46  
    47  	// Set default values
    48  	if cfg.StatusCode == 0 {
    49  		cfg.StatusCode = ConfigDefault.StatusCode
    50  	}
    51  
    52  	return cfg
    53  }