From fc7542e01f1d6f9e1c11bacf0060c0165ba54986 Mon Sep 17 00:00:00 2001 From: Alan Pearce Date: Fri, 31 May 2024 03:10:46 +0200 Subject: build: re-enable asset reloading in dev --- frontend/assets.go | 17 +++++++++++++---- internal/server/mux.go | 8 +++++++- 2 files changed, 20 insertions(+), 5 deletions(-) diff --git a/frontend/assets.go b/frontend/assets.go index a6a5e79..286d505 100644 --- a/frontend/assets.go +++ b/frontend/assets.go @@ -10,7 +10,7 @@ import ( "github.com/pkg/errors" ) -var Assets = AssetCollection{ +var Assets = &AssetCollection{ Scripts: make(map[string]Asset), Stylesheets: make(map[string]Asset), } @@ -83,12 +83,21 @@ func hashStyles() error { return nil } -func init() { - err := hashScripts() +func Rehash() (err error) { + err = hashScripts() if err != nil { - panic(err) + return err } err = hashStyles() + if err != nil { + return err + } + + return nil +} + +func init() { + err := Rehash() if err != nil { panic(err) } diff --git a/internal/server/mux.go b/internal/server/mux.go index 87e878a..2837dc0 100644 --- a/internal/server/mux.go +++ b/internal/server/mux.go @@ -43,7 +43,7 @@ type TemplateData struct { ExtraHeadHTML template.HTML Code int Message string - Assets frontend.AssetCollection + Assets *frontend.AssetCollection } type ResultData struct { @@ -282,6 +282,12 @@ func NewMux( } go fw.Start(func(filename string) { slog.Debug(fmt.Sprintf("got filename %s", filename)) + if match, _ := path.Match("frontend/static/*", filename); match { + err := frontend.Rehash() + if err != nil { + slog.Error("failed to re-hash frontend assets", "error", err) + } + } if path.Ext(filename) == ".gotmpl" { templates, err = loadTemplates() if err != nil { -- cgit 1.4.1