decentralised message store
1import { setupDbWithMigrations } from "@/db";
2import { DB_URL, SERVER_PORT } from "@/lib/env";
3import { routes } from "@/routes";
4import { setupServer } from "@/server";
5
6const main = async () => {
7 if (DB_URL === ":memory:") await setupDbWithMigrations("./drizzle");
8
9 const server = await setupServer();
10 for (const [url, route] of Object.entries(routes)) {
11 if (!route.wsHandler) {
12 const { handler, method } = route;
13 server.route({
14 url,
15 method,
16 handler,
17 });
18 } else {
19 const { wsHandler, method, handler } = route;
20 server.route({
21 url,
22 method: method ?? "GET",
23 handler: handler ?? (() => new Response()),
24 wsHandler,
25 });
26 }
27 }
28
29 server.listen({ port: SERVER_PORT }).catch((err: unknown) => {
30 server.log.error(err);
31 process.exit(1);
32 });
33};
34
35main()
36 .then(() => {
37 console.log(`Server is running on port ${SERVER_PORT.toString()}`);
38 })
39 .catch((err: unknown) => {
40 console.error("Something went wrong :(");
41 console.error(
42 "=========================== FULL ERROR BELOW ===========================",
43 );
44 console.error(err);
45 });