From 1f6f23073c9a18f80627f3876a912d87c0fa8bc0 Mon Sep 17 00:00:00 2001 From: syumai Date: Sat, 19 Nov 2022 23:22:04 +0900 Subject: [PATCH] wait for ready to setup Go program --- examples/basic-auth-proxy/worker.mjs | 5 +++++ examples/env/worker.mjs | 5 +++++ examples/hello/worker.mjs | 5 +++++ examples/kv-counter/worker.mjs | 5 +++++ examples/r2-image-server/worker.mjs | 5 +++++ examples/r2-image-viewer/worker.mjs | 5 +++++ examples/simple-json-server/worker.mjs | 5 +++++ handler.go | 1 + 8 files changed, 36 insertions(+) diff --git a/examples/basic-auth-proxy/worker.mjs b/examples/basic-auth-proxy/worker.mjs index 1724f16..06ac27d 100644 --- a/examples/basic-auth-proxy/worker.mjs +++ b/examples/basic-auth-proxy/worker.mjs @@ -9,9 +9,14 @@ const load = WebAssembly.instantiate(mod, go.importObject).then((instance) => { return instance; }); +const readyPromise = new Promise((resolve) => { + globalThis.ready = resolve; +}); + async function processRequest(event) { const req = event.request; await load; + await readyPromise; return handleRequest(req); } diff --git a/examples/env/worker.mjs b/examples/env/worker.mjs index 1724f16..06ac27d 100644 --- a/examples/env/worker.mjs +++ b/examples/env/worker.mjs @@ -9,9 +9,14 @@ const load = WebAssembly.instantiate(mod, go.importObject).then((instance) => { return instance; }); +const readyPromise = new Promise((resolve) => { + globalThis.ready = resolve; +}); + async function processRequest(event) { const req = event.request; await load; + await readyPromise; return handleRequest(req); } diff --git a/examples/hello/worker.mjs b/examples/hello/worker.mjs index 1724f16..06ac27d 100644 --- a/examples/hello/worker.mjs +++ b/examples/hello/worker.mjs @@ -9,9 +9,14 @@ const load = WebAssembly.instantiate(mod, go.importObject).then((instance) => { return instance; }); +const readyPromise = new Promise((resolve) => { + globalThis.ready = resolve; +}); + async function processRequest(event) { const req = event.request; await load; + await readyPromise; return handleRequest(req); } diff --git a/examples/kv-counter/worker.mjs b/examples/kv-counter/worker.mjs index 1724f16..06ac27d 100644 --- a/examples/kv-counter/worker.mjs +++ b/examples/kv-counter/worker.mjs @@ -9,9 +9,14 @@ const load = WebAssembly.instantiate(mod, go.importObject).then((instance) => { return instance; }); +const readyPromise = new Promise((resolve) => { + globalThis.ready = resolve; +}); + async function processRequest(event) { const req = event.request; await load; + await readyPromise; return handleRequest(req); } diff --git a/examples/r2-image-server/worker.mjs b/examples/r2-image-server/worker.mjs index 1724f16..06ac27d 100644 --- a/examples/r2-image-server/worker.mjs +++ b/examples/r2-image-server/worker.mjs @@ -9,9 +9,14 @@ const load = WebAssembly.instantiate(mod, go.importObject).then((instance) => { return instance; }); +const readyPromise = new Promise((resolve) => { + globalThis.ready = resolve; +}); + async function processRequest(event) { const req = event.request; await load; + await readyPromise; return handleRequest(req); } diff --git a/examples/r2-image-viewer/worker.mjs b/examples/r2-image-viewer/worker.mjs index 1724f16..06ac27d 100644 --- a/examples/r2-image-viewer/worker.mjs +++ b/examples/r2-image-viewer/worker.mjs @@ -9,9 +9,14 @@ const load = WebAssembly.instantiate(mod, go.importObject).then((instance) => { return instance; }); +const readyPromise = new Promise((resolve) => { + globalThis.ready = resolve; +}); + async function processRequest(event) { const req = event.request; await load; + await readyPromise; return handleRequest(req); } diff --git a/examples/simple-json-server/worker.mjs b/examples/simple-json-server/worker.mjs index 1724f16..06ac27d 100644 --- a/examples/simple-json-server/worker.mjs +++ b/examples/simple-json-server/worker.mjs @@ -9,9 +9,14 @@ const load = WebAssembly.instantiate(mod, go.importObject).then((instance) => { return instance; }); +const readyPromise = new Promise((resolve) => { + globalThis.ready = resolve; +}); + async function processRequest(event) { const req = event.request; await load; + await readyPromise; return handleRequest(req); } diff --git a/handler.go b/handler.go index ec28017..4612961 100644 --- a/handler.go +++ b/handler.go @@ -67,5 +67,6 @@ func Serve(handler http.Handler) { handler = http.DefaultServeMux } httpHandler = handler + jsutil.Global.Call("ready") select {} }