-
This commit is contained in:
70
faas/internal/domain/runtime_config.go
Normal file
70
faas/internal/domain/runtime_config.go
Normal file
@ -0,0 +1,70 @@
|
||||
package domain
|
||||
|
||||
// RuntimeConfig defines the configuration for each runtime
|
||||
type RuntimeConfig struct {
|
||||
Name string `json:"name"`
|
||||
DisplayName string `json:"display_name"`
|
||||
Image string `json:"image"`
|
||||
Handler string `json:"default_handler"`
|
||||
Extensions []string `json:"file_extensions"`
|
||||
Environment map[string]string `json:"default_environment"`
|
||||
}
|
||||
|
||||
// GetRuntimeConfigs returns the available runtime configurations
|
||||
func GetRuntimeConfigs() map[RuntimeType]RuntimeConfig {
|
||||
return map[RuntimeType]RuntimeConfig{
|
||||
"nodejs18": {
|
||||
Name: "nodejs18",
|
||||
DisplayName: "Node.js 18.x",
|
||||
Image: "node:18-alpine",
|
||||
Handler: "index.handler",
|
||||
Extensions: []string{".js", ".mjs", ".ts"},
|
||||
Environment: map[string]string{
|
||||
"NODE_ENV": "production",
|
||||
},
|
||||
},
|
||||
"python3.9": {
|
||||
Name: "python3.9",
|
||||
DisplayName: "Python 3.9",
|
||||
Image: "python:3.9-alpine",
|
||||
Handler: "main.handler",
|
||||
Extensions: []string{".py"},
|
||||
Environment: map[string]string{
|
||||
"PYTHONPATH": "/app",
|
||||
},
|
||||
},
|
||||
"go1.20": {
|
||||
Name: "go1.20",
|
||||
DisplayName: "Go 1.20",
|
||||
Image: "golang:1.20-alpine",
|
||||
Handler: "main.Handler",
|
||||
Extensions: []string{".go"},
|
||||
Environment: map[string]string{
|
||||
"CGO_ENABLED": "0",
|
||||
"GOOS": "linux",
|
||||
},
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
// GetRuntimeConfig returns the configuration for a specific runtime
|
||||
func GetRuntimeConfig(runtime RuntimeType) (RuntimeConfig, bool) {
|
||||
configs := GetRuntimeConfigs()
|
||||
config, exists := configs[runtime]
|
||||
return config, exists
|
||||
}
|
||||
|
||||
// GetAvailableRuntimes returns a list of available runtimes for the frontend
|
||||
func GetAvailableRuntimes() []map[string]string {
|
||||
configs := GetRuntimeConfigs()
|
||||
var runtimes []map[string]string
|
||||
|
||||
for _, config := range configs {
|
||||
runtimes = append(runtimes, map[string]string{
|
||||
"value": config.Name,
|
||||
"label": config.DisplayName,
|
||||
})
|
||||
}
|
||||
|
||||
return runtimes
|
||||
}
|
||||
Reference in New Issue
Block a user