mirror of
https://github.com/Sea-Haven-Industries/seahaven-ap.git
synced 2026-10-06 00:41:56 +00:00
33 lines
779 B
TypeScript
33 lines
779 B
TypeScript
|
|
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;
|
||
|
|
});
|