add helpers
This commit is contained in:
		
							parent
							
								
									801fd37d20
								
							
						
					
					
						commit
						f6ac4e734a
					
				
							
								
								
									
										14
									
								
								bridge.go
									
									
									
									
									
								
							
							
						
						
									
										14
									
								
								bridge.go
									
									
									
									
									
								
							@ -502,3 +502,17 @@ func Error(v interface{}) (errVal error, err error) {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
	return errors.New(str), nil
 | 
						return errors.New(str), nil
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					func UintArray(v interface{}) *[]uint {
 | 
				
			||||||
 | 
						rv := reflect.ValueOf(v)
 | 
				
			||||||
 | 
						if rv.Kind() != reflect.Slice {
 | 
				
			||||||
 | 
							panic("not a slice")
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						buf := make([]uint, rv.Len(), rv.Len())
 | 
				
			||||||
 | 
						for i := 0; i < rv.Len(); i++ {
 | 
				
			||||||
 | 
							buf[i] = uint(rv.Index(i).Uint())
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						return &buf
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
@ -60,15 +60,15 @@ func main() {
 | 
				
			|||||||
	}
 | 
						}
 | 
				
			||||||
	log.Println(bytes)
 | 
						log.Println(bytes)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	res, err = b.CallFunc("getError", nil)
 | 
						res, err = b.CallFunc("bytes", []interface{}{wasm.UintArray(bytes)})
 | 
				
			||||||
	if err != nil {
 | 
						if err != nil {
 | 
				
			||||||
		panic(err)
 | 
							panic(err)
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	verr, err := wasm.Error(res)
 | 
						nb, err := wasm.Bytes(res)
 | 
				
			||||||
	if err != nil {
 | 
						if err != nil {
 | 
				
			||||||
		panic(err)
 | 
							panic(err)
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	log.Println(verr)
 | 
						log.Println(nb)
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
@ -7,6 +7,8 @@ import (
 | 
				
			|||||||
	"errors"
 | 
						"errors"
 | 
				
			||||||
	"log"
 | 
						"log"
 | 
				
			||||||
	"syscall/js"
 | 
						"syscall/js"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						"github.com/vedhavyas/go-wasm/go-converts"
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
func addition(this js.Value, args []js.Value) interface{} {
 | 
					func addition(this js.Value, args []js.Value) interface{} {
 | 
				
			||||||
@ -33,6 +35,12 @@ func getError(this js.Value, args []js.Value) interface{} {
 | 
				
			|||||||
	return err.Error()
 | 
						return err.Error()
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					func receiveSendBytes(this js.Value, args []js.Value) interface{} {
 | 
				
			||||||
 | 
						b := args[0]
 | 
				
			||||||
 | 
						buf := converts.ToBytes(b)
 | 
				
			||||||
 | 
						return js.TypedArrayOf(buf)
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
func main() {
 | 
					func main() {
 | 
				
			||||||
	ch := make(chan bool)
 | 
						ch := make(chan bool)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -41,6 +49,7 @@ func main() {
 | 
				
			|||||||
	js.Global().Set("multiplier", js.FuncOf(multiplier))
 | 
						js.Global().Set("multiplier", js.FuncOf(multiplier))
 | 
				
			||||||
	js.Global().Set("getBytes", js.FuncOf(getBytes))
 | 
						js.Global().Set("getBytes", js.FuncOf(getBytes))
 | 
				
			||||||
	js.Global().Set("getError", js.FuncOf(getError))
 | 
						js.Global().Set("getError", js.FuncOf(getError))
 | 
				
			||||||
 | 
						js.Global().Set("bytes", js.FuncOf(receiveSendBytes))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	res := js.Global().Get("addProxy").Invoke(1, 2)
 | 
						res := js.Global().Get("addProxy").Invoke(1, 2)
 | 
				
			||||||
	log.Printf("1 + 2 = %d\n", res.Int())
 | 
						log.Printf("1 + 2 = %d\n", res.Int())
 | 
				
			||||||
 | 
				
			|||||||
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										14
									
								
								go-converts/wasm.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										14
									
								
								go-converts/wasm.go
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,14 @@
 | 
				
			|||||||
 | 
					// +build js,wasm
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					package converts
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import "syscall/js"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					func ToBytes(v js.Value) []byte {
 | 
				
			||||||
 | 
						buf := make([]byte, v.Length(), v.Length())
 | 
				
			||||||
 | 
						for i := 0; i < v.Length(); i++ {
 | 
				
			||||||
 | 
							buf[i] = byte(v.Index(i).Int())
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						return buf
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user