Initial commit
Signed-off-by: Vincent Batts <vbatts@hashbangbash.com>
This commit is contained in:
commit
fc6fc03dbc
10 changed files with 714 additions and 0 deletions
46
cmd/wasm/main.go
Normal file
46
cmd/wasm/main.go
Normal 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
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue