Skip to content

Commit 408c8b2

Browse files
authored
add template functions fromYamlArray and fromJsonArrray (#145)
1 parent d6e590a commit 408c8b2

File tree

1 file changed

+32
-13
lines changed

1 file changed

+32
-13
lines changed

internal/templatex/functions.go

Lines changed: 32 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -24,19 +24,22 @@ import (
2424
// template FuncMap generator
2525
func FuncMap() template.FuncMap {
2626
return template.FuncMap{
27-
"toYaml": toYaml,
28-
"mustToYaml": toYaml,
29-
"fromYaml": fromYaml,
30-
"mustFromYaml": fromYaml,
31-
"toJson": toJson,
32-
"mustToJson": toJson,
33-
"toPrettyJson": toPrettyJson,
34-
"mustToPrettyJson": toPrettyJson,
35-
"toRawJson": toRawJson,
36-
"mustToRawJson": toRawJson,
37-
"fromJson": fromJson,
38-
"mustFromJson": fromJson,
39-
"required": required,
27+
"toYaml": toYaml,
28+
"mustToYaml": toYaml,
29+
"fromYaml": fromYaml,
30+
"fromYamlArray": fromYamlArray,
31+
"mustFromYaml": fromYaml,
32+
"toJson": toJson,
33+
"mustToJson": toJson,
34+
"toPrettyJson": toPrettyJson,
35+
"mustToPrettyJson": toPrettyJson,
36+
"toRawJson": toRawJson,
37+
"mustToRawJson": toRawJson,
38+
"fromJson": fromJson,
39+
"mustFromJson": fromJson,
40+
"fromJsonArray": fromJsonArray,
41+
"mustFromJsonArray": fromJsonArray,
42+
"required": required,
4043
}
4144
}
4245

@@ -80,6 +83,14 @@ func fromYaml(data string) (any, error) {
8083
return res, nil
8184
}
8285

86+
func fromYamlArray(data string) ([]any, error) {
87+
var res []any
88+
if err := kyaml.Unmarshal([]byte(data), &res); err != nil {
89+
return nil, err
90+
}
91+
return res, nil
92+
}
93+
8394
func toJson(data any) (string, error) {
8495
raw, err := json.Marshal(data)
8596
if err != nil {
@@ -115,6 +126,14 @@ func fromJson(data string) (any, error) {
115126
return res, nil
116127
}
117128

129+
func fromJsonArray(data string) ([]any, error) {
130+
var res []any
131+
if err := json.Unmarshal([]byte(data), &res); err != nil {
132+
return nil, err
133+
}
134+
return res, nil
135+
}
136+
118137
func required(warn string, data any) (any, error) {
119138
if data == nil {
120139
return data, errors.New(warn)

0 commit comments

Comments
 (0)