big chungus; big changes

This commit is contained in:
2025-10-22 15:01:08 -04:00
parent bb515f1219
commit 390f637c48
33 changed files with 907 additions and 1783 deletions

View File

@@ -1,42 +1,62 @@
import { Server as Engine } from "@socket.io/bun-engine";
import { Server } from "socket.io";
import { Hono } from "hono";
import { cors } from 'hono/cors';
import { PrismaClient } from "./generated/prisma";
const io = new Server();
const engine = new Engine();
engine.opts.cors = {
origin: "*"
interface ServerToClientEvents {
}
io.bind(engine);
interface ClientToServerEvents {
createAlarm: (cmd:CreateAlarmCommand) => void;
}
interface InterServerEvents {
}
interface SocketData {
token: string;
}
interface CreateAlarmCommand {
time:string
}
interface ListCommand {
groupId?:number
}
interface MakeGroupCommand {
name:string
}
interface RemoveCommand {
groupId:number
alarmId:number
}
interface SnoozeCommand {
groupId:number
}
interface ShutoffCommand {
groupId:number
}
const key = process.env.SECRET_KEY;
if (!key) {
throw new Error("Secret key not defined");
}
const io = new Server<
ServerToClientEvents,
ClientToServerEvents,
InterServerEvents,
SocketData
>(3300);
io.on("connection", (socket) => {
console.log("conn")
});
if (socket.data.token !== key) {
return;
}
const app = new Hono();
app.use(cors({ origin: '*' }))
const { websocket } = engine.handler();
const prisma = new PrismaClient();
prisma.user.findMany().then((data) => console.log(data));
export default {
port: 3000,
idleTimeout: 30, // must be greater than the "pingInterval" option of the engine, which defaults to 25 seconds
fetch(req: Request, server: unknown) {
const url = new URL(req.url);
if (url.pathname === "/socket.io/") {
return engine.handleRequest(req, server);
} else {
return app.fetch(req, server);
}
},
websocket
}
socket.on("createAlarm", () => {
});
});