39 lines
669 B
Go
39 lines
669 B
Go
package bundle
|
|
|
|
import (
|
|
"net/http"
|
|
)
|
|
|
|
type JsHandler struct {
|
|
Webdev bool
|
|
Cache []byte
|
|
}
|
|
|
|
func NewJsHandler(Webdev bool) *JsHandler {
|
|
h := &JsHandler{Webdev: Webdev}
|
|
|
|
if !Webdev {
|
|
//populate cache
|
|
manifest := getManifest(Webdev)
|
|
h.Cache = createBundle(Webdev, manifest.Scripts)
|
|
}
|
|
|
|
return h
|
|
}
|
|
|
|
func (h *JsHandler) ServeHTTP(resp http.ResponseWriter, req *http.Request) {
|
|
resp.Header().Add("content-type", "text/javascript")
|
|
|
|
if h.Cache == nil {
|
|
//dev
|
|
manifest := getManifest(h.Webdev)
|
|
resp.Write(createBundle(h.Webdev, manifest.Scripts))
|
|
|
|
} else {
|
|
//prod
|
|
resp.Header().Add("Cache-Control", "public, max-age=3600")
|
|
resp.Write(h.Cache)
|
|
|
|
}
|
|
}
|