github.com/0chain/gosdk@v1.17.11/wasmsdk/jsbridge/object.go (about) 1 //go:build js && wasm 2 // +build js,wasm 3 4 package jsbridge 5 6 import ( 7 "encoding/json" 8 "fmt" 9 "syscall/js" 10 ) 11 12 func NewArray(items ...interface{}) js.Value { 13 14 defer func() { 15 if r := recover(); r != nil { 16 fmt.Println("NewStrings: ", r) 17 } 18 }() 19 20 list := js.Global().Get("Array").New() 21 22 for _, it := range items { 23 list.Call("push", js.ValueOf(it)) 24 } 25 26 return list 27 } 28 29 func NewJsError(message interface{}) js.Value { 30 return js.ValueOf(map[string]interface{}{ 31 "error": fmt.Sprint(message), 32 }) 33 } 34 35 func NewObject(obj interface{}) js.Value { 36 buf, err := json.Marshal(obj) 37 if err != nil { 38 return js.Null() 39 } 40 41 j := js.Global().Get("JSON") 42 43 return j.Call("parse", string(buf)) 44 } 45 46 func NewBytes(buf []byte) js.Value { 47 48 uint8Array := js.Global().Get("Uint8Array").New(len(buf)) 49 50 js.CopyBytesToJS(uint8Array, buf) 51 52 return uint8Array 53 } 54 55 // var arrayBuffer = new ArrayBuffer(100); 56 // var uint8Array = new Uint8Array(arrayBuffer); 57 // for (var i = 0; i < 100; i++) { 58 // uint8Array[i] = i; 59 // } 60 61 // var blob = new Blob([uint8Array], { type: "image/png" }); 62 // var blobVal = URL.createObjectURL(blob); 63 // func CreateObjectURL(buf []byte) string { 64 // j := js.Global().Get("URL") 65 66 // options := js.Global().Get("Object").New() 67 // options.Set("type", "") 68 69 // blob := js.Global().Get("Blob").New(args ...interface{}) 70 71 // u := j.Call("createObjectURL", object) 72 73 // return u.String() 74 // }