1
0
mirror of https://github.com/pocketbase/pocketbase.git synced 2025-01-26 15:03:00 +02:00
pocketbase/tools/template/renderer.go
2023-07-23 15:37:30 +03:00

34 lines
624 B
Go

package template
import (
"bytes"
"errors"
"html/template"
)
// Renderer defines a single parsed template.
type Renderer struct {
template *template.Template
parseError error
}
// Render executes the template with the specified data as the dot object
// and returns the result as plain string.
func (r *Renderer) Render(data any) (string, error) {
if r.parseError != nil {
return "", r.parseError
}
if r.template == nil {
return "", errors.New("invalid or nil template")
}
buf := new(bytes.Buffer)
if err := r.template.Execute(buf, data); err != nil {
return "", err
}
return buf.String(), nil
}