From dcd562c12acda3f86b5514d0b7cadd2050c31f5c Mon Sep 17 00:00:00 2001 From: Jono Wenger <jono@elixxir.io> Date: Fri, 9 Sep 2022 12:04:50 -0700 Subject: [PATCH] Add JsToJson to convert from a javascript object to JSON --- utils/utils.go | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/utils/utils.go b/utils/utils.go index 1d7f9ca5..816f4f67 100644 --- a/utils/utils.go +++ b/utils/utils.go @@ -25,6 +25,7 @@ import ( var ( Error = js.Global().Get("Error") + JSON = js.Global().Get("JSON") Promise = js.Global().Get("Promise") Uint8Array = js.Global().Get("Uint8Array") ) @@ -62,15 +63,20 @@ func WrapCB(parent js.Value, m string) func(args ...interface{}) js.Value { } // JsonToJS converts a marshalled JSON bytes to a Javascript object. -func JsonToJS(src []byte) js.Value { +func JsonToJS(src []byte) (js.Value, error) { var inInterface map[string]interface{} err := json.Unmarshal(src, &inInterface) if err != nil { Throw(TypeError, err) - return js.ValueOf(nil) + return js.ValueOf(nil), err } - return js.ValueOf(inInterface) + return js.ValueOf(inInterface), nil +} + +// JsToJson converts the Javascript value to JSON. +func JsToJson(value js.Value) string { + return JSON.Call("stringify", value).String() } type PromiseFn func(resolve, reject func(args ...interface{}) js.Value) -- GitLab