// apps/web-next/server.ts
// SERVER-ONLY entry. Custom Next.js server for local development.
// When @repo/core-realtime is scaffolded, this file is extended to boot
// Socket.IO alongside Next (see pnpm turbo gen core-package realtime).
import "reflect-metadata";
import { createServer } from "node:http";
import next from "next";
import { bindAll } from "./src/server/bind-production.js";

const dev = process.env.NODE_ENV !== "production";
const port = Number(process.env.PORT ?? 3000);

const app = next({ dev });
const handle = app.getRequestHandler();

await app.prepare();

await bindAll();

const httpServer = createServer((req, res) => handle(req, res));
httpServer.listen(port, () => {
  console.log(`> Ready on http://localhost:${port}`);
});
