Compare commits

...

2 Commits

Author SHA1 Message Date
wpetit 753a6c9708 fix: temporarily write blob directly as response body without http.ServeContent
arcad/edge/pipeline/head This commit looks good Details
2023-12-05 14:18:22 +01:00
wpetit b120e590b6 fix: do not use goja.Value outside of run loop 2023-12-05 14:14:08 +01:00
2 changed files with 13 additions and 5 deletions

View File

@ -132,17 +132,17 @@ func (s *Server) Exec(ctx context.Context, callableOrFuncname any, args ...inter
value := result.value value := result.value
if promise, ok := IsPromise(value); ok { if promise, ok := IsPromise(value); ok {
value = s.waitForPromise(promise) return s.waitForPromise(promise), nil
} }
return value.Export(), nil return value.Export(), nil
} }
} }
func (s *Server) waitForPromise(promise *goja.Promise) goja.Value { func (s *Server) waitForPromise(promise *goja.Promise) any {
var ( var (
wg sync.WaitGroup wg sync.WaitGroup
value goja.Value value any
) )
wg.Add(1) wg.Add(1)
@ -162,7 +162,7 @@ func (s *Server) waitForPromise(promise *goja.Promise) goja.Value {
return return
} }
value = promise.Result() value = promise.Result().Export()
breakLoop = true breakLoop = true
}) })

View File

@ -2,6 +2,7 @@ package blob
import ( import (
"encoding/json" "encoding/json"
"io"
"io/fs" "io/fs"
"mime/multipart" "mime/multipart"
"net/http" "net/http"
@ -164,7 +165,14 @@ func handleAppDownload(w http.ResponseWriter, r *http.Request) {
} }
}() }()
http.ServeContent(w, r, string(replyMessage.BlobInfo.ID()), replyMessage.BlobInfo.ModTime(), replyMessage.Blob) // TODO Fix usage of ServeContent
// http.ServeContent(w, r, string(replyMessage.BlobInfo.ID()), replyMessage.BlobInfo.ModTime(), replyMessage.Blob)
w.Header().Add("Content-Type", replyMessage.BlobInfo.ContentType())
if _, err := io.Copy(w, replyMessage.Blob); err != nil {
logger.Error(ctx, "could not write blob", logger.CapturedE(errors.WithStack(err)))
}
} }
type uploadedFile struct { type uploadedFile struct {