mirror of
https://github.com/syumai/workers.git
synced 2025-03-10 17:29:11 +00:00
Merge pull request #124 from syumai/fix-fetch-stream-empty-response
fixed panic on fetch returning empty response
This commit is contained in:
commit
ad33cfb9ba
@ -30,5 +30,5 @@ func fetch(namespace js.Value, req *http.Request, init *RequestInit) (*http.Resp
|
||||
return nil, err
|
||||
}
|
||||
|
||||
return jshttp.ToStreamResponse(jsRes)
|
||||
return jshttp.ToResponse(jsRes)
|
||||
}
|
||||
|
@ -30,17 +30,6 @@ func ToResponse(res js.Value) (*http.Response, error) {
|
||||
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.
|
||||
func ToJSResponse(res *http.Response) js.Value {
|
||||
return newJSResponse(res.StatusCode, res.Header, res.Body, nil)
|
||||
|
Loading…
x
Reference in New Issue
Block a user