From 7156e393a02394545d59b88ea4f5bc9ed787e019 Mon Sep 17 00:00:00 2001 From: Sunil Pai Date: Thu, 30 Dec 2021 12:49:34 +0000 Subject: [PATCH] pass bindings correctly to miniflare in `dev` (#173) * pass bindings correctly to miniflare in `dev` When calling miniflare in `dev` the bindings are passed into the process that's spawned incorrectly; each arg needs to be a separate element in the args array to the spawn call. This PR fixes how they're added to the args array. It also enables logs on the miniflare process. (they're a bit noisy, but we can make that better separately.) I'm personally annoyed because I can swear this was working previously, but without tests that's just my word against... my own word, lol. fixes #172 * add a changeset --- .changeset/sharp-humans-reply.md | 5 +++++ packages/wrangler/src/dev.tsx | 22 +++++++++++----------- 2 files changed, 16 insertions(+), 11 deletions(-) create mode 100644 .changeset/sharp-humans-reply.md diff --git a/.changeset/sharp-humans-reply.md b/.changeset/sharp-humans-reply.md new file mode 100644 index 000000000000..dc126d17f71b --- /dev/null +++ b/.changeset/sharp-humans-reply.md @@ -0,0 +1,5 @@ +--- +"wrangler": patch +--- + +Pass bindings correctly to miniflare/child_process.spawn in `dev`, to prevent miniflare from erroring out on startup diff --git a/packages/wrangler/src/dev.tsx b/packages/wrangler/src/dev.tsx index 2976b3669451..6a56555ea871 100644 --- a/packages/wrangler/src/dev.tsx +++ b/packages/wrangler/src/dev.tsx @@ -264,15 +264,15 @@ function useLocalWorker(props: { "--kv-persist", "--cache-persist", "--do-persist", - ...Object.entries(bindings.vars || {}).map(([key, value]) => { - return `--binding ${key}=${value}`; + ...Object.entries(bindings.vars || {}).flatMap(([key, value]) => { + return ["--binding", `${key}=${value}`]; }), - ...(bindings.kv_namespaces || []).map(({ binding }) => { - return `--kv ${binding}`; + ...(bindings.kv_namespaces || []).flatMap(({ binding }) => { + return ["--kv", binding]; }), - ...(bindings.durable_objects?.bindings || []).map( + ...(bindings.durable_objects?.bindings || []).flatMap( ({ name, class_name }) => { - return `--do ${name}=${class_name}`; + return ["--do", `${name}=${class_name}`]; } ), "--modules", @@ -289,15 +289,15 @@ function useLocalWorker(props: { } }); - local.current.stdout.on("data", (_data: string) => { - // console.log(`stdout: ${data}`); + local.current.stdout.on("data", (data: Buffer) => { + console.log(`${data.toString()}`); }); - local.current.stderr.on("data", (data: string) => { - // console.error(`stderr: ${data}`); + local.current.stderr.on("data", (data: Buffer) => { + console.error(`${data.toString()}`); const matches = /Debugger listening on (ws:\/\/127\.0\.0\.1:9229\/[A-Za-z0-9-]+)/.exec( - data + data.toString() ); if (matches) { setInspectorUrl(matches[1]);