fix: make toToml swallow errors consistent with toYaml and toJson

Previously toToml returned err.Error() on failure, rendering the error
message string into the template output. toYAML and toJSON both return
an empty string on error to swallow it silently inside templates.

This aligns toToml behavior with the other serialization functions.

Fixes: https://github.com/helm/helm/issues/31430
Signed-off-by: Gagan Gupta <realgagangupta@users.noreply.github.com>
pull/31915/head
Gagan Gupta 2 weeks ago
parent e31a078e6e
commit e62421055a

@ -150,6 +150,7 @@ func fromYAMLArray(str string) []any {
// toTOML takes an interface, marshals it to toml, and returns a string. It will
// always return a string, even on marshal error (empty string).
// Errors are swallowed, consistent with toYAML and toJSON behavior.
//
// This is designed to be called from a template.
func toTOML(v any) string {
@ -157,7 +158,8 @@ func toTOML(v any) string {
e := toml.NewEncoder(b)
err := e.Encode(v)
if err != nil {
return err.Error()
// Swallow errors inside of a template.
return ""
}
return b.String()
}

Loading…
Cancel
Save