From 460646d45c7bf794c2ddf6cad160b6c7e334054f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Toma=C5=BE=20Jerman?= Date: Thu, 10 Mar 2022 13:43:41 +0100 Subject: [PATCH] Moved js handler vm init to execute --- automation/automation/jsenv_handler.go | 17 +++++++++-------- automation/automation/jsenv_handler_test.go | 2 -- 2 files changed, 9 insertions(+), 10 deletions(-) diff --git a/automation/automation/jsenv_handler.go b/automation/automation/jsenv_handler.go index 184decf0f..f5b07ef82 100644 --- a/automation/automation/jsenv_handler.go +++ b/automation/automation/jsenv_handler.go @@ -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) diff --git a/automation/automation/jsenv_handler_test.go b/automation/automation/jsenv_handler_test.go index 5ffe1e3a7..330238811 100644 --- a/automation/automation/jsenv_handler_test.go +++ b/automation/automation/jsenv_handler_test.go @@ -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 {