everything-dev
Version:
A consolidated product package for building Module Federation apps with oRPC APIs.
39 lines (37 loc) • 2.11 kB
JavaScript
const require_theme = require('../../utils/theme.cjs');
//#region src/cli/render/processes.ts
function renderPs(result) {
console.log();
if (result.status === "error") {
console.error(`[CLI] ${result.error || "Unknown error"}`);
process.exit(1);
}
const entries = result.entries ?? [];
if (entries.length === 0) {
console.log(require_theme.colors.dim(" No tracked development processes running."));
console.log();
console.log(require_theme.colors.dim(` Start one with ${require_theme.colors.cyan("bos dev")} and it will appear here.`));
console.log();
return;
}
console.log(require_theme.colors.cyan(require_theme.frames.top(60)));
console.log(` ${require_theme.icons.app} ${require_theme.gradients.cyber("PROCESSES")}`);
console.log(require_theme.colors.cyan(require_theme.frames.bottom(60)));
console.log();
for (const entry of entries) {
const ageMs = Date.now() - entry.startedAt;
const ageStr = ageMs < 6e4 ? `${Math.floor(ageMs / 1e3)}s` : ageMs < 36e5 ? `${Math.floor(ageMs / 6e4)}m` : `${Math.floor(ageMs / 36e5)}h`;
const roleTag = entry.role === "workspace-parent" ? require_theme.colors.magenta("parent") : entry.role === "workspace-child" ? require_theme.colors.blue("child") : require_theme.colors.dim("dev");
console.log(` ${require_theme.colors.green(`pid ${entry.pid}`)} ${roleTag} ${require_theme.colors.dim(ageStr)}`);
console.log(` ${require_theme.colors.dim("dir:")} ${entry.configDir}`);
if (entry.parentPid !== void 0) console.log(` ${require_theme.colors.dim("parent:")} ${entry.parentPid}`);
const portPairs = Object.entries(entry.ports ?? {}).filter(([, p]) => typeof p === "number").map(([k, v]) => `${k}=${v}`);
if (portPairs.length > 0) console.log(` ${require_theme.colors.dim("ports:")} ${portPairs.join(" ")}`);
if (entry.budget) console.log(` ${require_theme.colors.dim("budget:")} [${entry.budget.min}, ${entry.budget.max}]`);
console.log(` ${require_theme.colors.dim("desc:")} ${entry.description}`);
console.log();
}
}
//#endregion
exports.renderPs = renderPs;
//# sourceMappingURL=processes.cjs.map