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, preHandler } = route; 20 server.register(() => { 21 server.route({ 22 url, 23 method: method ?? "GET", 24 handler: handler ?? (() => new Response()), 25 wsHandler, 26 preHandler, 27 }); 28 }); 29 } 30 } 31 32 server.listen({ port: SERVER_PORT }).catch((err: unknown) => { 33 server.log.error(err); 34 process.exit(1); 35 }); 36}; 37 38main() 39 .then(() => { 40 console.log(`Server is running on port ${SERVER_PORT.toString()}`); 41 }) 42 .catch((err: unknown) => { 43 console.error("Something went wrong :("); 44 console.error( 45 "=========================== FULL ERROR BELOW ===========================", 46 ); 47 console.error(err); 48 });