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
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
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)
 | 
			
		||||
 | 
			
		||||
	res, err = b.CallFunc("getError", nil)
 | 
			
		||||
	res, err = b.CallFunc("bytes", []interface{}{wasm.UintArray(bytes)})
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		panic(err)
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	verr, err := wasm.Error(res)
 | 
			
		||||
	nb, err := wasm.Bytes(res)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		panic(err)
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	log.Println(verr)
 | 
			
		||||
	log.Println(nb)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -7,6 +7,8 @@ import (
 | 
			
		||||
	"errors"
 | 
			
		||||
	"log"
 | 
			
		||||
	"syscall/js"
 | 
			
		||||
 | 
			
		||||
	"github.com/vedhavyas/go-wasm/go-converts"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
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()
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func receiveSendBytes(this js.Value, args []js.Value) interface{} {
 | 
			
		||||
	b := args[0]
 | 
			
		||||
	buf := converts.ToBytes(b)
 | 
			
		||||
	return js.TypedArrayOf(buf)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func main() {
 | 
			
		||||
	ch := make(chan bool)
 | 
			
		||||
 | 
			
		||||
@ -41,6 +49,7 @@ func main() {
 | 
			
		||||
	js.Global().Set("multiplier", js.FuncOf(multiplier))
 | 
			
		||||
	js.Global().Set("getBytes", js.FuncOf(getBytes))
 | 
			
		||||
	js.Global().Set("getError", js.FuncOf(getError))
 | 
			
		||||
	js.Global().Set("bytes", js.FuncOf(receiveSendBytes))
 | 
			
		||||
 | 
			
		||||
	res := js.Global().Get("addProxy").Invoke(1, 2)
 | 
			
		||||
	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