diff options
author | Nathan Whitaker <17734409+nathanwhit@users.noreply.github.com> | 2024-09-12 16:32:28 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-09-12 23:32:28 +0000 |
commit | 7477c2d70639962a40c7333e766b4a4b4aa75ddd (patch) | |
tree | e03ec832e9d7a7ef1d40575210aba46b3a83632a | |
parent | 018329a4d30681c953670cebe35a6e9dbf9bc5bb (diff) |
feat(serve): Support second parameter in deno serve (#25606)
Closes #24099
-rw-r--r-- | cli/tsc/dts/lib.deno.ns.d.ts | 4 | ||||
-rw-r--r-- | ext/http/00_serve.ts | 4 | ||||
-rw-r--r-- | tests/specs/serve/basic/__test__.jsonc | 4 | ||||
-rw-r--r-- | tests/specs/serve/basic/main.out | 1 | ||||
-rw-r--r-- | tests/specs/serve/basic/main.ts | 2 | ||||
-rw-r--r-- | tests/specs/serve/basic/main_not_win.out | 1 | ||||
-rw-r--r-- | tests/specs/serve/conn_info/__test__.jsonc | 6 | ||||
-rw-r--r-- | tests/specs/serve/conn_info/main.out | 3 | ||||
-rw-r--r-- | tests/specs/serve/conn_info/main.ts | 19 |
9 files changed, 36 insertions, 8 deletions
diff --git a/cli/tsc/dts/lib.deno.ns.d.ts b/cli/tsc/dts/lib.deno.ns.d.ts index 00eff1e23..e287f7afc 100644 --- a/cli/tsc/dts/lib.deno.ns.d.ts +++ b/cli/tsc/dts/lib.deno.ns.d.ts @@ -5090,9 +5090,7 @@ declare namespace Deno { * * @category HTTP Server */ - fetch: ( - request: Request, - ) => Response | Promise<Response>; + fetch: ServeHandler; } /** Options which can be set when calling {@linkcode Deno.serve}. diff --git a/ext/http/00_serve.ts b/ext/http/00_serve.ts index be1f1f809..a49ab2790 100644 --- a/ext/http/00_serve.ts +++ b/ext/http/00_serve.ts @@ -880,8 +880,8 @@ function registerDeclarativeServer(exports) { ); } }, - handler: (req) => { - return exports.fetch(req); + handler: (req, connInfo) => { + return exports.fetch(req, connInfo); }, }); }; diff --git a/tests/specs/serve/basic/__test__.jsonc b/tests/specs/serve/basic/__test__.jsonc index a8eaca0b6..be63f793a 100644 --- a/tests/specs/serve/basic/__test__.jsonc +++ b/tests/specs/serve/basic/__test__.jsonc @@ -3,12 +3,12 @@ "tests": { "basic_win": { "if": "windows", - "args": "serve --host 0.0.0.0 --port 12345 main.ts", + "args": "serve --check --host 0.0.0.0 --port 12345 main.ts", "output": "main.out" }, "basic_not_win": { "if": "unix", - "args": "serve --host 0.0.0.0 --port 12345 main.ts", + "args": "serve --check --host 0.0.0.0 --port 12345 main.ts", "output": "main_not_win.out" } } diff --git a/tests/specs/serve/basic/main.out b/tests/specs/serve/basic/main.out index e79d76af5..8247920e2 100644 --- a/tests/specs/serve/basic/main.out +++ b/tests/specs/serve/basic/main.out @@ -1 +1,2 @@ +Check [WILDCARD] deno serve: Listening on http://localhost:12345/ diff --git a/tests/specs/serve/basic/main.ts b/tests/specs/serve/basic/main.ts index 9e299ab21..8aa061b1e 100644 --- a/tests/specs/serve/basic/main.ts +++ b/tests/specs/serve/basic/main.ts @@ -15,4 +15,4 @@ export default { fetch(req) { return new Response("Hello world!"); }, -}; +} satisfies Deno.ServeDefaultExport; diff --git a/tests/specs/serve/basic/main_not_win.out b/tests/specs/serve/basic/main_not_win.out index cbfd3395e..6b4a66750 100644 --- a/tests/specs/serve/basic/main_not_win.out +++ b/tests/specs/serve/basic/main_not_win.out @@ -1 +1,2 @@ +Check [WILDCARD] deno serve: Listening on http://0.0.0.0:12345/ diff --git a/tests/specs/serve/conn_info/__test__.jsonc b/tests/specs/serve/conn_info/__test__.jsonc new file mode 100644 index 000000000..faefad0ad --- /dev/null +++ b/tests/specs/serve/conn_info/__test__.jsonc @@ -0,0 +1,6 @@ +{ + "args": "serve --check --port 12468 main.ts", + "output": "main.out", + "tempDir": true, + "exitCode": 0 +} diff --git a/tests/specs/serve/conn_info/main.out b/tests/specs/serve/conn_info/main.out new file mode 100644 index 000000000..790c4775d --- /dev/null +++ b/tests/specs/serve/conn_info/main.out @@ -0,0 +1,3 @@ +Check [WILDCARD]main.ts +deno serve: Listening on http://[WILDCARD] +ServeHandlerInfo {} diff --git a/tests/specs/serve/conn_info/main.ts b/tests/specs/serve/conn_info/main.ts new file mode 100644 index 000000000..dbc1b7f07 --- /dev/null +++ b/tests/specs/serve/conn_info/main.ts @@ -0,0 +1,19 @@ +(async () => { + for (let i = 0; i < 1000; i++) { + try { + const resp = await fetch("http://localhost:12468/"); + Deno.exit(0); + } catch { + await new Promise((r) => setTimeout(r, 10)); + } + } + + Deno.exit(2); +})(); + +export default { + fetch(request, connInfo) { + console.log(connInfo); + return new Response("Hello world!"); + }, +} satisfies Deno.ServeDefaultExport; |