@staroverlay/cli
Version:
CLI for StarOverlay related projects.
43 lines • 1.39 kB
JavaScript
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