feat: wire up migrations, CORS with credentials, cookie-parser
This commit is contained in:
parent
5dce775dce
commit
dbc12ac816
2 changed files with 27 additions and 8 deletions
|
|
@ -1,29 +1,37 @@
|
||||||
|
import "dotenv/config";
|
||||||
import express from "express";
|
import express from "express";
|
||||||
import cors from "cors";
|
import cors from "cors";
|
||||||
|
import cookieParser from "cookie-parser";
|
||||||
import { createServer } from "http";
|
import { createServer } from "http";
|
||||||
import { Server } from "socket.io";
|
import { Server } from "socket.io";
|
||||||
import { setupSocket } from "./socket.js";
|
import { setupSocket } from "./socket.js";
|
||||||
|
import { runMigrations } from "./migrate.js";
|
||||||
|
import { seedDevData } from "./seed-dev-data.js";
|
||||||
import campaignRoutes from "./routes/campaigns.js";
|
import campaignRoutes from "./routes/campaigns.js";
|
||||||
import characterRoutes from "./routes/characters.js";
|
import characterRoutes from "./routes/characters.js";
|
||||||
import gameItemRoutes from "./routes/game-items.js";
|
import gameItemRoutes from "./routes/game-items.js";
|
||||||
import gameTalentRoutes from "./routes/game-talents.js";
|
import gameTalentRoutes from "./routes/game-talents.js";
|
||||||
import rollRoutes from "./routes/rolls.js";
|
import rollRoutes from "./routes/rolls.js";
|
||||||
import { seedDevData } from "./seed-dev-data.js";
|
import authRoutes from "./routes/auth.js";
|
||||||
|
import db from "./db.js";
|
||||||
|
|
||||||
|
const CLIENT_URL = process.env.CLIENT_URL ?? "http://localhost:5173";
|
||||||
|
|
||||||
const app = express();
|
const app = express();
|
||||||
const httpServer = createServer(app);
|
const httpServer = createServer(app);
|
||||||
const io = new Server(httpServer, {
|
const io = new Server(httpServer, {
|
||||||
cors: { origin: "*" },
|
cors: { origin: CLIENT_URL, credentials: true },
|
||||||
});
|
});
|
||||||
|
|
||||||
app.use(cors());
|
app.use(cors({ origin: CLIENT_URL, credentials: true }));
|
||||||
app.use(express.json());
|
app.use(express.json());
|
||||||
|
app.use(cookieParser());
|
||||||
|
|
||||||
// Make io accessible to route handlers
|
|
||||||
app.set("io", io);
|
app.set("io", io);
|
||||||
|
|
||||||
setupSocket(io);
|
setupSocket(io);
|
||||||
|
|
||||||
|
app.use("/api/auth", authRoutes);
|
||||||
app.use("/api/campaigns", campaignRoutes);
|
app.use("/api/campaigns", campaignRoutes);
|
||||||
app.use("/api/campaigns/:campaignId/characters", characterRoutes);
|
app.use("/api/campaigns/:campaignId/characters", characterRoutes);
|
||||||
app.use("/api/characters", characterRoutes);
|
app.use("/api/characters", characterRoutes);
|
||||||
|
|
@ -31,11 +39,19 @@ app.use("/api/game-items", gameItemRoutes);
|
||||||
app.use("/api/game-talents", gameTalentRoutes);
|
app.use("/api/game-talents", gameTalentRoutes);
|
||||||
app.use("/api/campaigns/:campaignId/rolls", rollRoutes);
|
app.use("/api/campaigns/:campaignId/rolls", rollRoutes);
|
||||||
|
|
||||||
seedDevData();
|
const PORT = process.env.PORT ?? 3000;
|
||||||
|
|
||||||
const PORT = process.env.PORT || 3000;
|
async function start() {
|
||||||
httpServer.listen(PORT, () => {
|
await runMigrations(db);
|
||||||
console.log(`Shadowdark server running on http://localhost:${PORT}`);
|
await seedDevData();
|
||||||
|
httpServer.listen(PORT, () => {
|
||||||
|
console.log(`Darkwatch server running on http://localhost:${PORT}`);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
start().catch((err) => {
|
||||||
|
console.error("Failed to start server:", err);
|
||||||
|
process.exit(1);
|
||||||
});
|
});
|
||||||
|
|
||||||
export { io };
|
export { io };
|
||||||
|
|
|
||||||
3
server/src/routes/auth.ts
Normal file
3
server/src/routes/auth.ts
Normal file
|
|
@ -0,0 +1,3 @@
|
||||||
|
import { Router } from "express";
|
||||||
|
const router = Router();
|
||||||
|
export default router;
|
||||||
Loading…
Add table
Reference in a new issue