Initial commit

Signed-off-by: Vincent Batts <vbatts@hashbangbash.com>
This commit is contained in:
Vincent Batts 2024-12-13 21:19:16 +00:00
commit fc6fc03dbc
Signed by: vbatts
GPG key ID: E30EFAA812C6E5ED
10 changed files with 714 additions and 0 deletions

46
cmd/wasm/main.go Normal file
View file

@ -0,0 +1,46 @@
//go:build js && wasm
package main
import (
"encoding/json"
"fmt"
"syscall/js"
)
func main() {
js.Global().Set("formatJSON", jsonWrapper())
fmt.Println("loaded golang wasm")
<-make(chan struct{})
}
func prettyJson(input string) (string, error) {
var raw any
if err := json.Unmarshal([]byte(input), &raw); err != nil {
return "", err
}
pretty, err := json.MarshalIndent(raw, "", " ")
if err != nil {
return "", err
}
return string(pretty), nil
}
func jsonWrapper() js.Func {
jsonFunc := js.FuncOf(func(this js.Value, args []js.Value) any {
if len(args) != 1 {
return "Invalid no of arguments passed"
}
inputJSON := args[0].String()
fmt.Printf("input %s\n", inputJSON)
pretty, err := prettyJson(inputJSON)
if err != nil {
fmt.Printf("unable to convert to json %s\n", err)
return err.Error()
}
return pretty
})
return jsonFunc
}