everything-dev
Version:
A consolidated product package for building Module Federation apps with oRPC APIs.
59 lines (57 loc) • 2.42 kB
JavaScript
const require_theme = require('../../utils/theme.cjs');
const require_exit_codes = require('../exit-codes.cjs');
//#region src/cli/commands/db.ts
const dbRenderers = {
dbStudio: async (result, _ctx) => {
if (require_exit_codes.exitCodeFor(result) === 1) {
console.error(`[CLI] ${result.error || "Unknown error"}`);
process.exit(1);
}
},
dbDoctor: async (result, _ctx) => {
if (require_exit_codes.exitCodeFor(result) === 1) {
console.error(`[CLI] ${result.error || "Diagnosis failed"}`);
process.exit(1);
}
const statusIcon = (() => {
switch (result.diagnosis) {
case "healthy": return "✓";
case "empty": return "○";
case "unapplied": return "○";
case "untracked-existing-schema": return "○";
case "drift-safe-repair": return "⚠";
case "drift-manual": return "✗";
default: return "?";
}
})();
console.log(`\n${statusIcon} ${result.plugin}`);
console.log(` ${require_theme.colors.dim(`Journal:`)} ${result.journalSchema}.${result.journalTable}`);
console.log(` ${require_theme.colors.dim(`Local migrations:`)} ${result.localMigrationCount}`);
console.log(` ${require_theme.colors.dim(`Applied hashes:`)} ${result.appliedHashCount}`);
if (result.expectedTables.length > 0) console.log(` ${require_theme.colors.dim(`Expected tables:`)} ${result.expectedTables.join(", ")}`);
if (result.missingTables.length > 0) console.log(` ${require_theme.colors.yellow(`Missing tables:`)} ${result.missingTables.join(", ")}`);
console.log(` ${require_theme.colors.dim(`Diagnosis:`)} ${result.diagnosis}`);
if (result.workspaceDir) console.log(` ${require_theme.colors.dim(`Workspace:`)} ${result.workspaceDir}`);
console.log();
},
dbRepair: async (result, _ctx) => {
if (result.status === "refused") {
console.log(`\n${require_theme.colors.yellow("!")} Repair refused for ${result.diagnosis?.plugin ?? result.message}`);
console.log(` ${result.message}`);
console.log();
process.exit(0);
}
if (require_exit_codes.exitCodeFor(result) === 1) {
console.error(`\n${require_theme.colors.error("✗")} Repair failed`);
console.error(` ${result.message}`);
console.error();
process.exit(1);
}
console.log(`\n${require_theme.colors.green("✓")} Repair complete`);
console.log(` ${result.message}`);
console.log();
}
};
//#endregion
exports.dbRenderers = dbRenderers;
//# sourceMappingURL=db.cjs.map