From 6aa02680d80709d714672dd842dc3dc2533339fe Mon Sep 17 00:00:00 2001 From: Frédéric Guillot Date: Sun, 15 Jul 2018 21:51:09 -0700 Subject: Add service worker to cache feed icons --- generate.go | 72 +++++++++++++++++++++++++++++++++++++++---------------------- 1 file changed, 46 insertions(+), 26 deletions(-) (limited to 'generate.go') diff --git a/generate.go b/generate.go index 48c9800..7b845aa 100644 --- a/generate.go +++ b/generate.go @@ -96,23 +96,33 @@ func concat(files []string) string { return b.String() } -func generateJSBundle(bundleFile string, srcFiles []string) { - var b strings.Builder - b.WriteString("(function() {'use strict';") - b.WriteString(concat(srcFiles)) - b.WriteString("})();") - +func generateJSBundle(bundleFile string, bundleFiles map[string][]string, prefixes, suffixes map[string]string) { + bundle := NewBundle("static", "Javascripts") m := minify.New() m.AddFunc("text/javascript", js.Minify) - output, err := m.String("text/javascript", b.String()) - if err != nil { - panic(err) + for name, srcFiles := range bundleFiles { + var b strings.Builder + + if prefix, found := prefixes[name]; found { + b.WriteString(prefix) + } + + b.WriteString(concat(srcFiles)) + + if suffix, found := suffixes[name]; found { + b.WriteString(suffix) + } + + minifiedData, err := m.String("text/javascript", b.String()) + if err != nil { + panic(err) + } + + bundle.Files[name] = minifiedData + bundle.Checksums[name] = checksum([]byte(minifiedData)) } - bundle := NewBundle("static", "Javascript") - bundle.Files["app"] = output - bundle.Checksums["app"] = checksum([]byte(output)) bundle.Write(bundleFile) } @@ -165,20 +175,30 @@ func generateBundle(bundleFile, pkg, mapName string, srcFiles []string) { } func main() { - generateJSBundle("ui/static/js.go", []string{ - "ui/static/js/dom_helper.js", - "ui/static/js/touch_handler.js", - "ui/static/js/keyboard_handler.js", - "ui/static/js/mouse_handler.js", - "ui/static/js/form_handler.js", - "ui/static/js/request_builder.js", - "ui/static/js/unread_counter_handler.js", - "ui/static/js/entry_handler.js", - "ui/static/js/confirm_handler.js", - "ui/static/js/menu_handler.js", - "ui/static/js/modal_handler.js", - "ui/static/js/nav_handler.js", - "ui/static/js/bootstrap.js", + generateJSBundle("ui/static/js.go", map[string][]string{ + "app": []string{ + "ui/static/js/dom_helper.js", + "ui/static/js/touch_handler.js", + "ui/static/js/keyboard_handler.js", + "ui/static/js/mouse_handler.js", + "ui/static/js/form_handler.js", + "ui/static/js/request_builder.js", + "ui/static/js/unread_counter_handler.js", + "ui/static/js/entry_handler.js", + "ui/static/js/confirm_handler.js", + "ui/static/js/menu_handler.js", + "ui/static/js/modal_handler.js", + "ui/static/js/nav_handler.js", + "ui/static/js/bootstrap.js", + }, + "sw": []string{ + "ui/static/js/sw.js", + }, + }, map[string]string{ + "app": "(function(){'use strict';", + "sw": "'use strict';", + }, map[string]string{ + "app": "})();", }) generateCSSBundle("ui/static/css.go", map[string][]string{ -- cgit v1.2.3