23 lines
564 B
Go
Raw Normal View History

2023-02-23 23:20:21 +09:00
package jshttp
import (
"net/http"
"syscall/js"
2023-02-23 23:20:21 +09:00
"github.com/syumai/workers/internal/jsutil"
)
func ToJSResponse(w *ResponseWriterBuffer) (js.Value, error) {
2023-02-22 19:23:56 +09:00
<-w.ReadyCh // wait until ready
status := w.StatusCode
if status == 0 {
status = http.StatusOK
}
2023-02-23 23:20:21 +09:00
respInit := jsutil.NewObject()
respInit.Set("status", status)
respInit.Set("statusText", http.StatusText(status))
respInit.Set("headers", ToJSHeader(w.Header()))
2023-02-23 23:20:21 +09:00
readableStream := jsutil.ConvertReaderToReadableStream(w.Reader)
return jsutil.ResponseClass.New(readableStream, respInit), nil
}