4 Commits

Author SHA1 Message Date
Joel Wetzell
38857f7a29 Merge pull request #3 from jwetzell/fix/js-processor-err-handling
fix missing error handling in script.js
2025-12-01 22:13:25 -06:00
Joel Wetzell
45965a4eac fix missing error handling in script.js 2025-12-01 22:12:10 -06:00
Joel Wetzell
b372b53422 Merge pull request #2 from jwetzell/processing/string-create
add string.create processor
2025-12-01 22:10:48 -06:00
Joel Wetzell
97cf721abc add string.create processor 2025-12-01 22:05:53 -06:00
2 changed files with 61 additions and 0 deletions

View File

@@ -31,6 +31,10 @@ func (sj *ScriptJS) Process(ctx context.Context, payload any) (any, error) {
_, err = vm.Eval(sj.Program, quickjs.EvalGlobal)
if err != nil {
return nil, err
}
output, err := vm.GetProperty(vm.GlobalObject(), payloadAtom)
if err != nil {

View File

@@ -0,0 +1,57 @@
package processing
import (
"bytes"
"context"
"fmt"
"text/template"
)
type StringCreate struct {
config ProcessorConfig
Template *template.Template
}
func (sc *StringCreate) Process(ctx context.Context, payload any) (any, error) {
var templateBuffer bytes.Buffer
err := sc.Template.Execute(&templateBuffer, payload)
if err != nil {
return nil, err
}
payloadString := templateBuffer.String()
return payloadString, nil
}
func (sc *StringCreate) Type() string {
return sc.config.Type
}
func init() {
RegisterProcessor(ProcessorRegistration{
Type: "string.create",
New: func(config ProcessorConfig) (Processor, error) {
params := config.Params
tmpl, ok := params["template"]
if !ok {
return nil, fmt.Errorf("string.create requires a template parameter")
}
templateString, ok := tmpl.(string)
if !ok {
return nil, fmt.Errorf("string.create template must be a string")
}
templateTemplate, err := template.New("template").Parse(templateString)
if err != nil {
return nil, err
}
return &StringCreate{config: config, Template: templateTemplate}, nil
},
})
}