feat(extension): get exception stacks on promise error (#630)

This commit is contained in:
Levi authored and GitHub committed 2024-08-07 12:04:45 +08:00
1 parent d119de7b98
commit 3fd3dd49d2
5 files changed
+45 -17

No files matched your search

+9 -1
View File
@@ -178,7 +178,15 @@ func resolveResult(value goja.Value) (any, error) {
if err, ok := p.Result().Export().(error); ok {
return nil, err
} else {
return nil, errors.New(p.Result().String())
stack := p.Result().String()
result := p.Result()
if ro, ok := result.(*goja.Object); ok {
stackVal := ro.Get("stack")
if stackVal != nil && stackVal.String() != "" {
stack = stackVal.String()
}
}
return nil, errors.New(stack)
}
}
}
+8 -8
View File
@@ -131,13 +131,14 @@ type XMLHttpRequest struct {
aborted bool
proxyHandler func(r *http.Request) (*url.URL, error)
Upload *XMLHttpRequestUpload `json:"upload"`
Timeout int `json:"timeout"`
ReadyState int `json:"readyState"`
Status int `json:"status"`
StatusText string `json:"statusText"`
Response string `json:"response"`
ResponseText string `json:"responseText"`
WithCredentials bool `json:"withCredentials"`
Upload *XMLHttpRequestUpload `json:"upload"`
Timeout int `json:"timeout"`
ReadyState int `json:"readyState"`
Status int `json:"status"`
StatusText string `json:"statusText"`
Response string `json:"response"`
ResponseText string `json:"responseText"`
// https://developer.mozilla.org/zh-CN/docs/Web/API/XMLHttpRequest/responseURL
// https://xhr.spec.whatwg.org/#the-responseurl-attribute
ResponseUrl string `json:"responseURL"`
@@ -145,7 +146,6 @@ type XMLHttpRequest struct {
// https://developer.mozilla.org/en-US/docs/Web/API/RequestInit#redirect
// https://fetch.spec.whatwg.org/#concept-request-redirect-mode
Redirect string `json:"redirect"`
*EventProp
Onreadystatechange func(event *ProgressEvent) `json:"onreadystatechange"`
}
+7 -1
View File
@@ -155,7 +155,13 @@ func (d *Downloader) DeleteExtension(identity string) error {
break
}
}
return d.storage.Delete(bucketExtension, identity)
if err = d.storage.Delete(bucketExtension, identity); err != nil {
return err
}
if err = d.storage.Delete(bucketExtensionStorage, identity); err != nil {
return err
}
return nil
}
func (d *Downloader) GetExtensions() []*Extension {