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

44 lines 1.82 kB
import { BaseFormatter } from './Formatter.js'; export class JsonFormatter extends BaseFormatter { name = 'json'; formatBuilds(builds, options) { // Handle error cases if (options?.hasError) { const errorResult = { error: true, errorType: options.errorType || 'unknown', message: options.errorMessage || 'An error occurred', accessErrors: options.accessErrors || [] }; return JSON.stringify(errorResult, null, 2); } // Handle empty results (no error, just no data) if (builds.length === 0) { const emptyResult = { count: 0, builds: [], message: options?.userName ? `No builds found for ${options.userName}${options?.userEmail ? ` (${options.userEmail})` : ''}.` : 'No builds found.' }; return JSON.stringify(emptyResult, null, 2); } // Normal case with builds const result = { count: builds.length, builds: builds.map((build) => ({ pipeline: build.pipeline?.slug || 'Unknown pipeline', number: build.number, branch: build.branch || 'Unknown', state: build.state || 'Unknown', message: build.message || 'No message', url: build.web_url || build.url || 'No URL', created_at: build.created_at || build.createdAt || null, started_at: build.started_at || build.startedAt || null, finished_at: build.finished_at || build.finishedAt || null })) }; return JSON.stringify(result, null, 2); } } //# sourceMappingURL=JsonFormatter.js.map