import { resolve } from 'path'; import WetSock from './WetSock'; import RoomPlugin from './WetSock/Plugins/Rooms/RoomPlugin'; const wetsock = new WetSock(); const rooms = new RoomPlugin(); wetsock.registerPlugin('rooms', rooms); const server = Bun.serve({ port: process.env.APP_PORT || 3_000, async fetch(req, server) { const url = new URL(req.url); if(url.pathname == '/chat') return wetsock.handleUpgrade(req, server); let filePath = resolve(__dirname, 'WetSock', 'Client', 'Assets', 'index.html'); if(url.pathname == '/client.js') { filePath = resolve(__dirname, 'WetSock', 'Client', 'Client.js'); } const file = Bun.file(filePath); if(!(await file.exists())) { return new Response('Not found', {status: 404}); } return new Response(file); }, websocket: { open: wetsock.handleOpen.bind(wetsock), close: wetsock.handleClose.bind(wetsock), message: wetsock.handleMessage.bind(wetsock), drain: wetsock.handleDrain.bind(wetsock), } }); wetsock.start(server);