27 lines
575 B
TypeScript
27 lines
575 B
TypeScript
import { buildApp } from './app.js';
|
|
import { config } from './config.js';
|
|
import { closePool } from './db/pool.js';
|
|
|
|
const app = buildApp();
|
|
|
|
async function start() {
|
|
try {
|
|
await app.listen({ host: '0.0.0.0', port: config.API_PORT });
|
|
} catch (error) {
|
|
app.log.error(error);
|
|
await closePool();
|
|
process.exit(1);
|
|
}
|
|
}
|
|
|
|
for (const signal of ['SIGINT', 'SIGTERM']) {
|
|
process.once(signal, () => {
|
|
app.log.info({ signal }, 'Shutdown signal received');
|
|
app.close()
|
|
.then(closePool)
|
|
.finally(() => process.exit(0));
|
|
});
|
|
}
|
|
|
|
void start();
|