Files
headplane/cmd/hp_ssh/hp_ssh.go
T
2025-06-16 11:45:23 -04:00

50 lines
1.0 KiB
Go

//go:build js && wasm
package main
import (
"context"
"log"
"syscall/js"
"github.com/tale/headplane/internal/hp_ipn"
)
func main() {
log.Printf("Loading WASM Headplane SSH module")
js.Global().Set("TsWasmNet", js.FuncOf(func(this js.Value, args []js.Value) any {
if len(args) != 2 {
log.Fatal("Usage: TsWasmNet(config, callbacks)")
return nil
}
options, err := hp_ipn.ParseTsWasmNetOptions(args[0])
if err != nil {
log.Fatal("Error parsing options:", err)
return nil
}
callbacks, err := hp_ipn.ParseTsWasmNetCallbacks(args[1])
if err != nil {
log.Fatal("Error parsing callbacks:", err)
return nil
}
ipn, err := hp_ipn.NewTsWasmIpn(options, callbacks)
if err != nil {
log.Fatal("Error creating TsWasmIpn:", err)
return nil
}
return map[string]any{
"Start": js.FuncOf(func(this js.Value, args []js.Value) any {
ipn.Start(context.Background())
return nil
}),
}
}))
log.Printf("WASM Headplane SSH module loaded successfully")
<-make(chan bool)
}