in plugins/plugins.go [153:174]
func DecodeMap(record map[interface{}]interface{}) (map[interface{}]interface{}, error) {
for k, v := range record {
switch t := v.(type) {
case []byte:
// convert all byte slices to strings
record[k] = string(t)
case map[interface{}]interface{}:
decoded, err := DecodeMap(t)
if err != nil {
return nil, err
}
record[k] = decoded
case []interface{}:
decoded, err := decodeSlice(t)
if err != nil {
return nil, err
}
record[k] = decoded
}
}
return record, nil
}