Files
template-builder/templateBuilder.go

50 lines
840 B
Go

package templatebuilder
import (
"bytes"
"html/template"
"os"
)
type TemplateBuilder struct {
}
func NewTemplateBuilder() *TemplateBuilder {
return &TemplateBuilder{}
}
func (tb *TemplateBuilder) GenerateFile(templatePath, outputFile string, data any) error {
tmpl, err := template.ParseFiles(templatePath)
if err != nil {
return err
}
f, err := os.Create(outputFile)
if err != nil {
return err
}
defer f.Close()
err = tmpl.Execute(f, data)
if err != nil {
return err
}
return nil
}
func (tb *TemplateBuilder) Generate(templatePath string, data any) (b []byte, err error) {
tmpl, err := template.ParseFiles(templatePath)
if err != nil {
return
}
var buf bytes.Buffer
err = tmpl.Execute(&buf, data)
if err != nil {
return
}
b = buf.Bytes()
return
}