//go:build js && wasm package ultraviolet import "syscall/js" func WebSetHandlers(handlerCreate func([]js.Value, js.Value, js.Value), handlerUpdate func([]js.Value, js.Value, js.Value)) { js.Global().Set("Create", webWrap(handlerCreate)) js.Global().Set("Update", webWrap(handlerUpdate)) } func webWrap(handler func([]js.Value, js.Value, js.Value)) js.Func { wrapper := func(this js.Value, args1 []js.Value) interface{} { return js.Global().Get("Promise").New( js.FuncOf( func(this js.Value, args2 []js.Value) interface{} { go handler(args1, args2[0], args2[1]) return nil }, ), ) } return js.FuncOf(wrapper) }