in sources/dynamodb/data.go [173:218]
func stripNull(a *dynamodb.AttributeValue) (interface{}, error) {
var err error
switch {
case a.M != nil:
cvtMap := make(map[string]interface{})
for k, v := range a.M {
cvtMap[k], err = stripNull(v)
if err != nil {
return nil, err
}
}
return cvtMap, nil
case a.L != nil:
var cvtList []interface{}
for _, v := range a.L {
c, err := stripNull(v)
if err != nil {
return nil, err
}
cvtList = append(cvtList, c)
}
return cvtList, nil
case a.B != nil:
return string(a.B), nil
case a.BOOL != nil:
return a.BOOL, nil
case a.BS != nil:
var bs []string
for _, b := range a.BS {
bs = append(bs, string(b))
}
return bs, nil
case a.N != nil:
return *a.N, nil
case a.NS != nil:
return a.NS, nil
case a.NULL != nil:
return a.NULL, nil
case a.S != nil:
return *a.S, nil
case a.SS != nil:
return a.SS, nil
default:
return nil, fmt.Errorf("unknown type of AttributeValue: %v", a)
}
}