in internal/langserver/handlers/command/arm_template_expression.go [10:37]
func flattenARMExpression(input interface{}) interface{} {
if input == nil {
return nil
}
switch v := input.(type) {
case map[string]interface{}:
res := make(map[string]interface{})
for key, value := range v {
res[key] = flattenARMExpression(value)
}
return res
case []interface{}:
res := make([]interface{}, 0)
for _, value := range v {
res = append(res, flattenARMExpression(value))
}
return res
case string:
if strings.HasPrefix(v, "[") && strings.HasSuffix(v, "]") {
if output, err := evaluateARMTemplateExpression(v[1 : len(v)-1]); err == nil {
return output
}
}
return v
default:
return v
}
}