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

98 lines 2.91 kB
import { logger } from '../../services/logger.js'; /** * Base class for error formatters */ export class BaseErrorFormatter { format(data, formatFn, options) { if (options?.debug) { logger.debug(`Formatting with ${this.name} formatter`); } return formatFn(data, options); } /** * Extract error message from an error object * @param error The error object * @returns The error message */ getErrorMessage(error) { if (error instanceof Error) { return error.message; } else if (error && typeof error === 'object') { const errorObj = error; if (errorObj.message && typeof errorObj.message === 'string') { return errorObj.message; } return 'Unknown object error'; } return String(error); } /** * Extract error name from an error object * @param error The error object * @returns The error name */ getErrorName(error) { if (error instanceof Error) { return error.name; } else if (error && typeof error === 'object') { const errorObj = error; if (errorObj.name && typeof errorObj.name === 'string') { return errorObj.name; } } return 'Error'; } /** * Extract stack trace from an error object * @param error The error object * @returns The stack trace or undefined */ getStackTrace(error) { if (error instanceof Error) { return error.stack; } else if (error && typeof error === 'object') { const errorObj = error; if (errorObj.stack && typeof errorObj.stack === 'string') { return errorObj.stack; } } return undefined; } /** * Extract API errors from an error object * @param error The error object * @returns Array of API errors or undefined */ getApiErrors(error) { if (error && typeof error === 'object') { const errorObj = error; const response = errorObj.response; if (response?.errors && Array.isArray(response.errors)) { return response.errors; } } return undefined; } /** * Extract request details from an error object * @param error The error object * @returns Request details or undefined */ getRequestDetails(error) { if (error && typeof error === 'object') { const errorObj = error; const request = errorObj.request; if (request) { return { url: request.url, method: request.method }; } } return undefined; } } //# sourceMappingURL=Formatter.js.map