mirror of
https://github.com/fnproject/fn.git
synced 2022-10-28 21:29:17 +03:00
simplify env var setting, precisely allocate maps
This commit is contained in:
@@ -142,19 +142,6 @@ func (s *Server) serve(ctx context.Context, c *gin.Context, appName string, rout
|
||||
if route.Format == "" {
|
||||
route.Format = "default"
|
||||
}
|
||||
envVars := map[string]string{
|
||||
"METHOD": c.Request.Method,
|
||||
"APP_NAME": appName,
|
||||
"ROUTE": route.Path,
|
||||
"REQUEST_URL": fmt.Sprintf("%v//%v%v", func() string {
|
||||
if c.Request.TLS == nil {
|
||||
return "http"
|
||||
}
|
||||
return "https"
|
||||
}(), c.Request.Host, c.Request.URL.String()),
|
||||
"CALL_ID": reqID,
|
||||
"FN_FORMAT": route.Format,
|
||||
}
|
||||
|
||||
// baseVars are the vars on the route & app, not on this specific request [for hot functions]
|
||||
baseVars := make(map[string]string, len(app.Config)+len(route.Config)+3)
|
||||
@@ -165,15 +152,29 @@ func (s *Server) serve(ctx context.Context, c *gin.Context, appName string, rout
|
||||
// app config
|
||||
for k, v := range app.Config {
|
||||
k = toEnvName("", k)
|
||||
envVars[k] = v
|
||||
baseVars[k] = v
|
||||
}
|
||||
for k, v := range route.Config {
|
||||
k = toEnvName("", k)
|
||||
envVars[k] = v
|
||||
baseVars[k] = v
|
||||
}
|
||||
|
||||
// envVars contains the full set of env vars, per request + base
|
||||
envVars := make(map[string]string, len(baseVars)+len(params)+len(c.Request.Header)+3)
|
||||
|
||||
for k, v := range baseVars {
|
||||
envVars[k] = v
|
||||
}
|
||||
|
||||
envVars["CALL_ID"] = reqID
|
||||
envVars["METHOD"] = c.Request.Method
|
||||
envVars["REQUEST_URL"] = fmt.Sprintf("%v//%v%v", func() string {
|
||||
if c.Request.TLS == nil {
|
||||
return "http"
|
||||
}
|
||||
return "https"
|
||||
}(), c.Request.Host, c.Request.URL.String())
|
||||
|
||||
// params
|
||||
for _, param := range params {
|
||||
envVars[toEnvName("PARAM", param.Key)] = param.Value
|
||||
|
||||
Reference in New Issue
Block a user