seahaven-ap/packages/api/src/index.ts

33 lines
779 B
TypeScript
Raw Normal View History

import { serve } from "@hono/node-server";
import { createApp } from "./app.js";
import { closeDb, createDb } from "./db/client.js";
import { loadEnv } from "./env.js";
async function main(): Promise<void> {
const env = loadEnv();
const handle = createDb(env);
const app = createApp(env, handle);
const server = serve({ fetch: app.fetch, port: env.port }, (info) => {
console.log(`@seahaven-ap/api listening on http://127.0.0.1:${info.port}`);
});
const shutdown = async () => {
server.close();
await closeDb(handle);
process.exit(0);
};
process.on("SIGINT", () => {
void shutdown();
});
process.on("SIGTERM", () => {
void shutdown();
});
}
main().catch((error: unknown) => {
console.error(error);
process.exitCode = 1;
});