fixed panic on fetch returning empty response

This commit is contained in:
syumai 2024-08-11 22:07:10 +09:00
parent 50d520dbd0
commit cf3b68b6b3
2 changed files with 1 additions and 12 deletions

View File

@ -30,5 +30,5 @@ func fetch(namespace js.Value, req *http.Request, init *RequestInit) (*http.Resp
return nil, err return nil, err
} }
return jshttp.ToStreamResponse(jsRes) return jshttp.ToResponse(jsRes)
} }

View File

@ -30,17 +30,6 @@ func ToResponse(res js.Value) (*http.Response, error) {
return toResponse(res, body) return toResponse(res, body)
} }
// ToStreamResponse pipes JavaScript sides Response to TransformStream and converts to *http.Response.
// - see: https://developers.cloudflare.com/workers/runtime-apis/streams/
func ToStreamResponse(res js.Value) (*http.Response, error) {
ts := js.Global().Get("IdentityTransformStream").New()
readable := ts.Get("readable")
writable := ts.Get("writable")
res.Get("body").Call("pipeTo", writable)
body := jsutil.ConvertReadableStreamToReadCloser(readable)
return toResponse(res, body)
}
// ToJSResponse converts *http.Response to JavaScript sides Response class object. // ToJSResponse converts *http.Response to JavaScript sides Response class object.
func ToJSResponse(res *http.Response) js.Value { func ToJSResponse(res *http.Response) js.Value {
return newJSResponse(res.StatusCode, res.Header, res.Body, nil) return newJSResponse(res.StatusCode, res.Header, res.Body, nil)