envvar.go — fiber Source File
Architecture documentation for envvar.go, a go file in the fiber codebase. 1 imports, 0 dependents.
Entity Profile
Dependency Diagram
graph LR 979e39c4_cb8d_0bcd_f2b9_22752d950269["envvar.go"] 8759af17_0eaa_9de8_b2fe_8f672f58a010["os"] 979e39c4_cb8d_0bcd_f2b9_22752d950269 --> 8759af17_0eaa_9de8_b2fe_8f672f58a010 style 979e39c4_cb8d_0bcd_f2b9_22752d950269 fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
package envvar
import (
"os"
"github.com/gofiber/fiber/v3"
)
const hAllow = fiber.MethodGet + ", " + fiber.MethodHead
// EnvVar captures environment variables that are exposed through the
// middleware response.
type EnvVar struct {
Vars map[string]string `json:"vars"`
}
func (envVar *EnvVar) set(key, val string) {
envVar.Vars[key] = val
}
// New creates a handler that returns configured environment variables as a
// JSON response.
func New(config ...Config) fiber.Handler {
cfg := configDefault(config...)
return func(c fiber.Ctx) error {
method := c.Method()
if method != fiber.MethodGet && method != fiber.MethodHead {
c.Set(fiber.HeaderAllow, hAllow)
return fiber.ErrMethodNotAllowed
}
envVar := newEnvVar(cfg)
varsByte, err := c.App().Config().JSONEncoder(envVar)
if err != nil {
return c.Status(fiber.StatusInternalServerError).SendString(err.Error())
}
c.Set(fiber.HeaderContentType, fiber.MIMEApplicationJSONCharsetUTF8)
return c.Send(varsByte)
}
}
func newEnvVar(cfg Config) *EnvVar {
vars := &EnvVar{Vars: make(map[string]string)}
if len(cfg.ExportVars) == 0 {
// do not expose environment variables when no configuration
// is supplied to prevent accidental information disclosure
return vars
}
for key, defaultVal := range cfg.ExportVars {
vars.set(key, defaultVal)
if envVal, exists := os.LookupEnv(key); exists {
vars.set(key, envVal)
}
}
return vars
}
Domain
Subdomains
Functions
Dependencies
- os
Source
Frequently Asked Questions
What does envvar.go do?
envvar.go is a source file in the fiber codebase, written in go. It belongs to the FiberCore domain, Adapters subdomain.
What functions are defined in envvar.go?
envvar.go defines 2 function(s): New, newEnvVar.
What does envvar.go depend on?
envvar.go imports 1 module(s): os.
Where is envvar.go in the architecture?
envvar.go is located at middleware/envvar/envvar.go (domain: FiberCore, subdomain: Adapters, directory: middleware/envvar).
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free