UNPKG

@staroverlay/cli

Version:

CLI for StarOverlay related projects.

43 lines 1.39 kB
import express from "express"; import http from "http"; import * as socketIO from "socket.io"; import middlewares from "./middlewares"; export function startDevServer(settings) { const ctx = createServerCtx(settings); if (settings.engine === "vite") { import('./vite').then((mod) => new mod.default(settings).start(ctx)); } else { throw new Error(`Unsupported engine: ${settings.engine}`); } } function createServerCtx(settings) { const app = express(); for (const middleware of middlewares) { app.use(middleware); } const server = http.createServer(app); const io = new socketIO.Server(server); io.on("connection", (socket) => { console.log("[StarOverlay] Client connected:", socket.id); socket.on("auth", (token) => { if (token === "dev_server") { socket.emit("auth", { widget: {}, template: {}, version: {} }); } else { socket.emit("error", "BAD_AUTH"); socket.disconnect(); } }); }); const { port, bind } = settings; server.listen(port, bind, () => { console.log(`[StarOverlay] Dev server listening on http://${bind}:${port}/`); }); return { server, app, io }; } //# sourceMappingURL=index.js.map