1
0
Fork 0
mirror of https://github.com/denoland/deno.git synced 2024-12-23 15:49:44 -05:00

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
This commit is contained in:
Asher Gomez 2024-01-23 14:24:03 +11:00 committed by GitHub
parent 706752753d
commit 7e4145df25
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
7 changed files with 12 additions and 102 deletions

View file

@ -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));
}
})();
}

View file

@ -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));
}
})();
}

View file

@ -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));
}
})();
}

View file

@ -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));
}
}
})();
}

View file

@ -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));
}
}
})();
}

View file

@ -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<RequestEvent>, 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;

View file

@ -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);
}