Spaces:
Running
Running
import { defineConfig } from "vite"; | |
import { svelte } from "@sveltejs/vite-plugin-svelte"; | |
import { vibegame, consoleForwarding } from "vibegame/vite"; | |
import { WebSocketServer } from "ws"; | |
import { wsManager } from "./src/lib/server/api"; | |
export default defineConfig({ | |
plugins: [ | |
svelte(), | |
vibegame(), | |
consoleForwarding(), | |
{ | |
name: "websocket-server", | |
configureServer(server) { | |
const wss = new WebSocketServer({ noServer: true }); | |
server.httpServer?.on("upgrade", (request, socket, head) => { | |
if (request.url === "/ws") { | |
wss.handleUpgrade(request, socket, head, (ws) => { | |
wsManager.handleConnection(ws, request); | |
}); | |
} | |
}); | |
server.middlewares.use((req, res, next) => { | |
if (req.url === "/auth/callback") { | |
res.statusCode = 200; | |
res.setHeader("Content-Type", "text/html"); | |
res.end(`<!DOCTYPE html> | |
<html> | |
<head> | |
<title>Authenticating...</title> | |
<script type="module"> | |
// Redirect to main app - the OAuth handler will process the URL params | |
window.location.href = '/'; | |
</script> | |
</head> | |
<body> | |
<p>Authenticating...</p> | |
</body> | |
</html>`); | |
return; | |
} | |
next(); | |
}); | |
}, | |
}, | |
], | |
optimizeDeps: { | |
include: ["monaco-editor"], | |
}, | |
server: { | |
host: "0.0.0.0", | |
port: parseInt(process.env.PORT || "7860"), | |
open: false, | |
strictPort: true, | |
allowedHosts: ["localhost", ".hf.space"], | |
}, | |
build: { | |
target: "esnext", | |
sourcemap: true, | |
}, | |
}); | |