From 4dddfb9dc22f7a696182bfad294fb579b31863e1 Mon Sep 17 00:00:00 2001 From: Eric Harding Date: Mon, 13 Jul 2026 07:53:02 -0400 Subject: [PATCH] cleanshsutdown --- src/server.ts | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/src/server.ts b/src/server.ts index 3bfa123..4cb413a 100644 --- a/src/server.ts +++ b/src/server.ts @@ -3,6 +3,7 @@ import nunjucks from 'nunjucks'; import path from 'node:path'; import { fileURLToPath } from 'node:url'; import { formatCents } from './money.js'; +import { db } from './db.js'; import ordersRouter from './routes/orders.js'; import customersRouter from './routes/customers.js'; import clocksRouter from './routes/clocks.js'; @@ -40,7 +41,22 @@ app.use((err: unknown, _req: express.Request, res: express.Response, _next: expr }); const PORT = process.env.PORT ? Number(process.env.PORT) : 3000; -const HOST = '127.0.0.1'; -app.listen(PORT, HOST, () => { +const HOST = process.env.HOST || '127.0.0.1'; +const server = app.listen(PORT, HOST, () => { console.log(`Harding's Clocks running at http://${HOST}:${PORT}`); }); + +function shutdown(signal: string) { + console.log(`${signal} received, shutting down`); + server.close((err) => { + db.close(); + if (err) { + console.error(err); + process.exit(1); + } + process.exit(0); + }); +} + +process.on('SIGTERM', () => shutdown('SIGTERM')); +process.on('SIGINT', () => shutdown('SIGINT'));