Skip to content

Commit fc73346

Browse files
Merge pull request #283 from andig/patch-1
Always return empty map instead of nil when conversion fails
2 parents 6002cff + ed018f4 commit fc73346

File tree

1 file changed

+9
-21
lines changed

1 file changed

+9
-21
lines changed

map.go

Lines changed: 9 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ func toMapE[K comparable, V any](i any, keyFn func(any) K, valFn func(any) V) (m
1515
m := map[K]V{}
1616

1717
if i == nil {
18-
return nil, fmt.Errorf(errorMsg, i, i, m)
18+
return m, fmt.Errorf(errorMsg, i, i, m)
1919
}
2020

2121
switch v := i.(type) {
@@ -45,14 +45,10 @@ func toMapE[K comparable, V any](i any, keyFn func(any) K, valFn func(any) V) (m
4545

4646
case string:
4747
err := jsonStringToObject(v, &m)
48-
if err != nil {
49-
return nil, err
50-
}
51-
52-
return m, nil
48+
return m, err
5349

5450
default:
55-
return nil, fmt.Errorf(errorMsg, i, i, m)
51+
return m, fmt.Errorf(errorMsg, i, i, m)
5652
}
5753
}
5854

@@ -112,23 +108,19 @@ func ToStringMapStringSliceE(i any) (map[string][]string, error) {
112108
for k, val := range v {
113109
key, err := ToStringE(k)
114110
if err != nil {
115-
return nil, fmt.Errorf(errorMsg, i, i, m)
111+
return m, fmt.Errorf(errorMsg, i, i, m)
116112
}
117113
value, err := ToStringSliceE(val)
118114
if err != nil {
119-
return nil, fmt.Errorf(errorMsg, i, i, m)
115+
return m, fmt.Errorf(errorMsg, i, i, m)
120116
}
121117
m[key] = value
122118
}
123119
case string:
124120
err := jsonStringToObject(v, &m)
125-
if err != nil {
126-
return nil, err
127-
}
128-
129-
return m, nil
121+
return m, err
130122
default:
131-
return nil, fmt.Errorf(errorMsg, i, i, m)
123+
return m, fmt.Errorf(errorMsg, i, i, m)
132124
}
133125

134126
return m, nil
@@ -180,15 +172,11 @@ func toStringMapIntE[T int | int64](i any, fn func(any) T, fnE func(any) (T, err
180172

181173
case string:
182174
err := jsonStringToObject(v, &m)
183-
if err != nil {
184-
return nil, err
185-
}
186-
187-
return m, nil
175+
return m, err
188176
}
189177

190178
if reflect.TypeOf(i).Kind() != reflect.Map {
191-
return nil, fmt.Errorf(errorMsg, i, i, m)
179+
return m, fmt.Errorf(errorMsg, i, i, m)
192180
}
193181

194182
mVal := reflect.ValueOf(m)

0 commit comments

Comments
 (0)