import type { CommandOutput, OutputFormat, Writer } from "./types.js"; function renderText(payload: CommandOutput) { const data = payload.data as Record; if (Array.isArray(data?.issues)) { return data.issues .map((issue) => { const item = issue as Record; return `${item.key} [${item.status}] ${item.issueType} - ${item.summary}`; }) .join("\n"); } if (data?.issue && typeof data.issue === "object") { const issue = data.issue as Record; return [ issue.key, `${issue.issueType} | ${issue.status}`, issue.summary, issue.url, ].join("\n"); } if (Array.isArray(data?.transitions)) { return data.transitions .map((transition) => { const item = transition as Record; return `${item.id} ${item.name} -> ${item.toStatus}`; }) .join("\n"); } return JSON.stringify(payload, null, 2); } export function writeOutput( writer: Writer, payload: CommandOutput, format: OutputFormat = "json", ) { const body = format === "text" ? renderText(payload) : JSON.stringify(payload, null, 2); writer.write(`${body}\n`); }