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
JavaScript
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