package utils import ( "fmt" "regexp" "strconv" "strings" ) func If(condition bool, trueValue, falseValue any) any { if condition { return trueValue } return falseValue } // 如果首字母是小写字母, 则变换为大写字母 func FirstToUpper(str string) string { if str == "" { return "" } return strings.ToUpper(str[:1]) + strings.ToLower(str[1:]) } func ParseParams(in map[string]string) map[string]any { out := make(map[string]any) for k, v := range in { fv, err := strconv.ParseFloat(v, 64) if err != nil { out[k] = fv } else { out[k] = v } } return out } func MustString(value string) (string, error) { var workspacePattern = regexp.MustCompile(`^[a-zA-Z0-9][a-zA-Z0-9_-]{0,63}$`) value = strings.ToLower(strings.TrimSpace(value)) if !workspacePattern.MatchString(value) { return "", fmt.Errorf("workspace must match %s", workspacePattern.String()) } return value, nil }