33 lines
834 B
TypeScript
33 lines
834 B
TypeScript
import { serve } from "@hono/node-server";
|
|
import { createLogger } from "@link-stack/logger";
|
|
|
|
import { createRoutes } from "./routes.ts";
|
|
import WhatsappService from "./service.ts";
|
|
|
|
const logger = createLogger("bridge-whatsapp-index");
|
|
|
|
const main = async () => {
|
|
const service = new WhatsappService();
|
|
await service.initialize();
|
|
|
|
const app = createRoutes(service);
|
|
const port = Number.parseInt(process.env.PORT || "5000", 10);
|
|
|
|
serve({ fetch: app.fetch, port }, (info) => {
|
|
logger.info({ port: info.port }, "bridge-whatsapp listening");
|
|
});
|
|
|
|
const shutdown = async () => {
|
|
logger.info("Shutting down...");
|
|
await service.teardown();
|
|
process.exit(0);
|
|
};
|
|
|
|
process.on("SIGTERM", shutdown);
|
|
process.on("SIGINT", shutdown);
|
|
};
|
|
|
|
main().catch((error) => {
|
|
logger.error(error);
|
|
process.exit(1);
|
|
});
|