INNER CODE UNIT · TypeScript

gracefulClose

yagop/node-telegram-bot-api · src/node/server.ts:92

export function gracefulClose(
  server: http.Server,
  timeoutMs: number
): ReturnType<typeof setTimeout> {
  server.close(); // stop accepting; resolves once existing connections end
  server.closeIdleConnections?.(); // drop idle keep-alive sockets now
  const forceTimer = setTimeout(() => server.closeAllConnections?.(), timeoutMs);
  forceTimer.unref?.(); // don't let the timer itself hold the loop open
  return forceTimer;
}

/**
 * Managed webhook runner: create a `node:http` webhook server, start listening,
 * and resolve when it shuts down. Once listening, installs `SIGINT`/`SIGTERM`
 * handlers that close the server for a graceful exit (cleaned up in a `finally`),
 * mirroring `run()` for long polling. Rejects if the server fails to start (e.g.
 * the port is in use).
 *

View source record →

📰 Research Paper
Loading…
⏳ Fetching content…