From f3accb6c572ce98f90ce7dcf2ff60186cc739765 Mon Sep 17 00:00:00 2001
From: Rob Marscher
Date: Wed, 8 May 2024 14:59:31 -0400
Subject: [PATCH] Patch wasm-pack bundler target for Cloudflare Workers
Following Cloudflare's documentation found here:
https://developers.cloudflare.com/workers/languages/rust/#javascript-plumbing-wasm-bindgen
Fixes #156
---
minify-html-wasm/build | 2 ++
minify-html-wasm/index.cloudflare.js | 13 +++++++++++++
2 files changed, 15 insertions(+)
create mode 100644 minify-html-wasm/index.cloudflare.js
diff --git a/minify-html-wasm/build b/minify-html-wasm/build
index d0dfc0d3..d75869cc 100755
--- a/minify-html-wasm/build
+++ b/minify-html-wasm/build
@@ -14,6 +14,8 @@ if [[ "$target" = "bundler" ]]; then
jq -s '.[0] * .[1]' package.json ../package.merge.json > package.new.json
mv package.new.json package.json
rm .gitignore
+ # https://developers.cloudflare.com/workers/languages/rust/#javascript-plumbing-wasm-bindgen
+ cp ../index.cloudflare.js index.js
elif [[ "$target" = "web" ]]; then
rm package.json .gitignore
fi
diff --git a/minify-html-wasm/index.cloudflare.js b/minify-html-wasm/index.cloudflare.js
new file mode 100644
index 00000000..181ad47a
--- /dev/null
+++ b/minify-html-wasm/index.cloudflare.js
@@ -0,0 +1,13 @@
+import * as imports from "./index_bg.js"
+
+// switch between both syntax for node and for workerd
+import wkmod from "./index_bg.wasm"
+import * as wasm from "./index_bg.wasm"
+if (typeof process !== "undefined" && process.release.name === "node") {
+ imports.__wbg_set_wasm(wasm)
+} else {
+ const instance = new WebAssembly.Instance(wkmod, { "./index_bg.js": imports })
+ imports.__wbg_set_wasm(instance.exports)
+}
+
+export * from "./index_bg.js"