Refactor start and dev commands. Start in child processes. Handle errors better

This commit is contained in:
2026-04-17 08:47:36 +01:00
parent a5f25d522e
commit 9a427412f3
38 changed files with 706 additions and 224 deletions
+22 -7
View File
@@ -1,14 +1,29 @@
import { Command } from "commander";
import startServer from "../../functions/server/start-server";
import { log } from "../../utils/log";
import bunextInit from "../../functions/bunext-init";
import path from "path";
import writeErrorFile from "../../functions/write-error-file";
export default function () {
return new Command("start")
.description("Start production server")
.action(async () => {
process.env.NODE_ENV = "production";
log.info("Starting production server ...");
await bunextInit();
await startServer();
await start();
});
}
async function start() {
const dev_spawn_file = path.resolve(__dirname, "prod-spawn.ts");
const spawn_options = {
cmd: ["bun", dev_spawn_file],
stdio: ["inherit", "inherit", "inherit"],
onExit(subprocess, exitCode, signalCode, error) {
writeErrorFile({ exitCode, error });
},
env: {
...process.env,
NODE_ENV: "production",
},
};
let dev_process = Bun.spawn(spawn_options);
const exited = await dev_process.exited;
if (exited) {
return await start();
}
}