From a07bbb741216c4c8ea051d52f3ea4a52697a06c7 Mon Sep 17 00:00:00 2001 From: Star Date: Fri, 12 Dec 2025 21:45:50 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8D=87=E7=BA=A7=E5=BC=82=E5=B8=B8=E6=9C=BA?= =?UTF-8?q?=E5=88=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- go.mod | 20 ++++++++++---------- http.go | 41 +++++++++++++++++++++++++++++++---------- 2 files changed, 41 insertions(+), 20 deletions(-) diff --git a/go.mod b/go.mod index f12f2d9..28234ef 100644 --- a/go.mod +++ b/go.mod @@ -5,16 +5,16 @@ go 1.24.0 toolchain go1.24.3 require ( - apigo.cc/gojs v0.0.28 - apigo.cc/gojs/console v0.0.3 - apigo.cc/gojs/file v0.0.6 - apigo.cc/gojs/util v0.0.15 + apigo.cc/gojs v0.0.32 + apigo.cc/gojs/console v0.0.4 + apigo.cc/gojs/file v0.0.8 + apigo.cc/gojs/util v0.0.17 github.com/go-rod/rod v0.116.2 github.com/gorilla/websocket v1.5.3 github.com/ssgo/config v1.7.10 github.com/ssgo/httpclient v1.7.8 - github.com/ssgo/log v1.7.9 - github.com/ssgo/s v1.7.24 + github.com/ssgo/log v1.7.10 + github.com/ssgo/s v1.7.25 github.com/ssgo/u v1.7.23 ) @@ -44,9 +44,9 @@ require ( github.com/ysmood/gson v0.7.3 // indirect github.com/ysmood/leakless v0.9.0 // indirect github.com/yusufpapurcu/wmi v1.2.4 // indirect - golang.org/x/crypto v0.44.0 // indirect - golang.org/x/net v0.47.0 // indirect - golang.org/x/sys v0.38.0 // indirect - golang.org/x/text v0.31.0 // indirect + golang.org/x/crypto v0.46.0 // indirect + golang.org/x/net v0.48.0 // indirect + golang.org/x/sys v0.39.0 // indirect + golang.org/x/text v0.32.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/http.go b/http.go index 27fb335..89c99a0 100644 --- a/http.go +++ b/http.go @@ -128,7 +128,10 @@ func setConfig(cli *Http, opt *gojs.Obj) { func makeResult(r *httpclient.Result, vm *goja.Runtime) goja.Value { if r.Error != nil { - panic(vm.NewGoError(r.Error)) + // panic(vm.NewGoError(r.Error)) + vm.SetData("_lastError", r.Error) + gojs.GetLogger(vm).Error(r.Error.Error()) + return nil } headers := map[string]string{} for k, v := range r.Response.Header { @@ -368,7 +371,10 @@ func (hc *Http) Connect(argsIn goja.FunctionCall, vm *goja.Runtime) goja.Value { } return vm.ToValue(gojs.MakeMap(ws)) } else { - panic(vm.NewGoError(err)) + // panic(vm.NewGoError(err)) + vm.SetData("_lastError", err) + gojs.GetLogger(vm).Error(err.Error()) + return nil } } @@ -498,7 +504,10 @@ func (ws *WS) PingCount(argsIn goja.FunctionCall, vm *goja.Runtime) goja.Value { func (ws *WS) Read(argsIn goja.FunctionCall, vm *goja.Runtime) goja.Value { typ, data, err := readWSMessage(ws.conn) if err != nil { - panic(vm.NewGoError(err)) + // panic(vm.NewGoError(err)) + vm.SetData("_lastError", err) + gojs.GetLogger(vm).Error(err.Error()) + return vm.ToValue(false) } return vm.ToValue(gojs.Map{ "type": typ, @@ -559,17 +568,23 @@ func (ws *WS) Write(argsIn goja.FunctionCall, vm *goja.Runtime) goja.Value { err = ws.writeMessage(websocket.TextMessage, u.JsonBytes(args.Any(0))) } if err != nil { - panic(vm.NewGoError(err)) + // panic(vm.NewGoError(err)) + vm.SetData("_lastError", err) + gojs.GetLogger(vm).Error(err.Error()) + return vm.ToValue(false) } - return nil + return vm.ToValue(true) } func (ws *WS) Ping(argsIn goja.FunctionCall, vm *goja.Runtime) goja.Value { err := ws.writeMessage(websocket.PingMessage, nil) if err != nil { - panic(vm.NewGoError(err)) + // panic(vm.NewGoError(err)) + vm.SetData("_lastError", err) + gojs.GetLogger(vm).Error(err.Error()) + return vm.ToValue(false) } - return nil + return vm.ToValue(true) } func (ws *WS) WriteMessage(argsIn goja.FunctionCall, vm *goja.Runtime) goja.Value { @@ -592,9 +607,12 @@ func (ws *WS) WriteMessage(argsIn goja.FunctionCall, vm *goja.Runtime) goja.Valu err = ws.writeMessage(websocket.TextMessage, args.Bytes(1)) } if err != nil { - panic(vm.NewGoError(err)) + // panic(vm.NewGoError(err)) + vm.SetData("_lastError", err) + gojs.GetLogger(vm).Error(err.Error()) + return vm.ToValue(false) } - return nil + return vm.ToValue(true) } func (ws *WS) Close(argsIn goja.FunctionCall, vm *goja.Runtime) goja.Value { @@ -604,7 +622,10 @@ func (ws *WS) Close(argsIn goja.FunctionCall, vm *goja.Runtime) goja.Value { ws.closed = true err := ws.conn.Close() if err != nil { - panic(vm.NewGoError(err)) + // panic(vm.NewGoError(err)) + vm.SetData("_lastError", err) + gojs.GetLogger(vm).Error(err.Error()) + return vm.ToValue(false) } <-ws.pingStopChan <-ws.closeChan