github.com/argoproj/argo-cd/v3@v3.2.1/applicationset/utils/map.go (about)

     1  package utils
     2  
     3  import (
     4  	"fmt"
     5  )
     6  
     7  func ConvertToMapStringString(mapStringInterface map[string]any) map[string]string {
     8  	mapStringString := make(map[string]string, len(mapStringInterface))
     9  
    10  	for key, value := range mapStringInterface {
    11  		mapStringString[key] = fmt.Sprintf("%v", value)
    12  	}
    13  	return mapStringString
    14  }
    15  
    16  func CombineStringMaps(aSI map[string]any, bSI map[string]any) (map[string]any, error) {
    17  	a := ConvertToMapStringString(aSI)
    18  	b := ConvertToMapStringString(bSI)
    19  
    20  	res := map[string]any{}
    21  
    22  	for k, v := range a {
    23  		res[k] = v
    24  	}
    25  
    26  	for k, v := range b {
    27  		current, present := res[k]
    28  		if present && current != v {
    29  			return nil, fmt.Errorf("found duplicate key %s with different value, a: %s ,b: %s", k, current, v)
    30  		}
    31  		res[k] = v
    32  	}
    33  
    34  	return res, nil
    35  }