everything-dev
Version:
A consolidated product package for building Module Federation apps with oRPC APIs.
59 lines (57 loc) • 2.2 kB
JavaScript
import { colors } from "../../utils/theme.mjs";
import { exitCodeFor } from "../exit-codes.mjs";
//#region src/cli/commands/db.ts
const dbRenderers = {
dbStudio: async (result, _ctx) => {
if (exitCodeFor(result) === 1) {
console.error(`[CLI] ${result.error || "Unknown error"}`);
process.exit(1);
}
},
dbDoctor: async (result, _ctx) => {
if (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(` ${colors.dim(`Journal:`)} ${result.journalSchema}.${result.journalTable}`);
console.log(` ${colors.dim(`Local migrations:`)} ${result.localMigrationCount}`);
console.log(` ${colors.dim(`Applied hashes:`)} ${result.appliedHashCount}`);
if (result.expectedTables.length > 0) console.log(` ${colors.dim(`Expected tables:`)} ${result.expectedTables.join(", ")}`);
if (result.missingTables.length > 0) console.log(` ${colors.yellow(`Missing tables:`)} ${result.missingTables.join(", ")}`);
console.log(` ${colors.dim(`Diagnosis:`)} ${result.diagnosis}`);
if (result.workspaceDir) console.log(` ${colors.dim(`Workspace:`)} ${result.workspaceDir}`);
console.log();
},
dbRepair: async (result, _ctx) => {
if (result.status === "refused") {
console.log(`\n${colors.yellow("!")} Repair refused for ${result.diagnosis?.plugin ?? result.message}`);
console.log(` ${result.message}`);
console.log();
process.exit(0);
}
if (exitCodeFor(result) === 1) {
console.error(`\n${colors.error("✗")} Repair failed`);
console.error(` ${result.message}`);
console.error();
process.exit(1);
}
console.log(`\n${colors.green("✓")} Repair complete`);
console.log(` ${result.message}`);
console.log();
}
};
//#endregion
export { dbRenderers };
//# sourceMappingURL=db.mjs.map