diff options
Diffstat (limited to 'cli')
-rw-r--r-- | cli/tests/unit/serve_test.ts | 15 | ||||
-rw-r--r-- | cli/tsc/dts/lib.deno.unstable.d.ts | 37 |
2 files changed, 35 insertions, 17 deletions
diff --git a/cli/tests/unit/serve_test.ts b/cli/tests/unit/serve_test.ts index 5da300dc9..c6cfc45f3 100644 --- a/cli/tests/unit/serve_test.ts +++ b/cli/tests/unit/serve_test.ts @@ -6,7 +6,6 @@ import { TextProtoReader } from "../testdata/run/textproto.ts"; import { assert, assertEquals, - assertRejects, assertStringIncludes, assertThrows, Deferred, @@ -50,7 +49,7 @@ Deno.test(async function httpServerShutsDownPortBeforeResolving() { assertThrows(() => Deno.listen({ port: 4501 })); ac.abort(); - await server; + await server.finished; const listener = Deno.listen({ port: 4501 }); listener!.close(); @@ -93,7 +92,7 @@ Deno.test(async function httpServerRejectsOnAddrInUse() { }); await listeningPromise; - await assertRejects( + assertThrows( () => Deno.serve({ handler: (_req) => new Response("ok"), @@ -284,18 +283,18 @@ Deno.test({ permissions: { net: true } }, async function httpServerOverload2() { Deno.test( { permissions: { net: true } }, - async function httpServerErrorOverloadMissingHandler() { + function httpServerErrorOverloadMissingHandler() { // @ts-ignore - testing invalid overload - await assertRejects(() => Deno.serve(), TypeError, "handler"); + assertThrows(() => Deno.serve(), TypeError, "handler"); // @ts-ignore - testing invalid overload - await assertRejects(() => Deno.serve({}), TypeError, "handler"); - await assertRejects( + assertThrows(() => Deno.serve({}), TypeError, "handler"); + assertThrows( // @ts-ignore - testing invalid overload () => Deno.serve({ handler: undefined }), TypeError, "handler", ); - await assertRejects( + assertThrows( // @ts-ignore - testing invalid overload () => Deno.serve(undefined, { handler: () => {} }), TypeError, diff --git a/cli/tsc/dts/lib.deno.unstable.d.ts b/cli/tsc/dts/lib.deno.unstable.d.ts index 3a4344bd8..c0c0d16ad 100644 --- a/cli/tsc/dts/lib.deno.unstable.d.ts +++ b/cli/tsc/dts/lib.deno.unstable.d.ts @@ -1305,6 +1305,16 @@ declare namespace Deno { /** **UNSTABLE**: New API, yet to be vetted. * + * @category HTTP Server + */ + export interface Server { + /** A promise that resolves once server finishes - eg. when aborted using + * the signal passed to {@linkcode ServeOptions.signal}. + */ + finished: Promise<void>; + } + /** **UNSTABLE**: New API, yet to be vetted. + * * Serves HTTP requests with the given handler. * * You can specify an object with a port and hostname option, which is the @@ -1331,8 +1341,11 @@ declare namespace Deno { * ```ts * const ac = new AbortController(); * - * Deno.serve({ signal: ac.signal }, (_req) => new Response("Hello, world")) - * .then(() => console.log("Server closed")); + * const server = Deno.serve( + * { signal: ac.signal }, + * (_req) => new Response("Hello, world") + * ); + * server.finished.then(() => console.log("Server closed")); * * console.log("Closing server..."); * ac.abort(); @@ -1362,7 +1375,7 @@ declare namespace Deno { * * @category HTTP Server */ - export function serve(handler: ServeHandler): Promise<void>; + export function serve(handler: ServeHandler): Server; /** **UNSTABLE**: New API, yet to be vetted. * * Serves HTTP requests with the given handler. @@ -1391,8 +1404,11 @@ declare namespace Deno { * ```ts * const ac = new AbortController(); * - * Deno.serve({ signal: ac.signal }, (_req) => new Response("Hello, world")) - * .then(() => console.log("Server closed")); + * const server = Deno.serve( + * { signal: ac.signal }, + * (_req) => new Response("Hello, world") + * ); + * server.finished.then(() => console.log("Server closed")); * * console.log("Closing server..."); * ac.abort(); @@ -1425,7 +1441,7 @@ declare namespace Deno { export function serve( options: ServeOptions | ServeTlsOptions, handler: ServeHandler, - ): Promise<void>; + ): Server; /** **UNSTABLE**: New API, yet to be vetted. * * Serves HTTP requests with the given handler. @@ -1454,8 +1470,11 @@ declare namespace Deno { * ```ts * const ac = new AbortController(); * - * Deno.serve({ signal: ac.signal }, (_req) => new Response("Hello, world")) - * .then(() => console.log("Server closed")); + * const server = Deno.serve( + * { signal: ac.signal }, + * (_req) => new Response("Hello, world") + * ); + * server.finished.then(() => console.log("Server closed")); * * console.log("Closing server..."); * ac.abort(); @@ -1487,7 +1506,7 @@ declare namespace Deno { */ export function serve( options: ServeInit & (ServeOptions | ServeTlsOptions), - ): Promise<void>; + ): Server; /** **UNSTABLE**: New API, yet to be vetted. * |