From 26638b0e4e6605014f76cb73a2e3a0b1e0bb6018 Mon Sep 17 00:00:00 2001 From: David Glasser Date: Mon, 19 Jul 2021 14:03:27 -0700 Subject: [PATCH] Refactor to repeat less --- packages/apollo-server/src/stoppable.ts | 22 ++++++++++------------ 1 file changed, 10 insertions(+), 12 deletions(-) diff --git a/packages/apollo-server/src/stoppable.ts b/packages/apollo-server/src/stoppable.ts index 491d8b85920..7a86b60edfc 100644 --- a/packages/apollo-server/src/stoppable.ts +++ b/packages/apollo-server/src/stoppable.ts @@ -26,7 +26,7 @@ // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. -import http from 'http'; +import type http from 'http'; import https from 'https'; import type { Socket } from 'net'; @@ -35,18 +35,16 @@ export class Stopper { private stopped = false; constructor(private server: http.Server | https.Server) { - const onConnection = (socket: Socket) => { - this.reqsPerSocket.set(socket, 0); - socket.once('close', () => this.reqsPerSocket.delete(socket)); - }; - - if (server instanceof https.Server) { - server.on('secureConnection', onConnection); - } else { - server.on('connection', onConnection); - } + // Keep a number in reqsPerSocket for each current connection. + server.on( + server instanceof https.Server ? 'secureConnection' : 'connection', + (socket: Socket) => { + this.reqsPerSocket.set(socket, 0); + socket.once('close', () => this.reqsPerSocket.delete(socket)); + }, + ); - // Track how many requests are active on the socket. + // Track how many HTTP requests are active on the socket. server.on( 'request', (req: http.IncomingMessage, res: http.ServerResponse) => {