From ad91be50c4b51ba3a6f6027fcdbdd4c2f942ea1d Mon Sep 17 00:00:00 2001 From: Joel Wetzell Date: Thu, 14 May 2026 19:49:59 -0500 Subject: [PATCH] pre-intialize and instance of the WASM script to use in process --- internal/processor/script-wasm.go | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/internal/processor/script-wasm.go b/internal/processor/script-wasm.go index 3767d56..3954197 100644 --- a/internal/processor/script-wasm.go +++ b/internal/processor/script-wasm.go @@ -14,7 +14,7 @@ import ( type ScriptWASM struct { config config.ProcessorConfig - Program *extism.CompiledPlugin + Program *extism.Plugin Function string } @@ -28,14 +28,7 @@ func (sw *ScriptWASM) Process(ctx context.Context, wrappedPayload common.Wrapped return wrappedPayload, fmt.Errorf("script.wasm can only process a byte array") } - program, err := sw.Program.Instance(ctx, extism.PluginInstanceConfig{}) - - if err != nil { - wrappedPayload.End = true - return wrappedPayload, err - } - - _, output, err := program.Call(sw.Function, payloadBytes) + _, output, err := sw.Program.Call(sw.Function, payloadBytes) if err != nil { wrappedPayload.End = true @@ -117,7 +110,13 @@ func init() { return nil, err } - return &ScriptWASM{config: processorConfig, Program: program, Function: functionString}, nil + programInstance, err := program.Instance(context.Background(), extism.PluginInstanceConfig{}) + + if err != nil { + return nil, err + } + + return &ScriptWASM{config: processorConfig, Program: programInstance, Function: functionString}, nil }, }) }