Skip to content

Commit 9bb8e23

Browse files
committed
Replace //go:generate statik with //go:embed (#89)
1 parent 5ec17b3 commit 9bb8e23

File tree

2 files changed

+10
-53
lines changed

2 files changed

+10
-53
lines changed

embed/static.go

Lines changed: 0 additions & 6 deletions
This file was deleted.

gen.go

Lines changed: 10 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -1,42 +1,32 @@
1-
//go:generate statik -src=./templates -dest=. -f -Z -p=embed
21
package javascript
32

43
import (
54
"bytes"
6-
"io/ioutil"
7-
"os"
5+
"embed"
86
"text/template"
97

10-
"github.com/goware/statik/fs"
8+
"github.com/pkg/errors"
119
"github.com/webrpc/webrpc/gen"
12-
"github.com/webrpc/webrpc/gen/javascript/embed"
1310
"github.com/webrpc/webrpc/schema"
1411
)
1512

1613
func init() {
1714
gen.Register("js", &generator{})
1815
}
1916

17+
//go:embed templates/*.js.tmpl
18+
var templatesFS embed.FS
19+
2020
type generator struct{}
2121

2222
func (g *generator) Gen(proto *schema.WebRPCSchema, opts gen.TargetOptions) (string, error) {
23-
// Get templates from `embed` asset package
24-
// NOTE: make sure to `go generate` whenever you change the files in `templates/` folder
25-
templates, err := getTemplates()
26-
if err != nil {
27-
return "", err
28-
}
29-
3023
// Load templates
31-
tmpl := template.
24+
tmpl, err := template.
3225
New("webrpc-gen-js").
33-
Funcs(templateFuncMap(opts))
34-
35-
for _, tmplData := range templates {
36-
_, err = tmpl.Parse(tmplData)
37-
if err != nil {
38-
return "", err
39-
}
26+
Funcs(templateFuncMap(opts)).
27+
ParseFS(templatesFS, "templates/*.js.tmpl")
28+
if err != nil {
29+
return "", errors.Wrap(err, "failed to parse javascript templates")
4030
}
4131

4232
// generate deterministic schema hash of the proto file
@@ -63,30 +53,3 @@ func (g *generator) Gen(proto *schema.WebRPCSchema, opts gen.TargetOptions) (str
6353

6454
return string(genBuf.Bytes()), nil
6555
}
66-
67-
func getTemplates() (map[string]string, error) {
68-
data := map[string]string{}
69-
70-
statikFS, err := fs.New(embed.Asset)
71-
if err != nil {
72-
return nil, err
73-
}
74-
75-
fs.Walk(statikFS, "/", func(path string, info os.FileInfo, err error) error {
76-
if path == "/" {
77-
return nil
78-
}
79-
f, err := statikFS.Open(path)
80-
if err != nil {
81-
return err
82-
}
83-
buf, err := ioutil.ReadAll(f)
84-
if err != nil {
85-
return err
86-
}
87-
data[path] = string(buf)
88-
return nil
89-
})
90-
91-
return data, nil
92-
}

0 commit comments

Comments
 (0)