feat: adds Referer, Host, RequestURI and User-Agent on request

This commit is contained in:
Nicolas Lepage
2025-11-21 10:16:13 +01:00
parent 9ae9f3c443
commit fb62588b31

View File

@@ -11,6 +11,10 @@ import (
"github.com/nlepage/go-wasm-http-server/v2/internal/safejs"
)
var (
navigator = safejs.Safe(js.Global().Get("navigator"))
)
// Request builds and returns the equivalent http.Request
func Request(uvalue js.Value) (*http.Request, error) {
value := safejs.Safe(uvalue)
@@ -66,13 +70,21 @@ func Request(uvalue js.Value) (*http.Request, error) {
req := &http.Request{
Method: method,
URL: u,
Host: u.Host,
Body: bodyReader,
Header: make(http.Header),
Proto: "HTTP/1.1",
ProtoMajor: 1,
ProtoMinor: 1,
RequestURI: rawURL,
}
referer, err := value.GetString("referrer")
if err != nil {
return nil, err
}
req.Header.Set("Referer", referer)
headers, err := value.Get("headers")
if err != nil {
return nil, err
@@ -115,5 +127,13 @@ func Request(uvalue js.Value) (*http.Request, error) {
req.Header.Set(key, value)
}
if req.UserAgent() == "" {
userAgent, err := navigator.GetString("userAgent")
if err != nil {
return nil, err
}
req.Header.Set("User-Agent", userAgent)
}
return req, nil
}