diff --git a/cmd/tsconnect/build-pkg.go b/cmd/tsconnect/build-pkg.go index e0220b42f..8b0b6a79b 100644 --- a/cmd/tsconnect/build-pkg.go +++ b/cmd/tsconnect/build-pkg.go @@ -12,6 +12,7 @@ import ( "path" "github.com/tailscale/hujson" + "tailscale.com/util/precompress" "tailscale.com/version" ) @@ -37,6 +38,10 @@ func runBuildPkg() { runEsbuild(*buildOptions) + if err := precompressWasm(); err != nil { + log.Fatalf("Could not pre-recompress wasm: %v", err) + } + log.Printf("Generating types...\n") if err := runYarn("pkg-types"); err != nil { log.Fatalf("Type generation failed: %v", err) @@ -49,6 +54,13 @@ func runBuildPkg() { log.Printf("Built package version %s", version.Long) } +func precompressWasm() error { + log.Printf("Pre-compressing main.wasm...\n") + return precompress.Precompress(path.Join(*pkgDir, "main.wasm"), precompress.Options{ + FastCompression: *fastCompression, + }) +} + func updateVersion() error { packageJSONBytes, err := os.ReadFile("package.json.tmpl") if err != nil { diff --git a/util/precompress/precompress.go b/util/precompress/precompress.go index e5caeca13..32181dffa 100644 --- a/util/precompress/precompress.go +++ b/util/precompress/precompress.go @@ -42,7 +42,7 @@ func PrecompressDir(dirPath string, options Options) error { } eg.Go(func() error { - return precompress(p, options) + return Precompress(p, options) }) return nil }) @@ -81,12 +81,11 @@ func OpenPrecompressedFile(w http.ResponseWriter, r *http.Request, path string, } var compressibleExtensions = map[string]bool{ - ".js": true, - ".css": true, - ".wasm": true, + ".js": true, + ".css": true, } -func precompress(path string, options Options) error { +func Precompress(path string, options Options) error { contents, err := os.ReadFile(path) if err != nil { return err