update: use any port if all attempts fail

This commit is contained in:
Axorax 2024-03-14 12:23:53 +06:00
parent e1c44d91c5
commit 59f4877ee5

View File

@ -10,15 +10,14 @@ let port = process.env.PORT ?? 4000; // Starting port
const maxAttempts = 10; // Maximum number of ports to try
const env = argv[2] ?? "dev";
const startServer = (attempt) => {
const startServer = (attempt, useAnyFreePort = false) => {
if (attempt > maxAttempts) {
console.error(chalk.red(`ERROR: Unable to find an available port after ${maxAttempts} attempts.`));
return;
useAnyFreePort = true; // Use any port that is free
}
app.listen(port, () => {
const server = app.listen(useAnyFreePort ? 0 : port, () => {
console.log("\n-----------------------------------------------------------\n");
console.log(`Puter is now live at: `, chalk.underline.blue(`http://localhost:${port}`));
console.log(`Puter is now live at: `, chalk.underline.blue(`http://localhost:${server.address().port}`));
console.log("\n-----------------------------------------------------------\n");
}).on('error', (err) => {
if (err.code === 'EADDRINUSE') { // Check if the error is because the port is already in use