From 4e87195739f2a5d9a05451b48773c8afdc680765 Mon Sep 17 00:00:00 2001
From: akiyamn
Date: Sun, 24 Sep 2023 23:22:21 +1000
Subject: Initial commit (by create-cloudflare CLI)
---
.../middleware/middleware-multiworker-dev.ts | 59 ++++++++++++++++++++++
1 file changed, 59 insertions(+)
create mode 100644 node_modules/wrangler/templates/middleware/middleware-multiworker-dev.ts
(limited to 'node_modules/wrangler/templates/middleware/middleware-multiworker-dev.ts')
diff --git a/node_modules/wrangler/templates/middleware/middleware-multiworker-dev.ts b/node_modules/wrangler/templates/middleware/middleware-multiworker-dev.ts
new file mode 100644
index 0000000..fee33d5
--- /dev/null
+++ b/node_modules/wrangler/templates/middleware/middleware-multiworker-dev.ts
@@ -0,0 +1,59 @@
+// @ts-nocheck
+///
+
+import { workers } from "config:middleware/multiworker-dev";
+import type { WorkerRegistry } from "../../src/dev-registry";
+
+export function wrap(env: Record) {
+ const facadeEnv = { ...env };
+ // For every Worker definition that's available,
+ // create a fetcher for it on the facade env.
+ // for const [name, binding] of env
+ // if Workers[name]
+ // const details = Workers[name];
+
+ for (const [name, details] of Object.entries(workers as WorkerRegistry)) {
+ if (details) {
+ facadeEnv[name] = {
+ async fetch(...reqArgs: Parameters) {
+ const reqFromArgs = new Request(...reqArgs);
+ if (details.headers) {
+ for (const [key, value] of Object.entries(details.headers)) {
+ // In remote mode, you need to add a couple of headers
+ // to make sure it's talking to the 'dev' preview session
+ // (much like wrangler dev already does via proxy.ts)
+ reqFromArgs.headers.set(key, value);
+ }
+ return (env[name] as Fetcher).fetch(reqFromArgs);
+ }
+
+ const url = new URL(reqFromArgs.url);
+ if (details.protocol !== undefined) {
+ url.protocol = details.protocol;
+ }
+ if (details.host !== undefined) {
+ url.host = details.host;
+ }
+ if (details.port !== undefined) {
+ url.port = details.port.toString();
+ }
+
+ const request = new Request(url.toString(), reqFromArgs);
+ return fetch(request);
+ },
+ };
+ } else {
+ // This means there's no dev binding available.
+ // Let's use whatever's available, or put a shim with a message.
+ facadeEnv[name] = facadeEnv[name] || {
+ async fetch() {
+ return new Response(
+ `You should start up wrangler dev --local on the ${name} worker`,
+ { status: 404 }
+ );
+ },
+ };
+ }
+ }
+ return facadeEnv;
+}
--
cgit v1.2.3