summaryrefslogtreecommitdiff
path: root/cli/bench/deno_http_proxy.ts
diff options
context:
space:
mode:
Diffstat (limited to 'cli/bench/deno_http_proxy.ts')
-rw-r--r--cli/bench/deno_http_proxy.ts20
1 files changed, 20 insertions, 0 deletions
diff --git a/cli/bench/deno_http_proxy.ts b/cli/bench/deno_http_proxy.ts
new file mode 100644
index 000000000..6e5141377
--- /dev/null
+++ b/cli/bench/deno_http_proxy.ts
@@ -0,0 +1,20 @@
+// Copyright 2018-2020 the Deno authors. All rights reserved. MIT license.
+import { serve, ServerRequest } from "../std/http/server.ts";
+
+const addr = Deno.args[0] || "127.0.0.1:4500";
+const originAddr = Deno.args[1] || "127.0.0.1:4501";
+const server = serve(addr);
+
+async function proxyRequest(req: ServerRequest): Promise<void> {
+ const url = `http://${originAddr}${req.url}`;
+ const resp = await fetch(url, {
+ method: req.method,
+ headers: req.headers,
+ });
+ req.respond(resp);
+}
+
+console.log(`Proxy listening on http://${addr}/`);
+for await (const req of server) {
+ proxyRequest(req);
+}