in utils/hints.go [344:380]
func GetHintsAsList(hints mapstr.M, key string) []mapstr.M {
raw := GetHintMapStr(hints, key, "")
if raw == nil {
return nil
}
var words, nums []string
for key := range raw {
if _, err := strconv.Atoi(key); err != nil {
words = append(words, key)
continue
} else {
nums = append(nums, key)
}
}
sort.Strings(nums)
var configs []mapstr.M
for _, key := range nums {
rawCfg := raw[key]
if config, ok := rawCfg.(mapstr.M); ok {
configs = append(configs, config)
}
}
defaultMap := mapstr.M{}
for _, word := range words {
defaultMap[word] = raw[word]
}
if len(defaultMap) != 0 {
configs = append(configs, defaultMap)
}
return configs
}