everything-dev
Version:
A consolidated product package for building Module Federation apps with oRPC APIs.
41 lines (39 loc) • 2.15 kB
JavaScript
const require_theme = require('../../utils/theme.cjs');
const require_timing = require('../../utils/timing.cjs');
//#region src/cli/render/dev.ts
/** The `bos start` boot summary. */
function printStartSummary(summary) {
console.log();
console.log(` ${require_theme.colors.dim("Config Source:")} ${summary.configSource}`);
if (summary.configSourceHttp) console.log(` ${require_theme.colors.dim(summary.configSourceHttp)}`);
console.log(` ${require_theme.colors.dim("Account:")} ${summary.account}`);
console.log(` ${require_theme.colors.dim("Domain:")} ${summary.domain ?? "not configured"}`);
console.log();
console.log(` ${require_theme.colors.dim("Modules:")}`);
console.log(` ${require_theme.colors.dim("HOST")} → ${summary.modules.host ?? "local"}`);
console.log(` ${require_theme.colors.dim("UI")} → ${summary.modules.ui ?? "local"}`);
console.log(` ${require_theme.colors.dim("API")} → ${summary.modules.api ?? "local"}`);
if (summary.modules.auth) console.log(` ${require_theme.colors.dim("AUTH")} → ${summary.modules.auth}`);
if (summary.warnings.length > 0) {
console.log();
for (const w of summary.warnings) console.log(` ${require_theme.colors.yellow(w)}`);
}
console.log();
}
/** Phase timings below a long-running summary. */
function printTimingSummary(timings) {
if (!timings || timings.length === 0) return;
console.log(` ${require_theme.colors.dim("Timings:")}`);
for (const timing of timings) console.log(` ${require_theme.colors.dim(timing.name.padEnd(22))} ${require_timing.formatDuration(timing.durationMs)}`);
console.log(` ${require_theme.colors.dim("total".padEnd(22))} ${require_timing.formatDuration(require_timing.sumPhaseDurations(timings))}`);
}
/** Erase the clack spinner line so streamed output starts clean. */
function clearSpinnerStopLine() {
if (!process.stdout.isTTY) return;
process.stdout.write("\x1B[1A\x1B[2K\r");
}
//#endregion
exports.clearSpinnerStopLine = clearSpinnerStopLine;
exports.printStartSummary = printStartSummary;
exports.printTimingSummary = printTimingSummary;
//# sourceMappingURL=dev.cjs.map