in code/go/internal/yamlschema/loader.go [109:136]
func expandItemKey(c interface{}) interface{} {
if c == nil {
return c
}
// c is an array
if cArr, isArray := c.([]interface{}); isArray {
arr := []interface{}{}
for _, ca := range cArr {
arr = append(arr, expandItemKey(ca))
}
return arr
}
// c is map[string]interface{}
if cMap, isMapString := c.(map[string]interface{}); isMapString {
expanded := MapStr{}
for k, v := range cMap {
ex := expandItemKey(v)
_, err := expanded.Put(k, ex)
if err != nil {
panic(fmt.Errorf("unexpected error while setting key value (key: %s): %w", k, err))
}
}
return expanded
}
return c // c is something else, e.g. string, int, etc.
}