Bind web dev server to port 3000

Simplify the web dev launcher to always use port 3000 and fix the dev:web script cwd invocation.
This commit is contained in:
dirtydishes 2025-12-29 18:42:01 -05:00
parent b8f9e585e9
commit 18366192b2
2 changed files with 2 additions and 55 deletions

View file

@ -1,58 +1,5 @@
type PortCheck = {
port: number;
available: boolean;
};
const DEFAULT_PORTS = [3001, 3002, 3003, 3004, 3005];
const isAvailable = (port: number): PortCheck => {
try {
const probe = Bun.serve({
port,
fetch: () => new Response("ok")
});
probe.stop();
return { port, available: true };
} catch {
return { port, available: false };
}
};
const parsePort = (value: string | undefined): number | null => {
if (!value) {
return null;
}
const parsed = Number.parseInt(value, 10);
if (!Number.isFinite(parsed) || parsed <= 0) {
return null;
}
return parsed;
};
const selectPort = (): number => {
const requested = parsePort(Bun.env.PORT);
if (requested !== null) {
const check = isAvailable(requested);
if (!check.available) {
throw new Error(`Port ${requested} is already in use. Set PORT to another value.`);
}
return requested;
}
for (const port of DEFAULT_PORTS) {
if (isAvailable(port).available) {
return port;
}
}
throw new Error("No available port found for Next dev server.");
};
const run = async () => {
const port = selectPort();
const port = 3000;
console.log(`[web] starting Next.js dev server on port ${port}`);
const path = Bun.env.PATH ?? "";