From 3a2e94492b0d4df1ae5c3bb5a6a6a899538de10b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bartek=20Iwa=C5=84czuk?= Date: Mon, 2 Aug 2021 14:40:46 +0200 Subject: [PATCH] feat: stabilize Deno.serveHttp() (#11544) This commit moves "Deno.serveHttp()" and related types to stable namespace. --- cli/bench/http.rs | 1 - cli/diagnostics.rs | 3 --- cli/dts/lib.deno.ns.d.ts | 29 +++++++++++++++++++++ cli/dts/lib.deno.unstable.d.ts | 18 ------------- extensions/http/lib.deno_http.unstable.d.ts | 12 --------- runtime/js/90_deno_ns.js | 2 +- 6 files changed, 30 insertions(+), 35 deletions(-) diff --git a/cli/bench/http.rs b/cli/bench/http.rs index 7fdab9844f..5858678927 100644 --- a/cli/bench/http.rs +++ b/cli/bench/http.rs @@ -203,7 +203,6 @@ fn deno_http_native(deno_exe: &str) -> Result { "run", "--allow-net", "--reload", - "--unstable", "cli/bench/deno_http_native.js", &server_addr(port), ], diff --git a/cli/diagnostics.rs b/cli/diagnostics.rs index f2c78d5c4b..18506ccc85 100644 --- a/cli/diagnostics.rs +++ b/cli/diagnostics.rs @@ -25,7 +25,6 @@ const UNSTABLE_DENO_PROPS: &[&str] = &[ "EmitOptions", "EmitResult", "HttpClient", - "HttpConn", "LinuxSignal", "Location", "MXRecord", @@ -33,7 +32,6 @@ const UNSTABLE_DENO_PROPS: &[&str] = &[ "Metrics", "OpMetrics", "RecordType", - "RequestEvent", "ResolveDnsOptions", "SRVRecord", "SetRawOptions", @@ -60,7 +58,6 @@ const UNSTABLE_DENO_PROPS: &[&str] = &[ "osRelease", "ppid", "resolveDns", - "serveHttp", "setRaw", "shutdown", "signal", diff --git a/cli/dts/lib.deno.ns.d.ts b/cli/dts/lib.deno.ns.d.ts index 469b8a3299..37cc58ad6b 100644 --- a/cli/dts/lib.deno.ns.d.ts +++ b/cli/dts/lib.deno.ns.d.ts @@ -2414,4 +2414,33 @@ declare namespace Deno { * ``` */ export function fstat(rid: number): Promise; + + export interface RequestEvent { + readonly request: Request; + respondWith(r: Response | Promise): Promise; + } + + export interface HttpConn extends AsyncIterable { + readonly rid: number; + + nextRequest(): Promise; + close(): void; + } + + /** + * Services HTTP requests given a TCP or TLS socket. + * + * ```ts + * const conn = await Deno.connect({ port: 80, hostname: "127.0.0.1" }); + * const httpConn = Deno.serveHttp(conn); + * const e = await httpConn.nextRequest(); + * if (e) { + * e.respondWith(new Response("Hello World")); + * } + * ``` + * + * If `httpConn.nextRequest()` encounters an error or returns `null` + * then the underlying HttpConn resource is closed automatically. + */ + export function serveHttp(conn: Conn): HttpConn; } diff --git a/cli/dts/lib.deno.unstable.d.ts b/cli/dts/lib.deno.unstable.d.ts index 442da1e539..0ac8294637 100644 --- a/cli/dts/lib.deno.unstable.d.ts +++ b/cli/dts/lib.deno.unstable.d.ts @@ -1076,24 +1076,6 @@ declare namespace Deno { write?: "inherit" | boolean | Array; }; } - - /** **UNSTABLE**: new API, yet to be vetted. - * - * Services HTTP requests given a TCP or TLS socket. - * - * ```ts - * const conn = await Deno.connect({ port: 80, hostname: "127.0.0.1" }); - * const httpConn = Deno.serveHttp(conn); - * const e = await httpConn.nextRequest(); - * if (e) { - * e.respondWith(new Response("Hello World")); - * } - * ``` - * - * If `httpConn.nextRequest()` encounters an error or returns `null` - * then the underlying HttpConn resource is closed automatically. - */ - export function serveHttp(conn: Conn): HttpConn; } declare function fetch( diff --git a/extensions/http/lib.deno_http.unstable.d.ts b/extensions/http/lib.deno_http.unstable.d.ts index d15da0da6f..5c5bf78df9 100644 --- a/extensions/http/lib.deno_http.unstable.d.ts +++ b/extensions/http/lib.deno_http.unstable.d.ts @@ -4,18 +4,6 @@ /// declare namespace Deno { - export interface RequestEvent { - readonly request: Request; - respondWith(r: Response | Promise): Promise; - } - - export interface HttpConn extends AsyncIterable { - readonly rid: number; - - nextRequest(): Promise; - close(): void; - } - export interface WebSocketUpgrade { response: Response; socket: WebSocket; diff --git a/runtime/js/90_deno_ns.js b/runtime/js/90_deno_ns.js index 27900431f1..aee07eae7b 100644 --- a/runtime/js/90_deno_ns.js +++ b/runtime/js/90_deno_ns.js @@ -101,6 +101,7 @@ permissions: __bootstrap.permissions.permissions, Permissions: __bootstrap.permissions.Permissions, PermissionStatus: __bootstrap.permissions.PermissionStatus, + serveHttp: __bootstrap.http.serveHttp, }; __bootstrap.denoNsUnstable = { @@ -125,7 +126,6 @@ listen: __bootstrap.netUnstable.listen, connect: __bootstrap.netUnstable.connect, listenDatagram: __bootstrap.netUnstable.listenDatagram, - serveHttp: __bootstrap.http.serveHttp, startTls: __bootstrap.tls.startTls, umask: __bootstrap.fs.umask, upgradeWebSocket: __bootstrap.http.upgradeWebSocket,