wip: flow task start
This commit is contained in:
@ -1,29 +1,41 @@
|
||||
package loadash
|
||||
|
||||
import (
|
||||
"errors"
|
||||
"fmt"
|
||||
"github.com/dop251/goja"
|
||||
"github.com/loveuer/nfflow/internal/interfaces"
|
||||
"github.com/loveuer/nfflow/internal/sqlType"
|
||||
"github.com/sirupsen/logrus"
|
||||
)
|
||||
|
||||
type PipeMap struct {
|
||||
vm *goja.Runtime
|
||||
FN string `json:"fn"`
|
||||
}
|
||||
|
||||
func NewPipeMap(fn string) (*PipeMap, error) {
|
||||
func NewPipeMap(cfg sqlType.JSONB) (interfaces.Pipe, error) {
|
||||
var (
|
||||
err error
|
||||
pm = &PipeMap{}
|
||||
prefix = "let result; let doc; let myFn;"
|
||||
)
|
||||
|
||||
if err = cfg.Bind(pm); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
if pm.FN == "" {
|
||||
return nil, errors.New("nil cfg")
|
||||
}
|
||||
|
||||
pm.vm = goja.New()
|
||||
if _, err = pm.vm.RunString(prefix); err != nil {
|
||||
logrus.Debugf("NewPipeMap: run prepare=%s err=%v", prefix, err)
|
||||
return nil, err
|
||||
}
|
||||
|
||||
fn = "myFn = " + fn + ";"
|
||||
fn := "myFn = " + pm.FN + ";"
|
||||
if _, err = pm.vm.RunString(fn); err != nil {
|
||||
err = fmt.Errorf("PipeMap: vm run string=%s err=%v", fn, err)
|
||||
logrus.Error(err)
|
||||
@ -33,7 +45,7 @@ func NewPipeMap(fn string) (*PipeMap, error) {
|
||||
return pm, nil
|
||||
}
|
||||
|
||||
func (m *PipeMap) Pipe(data any) (any, error) {
|
||||
func (m *PipeMap) Start(data any) (any, error) {
|
||||
var (
|
||||
err error
|
||||
)
|
||||
@ -50,3 +62,7 @@ func (m *PipeMap) Pipe(data any) (any, error) {
|
||||
|
||||
return value, nil
|
||||
}
|
||||
|
||||
func (m *PipeMap) Close() {
|
||||
m.vm = nil
|
||||
}
|
||||
|
Reference in New Issue
Block a user