go-scopes/storage/template.go

35 lines
674 B
Go

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