diff options
Diffstat (limited to 'ext/http/00_serve.ts')
-rw-r--r-- | ext/http/00_serve.ts | 26 |
1 files changed, 18 insertions, 8 deletions
diff --git a/ext/http/00_serve.ts b/ext/http/00_serve.ts index 8ed1a1d04..9c6f80552 100644 --- a/ext/http/00_serve.ts +++ b/ext/http/00_serve.ts @@ -579,6 +579,8 @@ type RawServeOptions = { handler?: RawHandler; }; +const kLoadBalanced = Symbol("kLoadBalanced"); + function serve(arg1, arg2) { let options: RawServeOptions | undefined; let handler: RawHandler | undefined; @@ -634,6 +636,7 @@ function serve(arg1, arg2) { hostname: options.hostname ?? "0.0.0.0", port: options.port ?? 8000, reusePort: options.reusePort ?? false, + loadBalanced: options[kLoadBalanced] ?? false, }; if (options.certFile || options.keyFile) { @@ -842,18 +845,25 @@ function registerDeclarativeServer(exports) { "Invalid type for fetch: must be a function with a single or no parameter", ); } - return ({ servePort, serveHost }) => { + return ({ servePort, serveHost, serveIsMain, serveWorkerCount }) => { Deno.serve({ port: servePort, hostname: serveHost, + [kLoadBalanced]: (serveIsMain && serveWorkerCount > 1) || + (serveWorkerCount !== null), onListen: ({ port, hostname }) => { - console.debug( - `%cdeno serve%c: Listening on %chttp://${hostname}:${port}/%c`, - "color: green", - "color: inherit", - "color: yellow", - "color: inherit", - ); + if (serveIsMain) { + const nThreads = serveWorkerCount > 1 + ? ` with ${serveWorkerCount} threads` + : ""; + console.debug( + `%cdeno serve%c: Listening on %chttp://${hostname}:${port}/%c${nThreads}`, + "color: green", + "color: inherit", + "color: yellow", + "color: inherit", + ); + } }, handler: (req) => { return exports.fetch(req); |