go-scopes/storage/template.go

33 lines
653 B
Go

package storage
import (
"strings"
"text/template"
"git.sr.ht/~cco/go-scopes/logging/log"
)
var TemplateFunctions = map[string]any{
"toLower": strings.ToLower,
"add1": func(i int) int { return i + 1 },
"add": func(i, j int) int { return i + j },
}
func Template(name, src string) *template.Template {
t := template.New(name).Funcs(TemplateFunctions)
t, err := t.Parse(src)
if err != nil {
panic(err)
}
return t
}
func BuildSql(t *template.Template, data any) string {
var out strings.Builder
err := t.Execute(&out, data)
if err != nil {
log.Error(err).Msg("storage|template.BuildSql")
return ""
}
return out.String()
}