Home / Function/ New() — fiber Function Reference

New() — fiber Function Reference

Architecture documentation for the New() function in redirect.go from the fiber codebase.

Entity Profile

Dependency Diagram

graph TD
  626dec24_6efa_77d1_905e_a451501edb5c["New()"]
  1adff06c_cc29_c445_b25e_6b98b1764065["redirect.go"]
  626dec24_6efa_77d1_905e_a451501edb5c -->|defined in| 1adff06c_cc29_c445_b25e_6b98b1764065
  cfc7cdf8_a141_3bfb_dfdf_5c02c2928ff4["captureTokens()"]
  626dec24_6efa_77d1_905e_a451501edb5c -->|calls| cfc7cdf8_a141_3bfb_dfdf_5c02c2928ff4
  style 626dec24_6efa_77d1_905e_a451501edb5c fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

middleware/redirect/redirect.go lines 13–43

func New(config ...Config) fiber.Handler {
	cfg := configDefault(config...)

	// Initialize
	cfg.rulesRegex = map[*regexp.Regexp]string{}
	for k, v := range cfg.Rules {
		k = strings.ReplaceAll(k, "*", "(.*)")
		k += "$"
		cfg.rulesRegex[regexp.MustCompile(k)] = v
	}

	// Middleware function
	return func(c fiber.Ctx) error {
		// Next request to skip middleware
		if cfg.Next != nil && cfg.Next(c) {
			return c.Next()
		}
		// Rewrite
		for k, v := range cfg.rulesRegex {
			replacer := captureTokens(k, c.Path())
			if replacer != nil {
				queryString := utils.UnsafeString(c.RequestCtx().QueryArgs().QueryString())
				if queryString != "" {
					queryString = "?" + queryString
				}
				return c.Redirect().Status(cfg.StatusCode).To(replacer.Replace(v) + queryString)
			}
		}
		return c.Next()
	}
}

Domain

Subdomains

Frequently Asked Questions

What does New() do?
New() is a function in the fiber codebase, defined in middleware/redirect/redirect.go.
Where is New() defined?
New() is defined in middleware/redirect/redirect.go at line 13.
What does New() call?
New() calls 1 function(s): captureTokens.

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free