From 7e4145df253e234c188be33ece2ae21753bc19af Mon Sep 17 00:00:00 2001 From: Asher Gomez Date: Tue, 23 Jan 2024 14:24:03 +1100 Subject: [PATCH] refactor: set removal version for `Deno.RequestEvent`, `Deno.HttpConn` and `Deno.serveHttp()` (#22034) This change: 1. Sets the removal version for `Deno.RequestEvent`, `Deno.HttpConn` and `Deno.serveHttp()` for Deno v2. I thought it might be worth calling `warnOnDeprecatedApi()` within `Deno.Request` and `Deno.HttpConn` methods, but I thought just having it called within `Deno.serveHttp()` might be sufficient. 2. Removes some possibly unneeded related benchmarks. Towards #22021 --- cli/bench/http/deno_http_native.js | 19 ----------------- cli/bench/http/deno_http_native_headers.js | 24 ---------------------- cli/bench/http/deno_http_read_headers.js | 17 --------------- cli/bench/http/deno_post_bin.js | 19 ----------------- cli/bench/http/deno_post_json.js | 19 ----------------- cli/tsc/dts/lib.deno.ns.d.ts | 9 +++++--- runtime/js/40_http.js | 7 ++++++- 7 files changed, 12 insertions(+), 102 deletions(-) delete mode 100644 cli/bench/http/deno_http_native.js delete mode 100644 cli/bench/http/deno_http_native_headers.js delete mode 100644 cli/bench/http/deno_http_read_headers.js delete mode 100644 cli/bench/http/deno_post_bin.js delete mode 100644 cli/bench/http/deno_post_json.js diff --git a/cli/bench/http/deno_http_native.js b/cli/bench/http/deno_http_native.js deleted file mode 100644 index 25aa89fb03..0000000000 --- a/cli/bench/http/deno_http_native.js +++ /dev/null @@ -1,19 +0,0 @@ -// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. - -const addr = Deno.args[0] || "127.0.0.1:4500"; -const [hostname, port] = addr.split(":"); -const listener = Deno.listen({ hostname, port: Number(port) }); -console.log("Server listening on", addr); - -const encoder = new TextEncoder(); -const body = encoder.encode("Hello World"); - -for await (const conn of listener) { - (async () => { - const requests = Deno.serveHttp(conn); - for await (const event of requests) { - event.respondWith(new Response(body)) - .catch((e) => console.log(e)); - } - })(); -} diff --git a/cli/bench/http/deno_http_native_headers.js b/cli/bench/http/deno_http_native_headers.js deleted file mode 100644 index ff81b2e767..0000000000 --- a/cli/bench/http/deno_http_native_headers.js +++ /dev/null @@ -1,24 +0,0 @@ -// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. - -const addr = Deno.args[0] || "127.0.0.1:4500"; -const [hostname, port] = addr.split(":"); -const listener = Deno.listen({ hostname, port: Number(port) }); -console.log("Server listening on", addr); - -for await (const conn of listener) { - (async () => { - const requests = Deno.serveHttp(conn); - for await (const { respondWith } of requests) { - respondWith( - new Response("Hello World", { - status: 200, - headers: { - server: "deno", - "content-type": "text/plain", - }, - }), - ) - .catch((e) => console.log(e)); - } - })(); -} diff --git a/cli/bench/http/deno_http_read_headers.js b/cli/bench/http/deno_http_read_headers.js deleted file mode 100644 index 6fd3066df8..0000000000 --- a/cli/bench/http/deno_http_read_headers.js +++ /dev/null @@ -1,17 +0,0 @@ -// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. - -const addr = Deno.args[0] || "127.0.0.1:4500"; -const [hostname, port] = addr.split(":"); -const listener = Deno.listen({ hostname, port: Number(port) }); -console.log("Server listening on", addr); - -for await (const conn of listener) { - (async () => { - const requests = Deno.serveHttp(conn); - for await (const { respondWith, request } of requests) { - const bar = request.headers.get("foo"); - respondWith(new Response(bar)) - .catch((e) => console.log(e)); - } - })(); -} diff --git a/cli/bench/http/deno_post_bin.js b/cli/bench/http/deno_post_bin.js deleted file mode 100644 index 22952f06e0..0000000000 --- a/cli/bench/http/deno_post_bin.js +++ /dev/null @@ -1,19 +0,0 @@ -// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. - -const addr = Deno.args[0] || "127.0.0.1:4500"; -const [hostname, port] = addr.split(":"); -const listener = Deno.listen({ hostname, port: Number(port) }); -console.log("Server listening on", addr); - -for await (const conn of listener) { - (async () => { - const requests = Deno.serveHttp(conn); - for await (const { respondWith, request } of requests) { - if (request.method == "POST") { - const buffer = await request.arrayBuffer(); - respondWith(new Response(buffer.byteLength)) - .catch((e) => console.log(e)); - } - } - })(); -} diff --git a/cli/bench/http/deno_post_json.js b/cli/bench/http/deno_post_json.js deleted file mode 100644 index a2c653efa0..0000000000 --- a/cli/bench/http/deno_post_json.js +++ /dev/null @@ -1,19 +0,0 @@ -// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. - -const addr = Deno.args[0] || "127.0.0.1:4500"; -const [hostname, port] = addr.split(":"); -const listener = Deno.listen({ hostname, port: Number(port) }); -console.log("Server listening on", addr); - -for await (const conn of listener) { - (async () => { - const requests = Deno.serveHttp(conn); - for await (const { respondWith, request } of requests) { - if (request.method == "POST") { - const json = await request.json(); - respondWith(new Response(json.hello)) - .catch((e) => console.log(e)); - } - } - })(); -} diff --git a/cli/tsc/dts/lib.deno.ns.d.ts b/cli/tsc/dts/lib.deno.ns.d.ts index b25ee4acd8..f695a68c29 100644 --- a/cli/tsc/dts/lib.deno.ns.d.ts +++ b/cli/tsc/dts/lib.deno.ns.d.ts @@ -5297,7 +5297,8 @@ declare namespace Deno { * request from a remote client. * * @category HTTP Server - * @deprecated Use {@linkcode serve} instead. + * @deprecated Use {@linkcode Deno.serve} instead. This will be removed in + * Deno 2.0. */ export interface RequestEvent { /** The request from the client in the form of the web platform @@ -5318,7 +5319,8 @@ declare namespace Deno { * requests on the HTTP server connection. * * @category HTTP Server - * @deprecated Use {@linkcode serve} instead. + * @deprecated Use {@linkcode Deno.serve} instead. This will be removed in + * Deno 2.0. */ export interface HttpConn extends AsyncIterable, Disposable { /** The resource ID associated with this connection. Generally users do not @@ -5384,7 +5386,8 @@ declare namespace Deno { * used elsewhere. In such a case, this function will fail. * * @category HTTP Server - * @deprecated Use {@linkcode serve} instead. + * @deprecated Use {@linkcode Deno.serve} instead. This will be removed in + * Deno 2.0. */ export function serveHttp(conn: Conn): HttpConn; diff --git a/runtime/js/40_http.js b/runtime/js/40_http.js index d38caa55db..fcabf237bc 100644 --- a/runtime/js/40_http.js +++ b/runtime/js/40_http.js @@ -1,5 +1,5 @@ // Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. -import { core } from "ext:core/mod.js"; +import { core, internals } from "ext:core/mod.js"; const { op_http_start, } = core.ensureFastOps(); @@ -7,6 +7,11 @@ const { import { HttpConn } from "ext:deno_http/01_http.js"; function serveHttp(conn) { + internals.warnOnDeprecatedApi( + "Deno.serveHttp()", + new Error().stack, + "Use `Deno.serve()` instead.", + ); const rid = op_http_start(conn.rid); return new HttpConn(rid, conn.remoteAddr, conn.localAddr); }