astro
Version:
Astro is a modern site builder with web best practices, performance, and DX front-of-mind.
34 lines (33 loc) • 1.03 kB
JavaScript
import { pathToFileURL } from "node:url";
import { checkExistingServer } from "../../core/dev/lockfile.js";
import { resolveRoot } from "../../core/config/config.js";
function formatStatusOutput(result) {
return JSON.stringify(result);
}
async function status({
flags,
logger
}) {
const root = pathToFileURL(resolveRoot(flags.root) + "/");
const existing = checkExistingServer(root);
if (!existing) {
logger.info("SKIP_FORMAT", "No dev server is running.");
return;
}
const startedAt = new Date(existing.startedAt).getTime();
const uptime = Math.floor((Date.now() - startedAt) / 1e3);
const lines = [
`Dev server running at ${existing.url} (pid ${existing.pid}, uptime ${uptime}s${existing.background ? ", background" : ""})`
];
if (existing.urls && existing.urls.network.length > 0) {
lines.push(" Network:");
for (const url of existing.urls.network) {
lines.push(` ${url}`);
}
}
logger.info("SKIP_FORMAT", lines.join("\n"));
}
export {
formatStatusOutput,
status
};