Skip to content
This repository was archived by the owner on Mar 13, 2025. It is now read-only.

Commit e92af0d

Browse files
authored
fix: fetcher.fetch() internal url (#724)
1 parent 6993c87 commit e92af0d

File tree

2 files changed

+12
-2
lines changed

2 files changed

+12
-2
lines changed

packages/miniflare/src/workers/core/proxy.worker.ts

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -184,11 +184,15 @@ export class ProxyServer implements DurableObject {
184184

185185
// See `isFetcherFetch()` comment for why this special
186186
if (isFetcherFetch(targetName, keyHeader)) {
187-
// Create a new request to allow header mutation
188-
request = new Request(request);
187+
const originalUrl = request.headers.get(CoreHeaders.ORIGINAL_URL);
188+
const url = new URL(originalUrl ?? request.url);
189+
// Create a new request to allow header mutation and use original URL
190+
request = new Request(url, request);
189191
request.headers.delete(CoreHeaders.OP);
190192
request.headers.delete(CoreHeaders.OP_TARGET);
191193
request.headers.delete(CoreHeaders.OP_KEY);
194+
request.headers.delete(CoreHeaders.ORIGINAL_URL);
195+
request.headers.delete(CoreHeaders.DISABLE_PRETTY_ERROR);
192196
return func.call(target, request);
193197
}
194198

packages/miniflare/test/index.spec.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -818,6 +818,8 @@ test("Miniflare: getWorker() allows dispatching events directly", async (t) => {
818818
bodyType: message.body.constructor.name,
819819
})),
820820
});
821+
} else if (pathname === "/get-url") {
822+
return new Response(request.url);
821823
} else {
822824
return new Response(null, { status: 404 });
823825
}
@@ -899,6 +901,10 @@ test("Miniflare: getWorker() allows dispatching events directly", async (t) => {
899901
},
900902
],
901903
});
904+
905+
// Check `Fetcher#fetch()`
906+
res = await fetcher.fetch("https://dummy:1234/get-url");
907+
t.is(await res.text(), "https://dummy:1234/get-url");
902908
});
903909
test("Miniflare: getBindings() and friends return bindings for different workers", async (t) => {
904910
const mf = new Miniflare({

0 commit comments

Comments
 (0)