summaryrefslogtreecommitdiff
path: root/tools/deno_http_proxy.ts
diff options
context:
space:
mode:
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();