mirror of
https://github.com/nlepage/go-wasm-http-server.git
synced 2025-03-10 09:27:08 +00:00
fix: crash when request has no body
This commit is contained in:
parent
74cbaf89b5
commit
8abad8cb77
@ -73,6 +73,14 @@ func (v Value) IndexString(i int) (string, error) {
|
||||
return safejs.Value(sv).String()
|
||||
}
|
||||
|
||||
func (v Value) IsNull() bool {
|
||||
return safejs.Value(v).IsNull()
|
||||
}
|
||||
|
||||
func (v Value) IsUndefined() bool {
|
||||
return safejs.Value(v).IsUndefined()
|
||||
}
|
||||
|
||||
func (v Value) New(args ...any) (Value, error) {
|
||||
args = toJSValue(args).([]any)
|
||||
r, err := safejs.Value(v).New(args...)
|
||||
|
28
request.go
28
request.go
@ -1,6 +1,7 @@
|
||||
package wasmhttp
|
||||
|
||||
import (
|
||||
"io"
|
||||
"net/http"
|
||||
"net/http/httptest"
|
||||
"syscall/js"
|
||||
@ -13,16 +14,6 @@ import (
|
||||
func Request(uvalue js.Value) (*http.Request, error) {
|
||||
value := safejs.Safe(uvalue)
|
||||
|
||||
body, err := value.Get("body")
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
r, err := body.Call("getReader")
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
method, err := value.GetString("method")
|
||||
if err != nil {
|
||||
return nil, err
|
||||
@ -33,10 +24,25 @@ func Request(uvalue js.Value) (*http.Request, error) {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
body, err := value.Get("body")
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
var bodyReader io.Reader
|
||||
if !body.IsUndefined() && !body.IsNull() {
|
||||
r, err := body.Call("getReader")
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
bodyReader = readablestream.NewReader(r)
|
||||
}
|
||||
|
||||
req := httptest.NewRequest(
|
||||
method,
|
||||
url,
|
||||
readablestream.NewReader(r),
|
||||
bodyReader,
|
||||
)
|
||||
|
||||
headers, err := value.Get("headers")
|
||||
|
Loading…
x
Reference in New Issue
Block a user