func expandItemKey()

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