14 lines
709 B
TypeScript
14 lines
709 B
TypeScript
export function mdTable(headers: string[], rows: string[][]): string {
|
|
const widths = headers.map((h, i) => Math.max(h.length, ...rows.map((r) => (r[i] || "").length), 3));
|
|
const header = `| ${headers.map((h, i) => h.padEnd(widths[i])).join(" | ")} |`;
|
|
const sep = `| ${widths.map((w) => "-".repeat(w)).join(" | ")} |`;
|
|
const body = rows.map((r) => `| ${r.map((c, i) => (c || "").padEnd(widths[i])).join(" | ")} |`).join("\n");
|
|
return body ? `${header}\n${sep}\n${body}` : `${header}\n${sep}`;
|
|
}
|
|
|
|
export function formatCell(value: unknown): string {
|
|
if (value === null || value === undefined) return "NULL";
|
|
if (typeof value === "object") return JSON.stringify(value);
|
|
return String(value);
|
|
}
|