3
0

Moved js handler vm init to execute

This commit is contained in:
Tomaž Jerman
2022-03-10 13:43:41 +01:00
committed by Peter Grlica
parent 4cdb3ef6ce
commit 460646d45c
2 changed files with 9 additions and 10 deletions
+9 -8
View File
@@ -11,7 +11,6 @@ import (
type (
jsenvHandler struct {
reg jsenvHandlerRegistry
vm jsenv.Vm
}
)
@@ -20,22 +19,24 @@ func JsenvHandler(reg queueHandlerRegistry) *jsenvHandler {
reg: reg,
}
h.preloadVm()
h.register()
return h
}
func (h *jsenvHandler) preloadVm() {
// call jsenv, feed it function and expect a result
func initVm() jsenv.Vm {
tr := jsenv.NewTransformer(jsenv.LoaderJS, jsenv.TargetNoop)
h.vm = jsenv.New(tr)
vm := jsenv.New(tr)
// register a request body reader
h.vm.Register("readRequestBody", ReadRequestBody)
vm.Register("readRequestBody", ReadRequestBody)
return vm
}
func (h jsenvHandler) execute(ctx context.Context, args *jsenvExecuteArgs) (res *jsenvExecuteResults, err error) {
vm := initVm()
res = &jsenvExecuteResults{}
if !args.hasSource {
@@ -48,14 +49,14 @@ func (h jsenvHandler) execute(ctx context.Context, args *jsenvExecuteArgs) (res
return
}
fn, err := h.vm.RegisterFunction(args.Source)
fn, err := vm.RegisterFunction(args.Source)
if err != nil {
err = fmt.Errorf("could not register jsenv function: %s", err)
return
}
out, err := fn.Exec(h.vm.New(expr.UntypedValue(args.Scope)))
out, err := fn.Exec(vm.New(expr.UntypedValue(args.Scope)))
if err != nil {
err = fmt.Errorf("could not exec jsenv function: %s", err)
@@ -155,8 +155,6 @@ func Test_jsenvHandler(t *testing.T) {
ctx = context.Background()
)
handler.preloadVm()
out, err := handler.execute(ctx, tc.params)
if tc.err == nil {