From 14f3ae74a71e5f01389f85765fbcc5836dbf543d Mon Sep 17 00:00:00 2001 From: Joel Wetzell Date: Wed, 18 Mar 2026 21:51:25 -0500 Subject: [PATCH] try processing return value of script.js as an array and a map --- internal/processor/script-js.go | 24 +++++++++++++++++++----- 1 file changed, 19 insertions(+), 5 deletions(-) diff --git a/internal/processor/script-js.go b/internal/processor/script-js.go index f952212..e3ed939 100644 --- a/internal/processor/script-js.go +++ b/internal/processor/script-js.go @@ -2,7 +2,6 @@ package processor import ( "context" - "encoding/json" "fmt" "github.com/jwetzell/showbridge-go/internal/common" @@ -63,10 +62,25 @@ func (sj *ScriptJS) Process(ctx context.Context, wrappedPayload common.WrappedPa outputObject, ok := output.(*quickjs.Object) if ok { - var outputMap map[string]interface{} - err := json.Unmarshal([]byte(outputObject.String()), &outputMap) - wrappedPayload.Payload = outputMap - return wrappedPayload, err + var outputSlice []interface{} + + err = outputObject.Into(&outputSlice) + + if err != nil { + var outputMap map[string]interface{} + err = outputObject.Into(&outputMap) + if err != nil { + wrappedPayload.End = true + return wrappedPayload, err + } else { + wrappedPayload.Payload = outputMap + return wrappedPayload, nil + } + + } else { + wrappedPayload.Payload = outputSlice + return wrappedPayload, nil + } } wrappedPayload.Payload = output