Skip to content

Commit 8641157

Browse files
committed
WebAssemby powered website
1 parent 63f52be commit 8641157

File tree

6 files changed

+2018
-0
lines changed

6 files changed

+2018
-0
lines changed

cmd/wasm/main.go

+89
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,89 @@
1+
//go:build wasm
2+
// +build wasm
3+
4+
package main
5+
6+
import (
7+
"fmt"
8+
"io"
9+
"strings"
10+
"syscall/js"
11+
12+
t2html "github.com/buildkite/terminal-to-html"
13+
"github.com/fatih/color"
14+
"github.com/zegl/kube-score/config"
15+
"github.com/zegl/kube-score/domain"
16+
"github.com/zegl/kube-score/parser"
17+
"github.com/zegl/kube-score/renderer/human"
18+
"github.com/zegl/kube-score/score"
19+
"github.com/zegl/kube-score/score/checks"
20+
)
21+
22+
func main() {
23+
js.Global().Set("handleScore", js.FuncOf(handleScore))
24+
select {}
25+
}
26+
27+
type inputReader struct {
28+
*strings.Reader
29+
}
30+
31+
func (inputReader) Name() string {
32+
return "input"
33+
}
34+
35+
func handleScore(this js.Value, inputs []js.Value) interface{} {
36+
if len(inputs) == 0 {
37+
fmt.Println("Unexpected number of arguments")
38+
return "Unexpected number of arguments"
39+
}
40+
41+
fmt.Println(inputs[0].String())
42+
43+
reader := &inputReader{
44+
Reader: strings.NewReader(inputs[0].String()),
45+
}
46+
47+
files := []domain.NamedReader{reader}
48+
49+
p, err := parser.New(&parser.Config{})
50+
if err != nil {
51+
fmt.Println(err)
52+
return string(err.Error())
53+
}
54+
55+
allObjs, err := p.ParseFiles(files)
56+
if err != nil {
57+
fmt.Println(err)
58+
return string(err.Error())
59+
}
60+
61+
checksConfig := &checks.Config{}
62+
runConfig := &config.RunConfiguration{}
63+
64+
allChecks := score.RegisterAllChecks(allObjs, checksConfig, runConfig)
65+
66+
card, err := score.Score(allObjs, allChecks, runConfig)
67+
if err != nil {
68+
fmt.Println(err)
69+
return string(err.Error())
70+
}
71+
72+
color.NoColor = false
73+
output, err := human.Human(card, 0, 110, true)
74+
if err != nil {
75+
fmt.Println(err)
76+
return string(err.Error())
77+
}
78+
79+
body, err := io.ReadAll(output)
80+
fmt.Println("body", body)
81+
if err != nil {
82+
fmt.Println(err)
83+
return string(err.Error())
84+
}
85+
86+
htmlBody := t2html.Render(body)
87+
88+
return string(htmlBody)
89+
}

go.mod

+1
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ require (
1616
)
1717

1818
require (
19+
github.com/buildkite/terminal-to-html v3.2.0+incompatible // indirect
1920
github.com/davecgh/go-spew v1.1.1 // indirect
2021
github.com/go-logr/logr v1.4.1 // indirect
2122
github.com/gogo/protobuf v1.3.2 // indirect

go.sum

+2
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
github.com/buildkite/terminal-to-html v3.2.0+incompatible h1:WdXzl7ZmYzCAz4pElZosPaUlRTW+qwVx/SkQSCa1jXs=
2+
github.com/buildkite/terminal-to-html v3.2.0+incompatible/go.mod h1:BFFdFecOxCgjdcarqI+8izs6v85CU/1RA/4Bqh4GR7E=
13
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
24
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
35
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=

0 commit comments

Comments
 (0)