in pkg/config/config.go [68:85]
func InterfaceToConfiguration(i interface{}) (Configuration, bool) {
// Helper, that reduces need for reflection calls, i.e. MapIndex
// from: https://github.com/peterbourgon/mergemap/blob/master/mergemap.go
value := reflect.ValueOf(i)
if value.Kind() == reflect.Map {
m := Configuration{}
for _, k := range value.MapKeys() {
v := value.MapIndex(k).Interface()
if nestedMap, ok := InterfaceToConfiguration(v); ok {
m[k.String()] = nestedMap
} else {
m[k.String()] = v
}
}
return m, true
}
return Configuration{}, false
}