func flattenARMExpression()

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
	}
}