UNPKG

bktide

Version:

Command-line interface for Buildkite CI/CD workflows with rich shell completions (Fish, Bash, Zsh) and Alfred workflow integration for macOS power users

57 lines 2.39 kB
import { PipelineDetailFormatter } from './Formatter.js'; import { SEMANTIC_COLORS, formatTips, TipStyle } from '../../ui/theme.js'; import { renderTable } from '../../ui/table.js'; import { formatStatus, formatRelativeDate, truncate } from '../../utils/formatUtils.js'; export class PlainPipelineDetailFormatter extends PipelineDetailFormatter { name = 'plain'; constructor(options) { super(options); } format(data) { const { org, pipeline, recentBuilds } = data; const lines = []; // Pipeline header lines.push(SEMANTIC_COLORS.heading(`Pipeline: ${pipeline.name}`)); if (pipeline.description) { lines.push(SEMANTIC_COLORS.dim(`Description: ${pipeline.description}`)); } if (pipeline.defaultBranch) { lines.push(SEMANTIC_COLORS.dim(`Default Branch: ${pipeline.defaultBranch}`)); } if (pipeline.repository?.url) { lines.push(SEMANTIC_COLORS.dim(`Repository: ${pipeline.repository.url}`)); } lines.push(''); // Recent builds if (recentBuilds && recentBuilds.length > 0) { lines.push(SEMANTIC_COLORS.subheading('Recent Builds')); lines.push(''); const tableRows = [ ['Build', 'Status', 'Branch', 'Message', 'Started'], ...recentBuilds.map(build => [ SEMANTIC_COLORS.label(`#${build.number}`), formatStatus(build.state), build.branch, truncate(build.message, 50), build.startedAt ? formatRelativeDate(build.startedAt) : '-', ]) ]; const table = renderTable(tableRows, { preserveWidths: true }); lines.push(table); // Add tips (unless --no-tips was used) if (this.options.tips !== false) { lines.push(''); const tips = formatTips([ `View a build: bktide ${org}/${pipeline.slug}/<number>`, 'Use --format json for machine-readable output', ], TipStyle.GROUPED); lines.push(tips); } } else { lines.push(SEMANTIC_COLORS.dim('No recent builds found')); } return lines.join('\n'); } } //# sourceMappingURL=PlainFormatter.js.map