summaryrefslogtreecommitdiff
path: root/tools/deno_http_proxy.ts
diff options
context:
space:
mode:
authorKurt Mackey <mrkurt@gmail.com>2019-06-06 11:44:35 -0500
committerRyan Dahl <ry@tinyclouds.org>2019-06-06 12:44:35 -0400
commit341150266eef10b005388db4210571554bb4b931 (patch)
treeba59327fcc15feb359db4cb28c216240b3359681 /tools/deno_http_proxy.ts
parente152dae006c941abd614cc31820981c629410d7c (diff)
add http proxy benchmark (#2462)
Diffstat (limited to 'tools/deno_http_proxy.ts')
-rw-r--r--tools/deno_http_proxy.ts27
1 files changed, 27 insertions, 0 deletions
diff --git a/tools/deno_http_proxy.ts b/tools/deno_http_proxy.ts
new file mode 100644
index 000000000..a2e5352aa
--- /dev/null
+++ b/tools/deno_http_proxy.ts
@@ -0,0 +1,27 @@
+// Copyright 2018-2019 the Deno authors. All rights reserved. MIT license.
+import {
+ serve,
+ ServerRequest
+} from "../js/deps/https/deno.land/std/http/server.ts";
+
+const addr = Deno.args[1] || "127.0.0.1:4500";
+const originAddr = Deno.args[2] || "127.0.0.1:4501";
+const server = serve(addr);
+
+async function main(): Promise<void> {
+ console.log(`http://${addr}/`);
+ for await (const req of server) {
+ proxyRequest(req);
+ }
+}
+
+async function proxyRequest(req: ServerRequest) {
+ const url = `http://${originAddr}${req.url}`;
+ const resp = await fetch(url, {
+ method: req.method,
+ headers: req.headers
+ });
+ req.respond(resp);
+}
+
+main();