UNPKG

@coinbase/agentkit

Version:

Coinbase AgentKit core primitives

66 lines (65 loc) 2.06 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.createMessariError = createMessariError; exports.formatMessariApiError = formatMessariApiError; exports.formatGenericError = formatGenericError; /** * Creates a MessariError from an HTTP response * * @param response - The fetch Response object * @returns A MessariError with response details */ async function createMessariError(response) { const error = new Error(`Messari API returned ${response.status} ${response.statusText}`); error.status = response.status; error.statusText = response.statusText; const responseText = await response.text(); error.responseText = responseText; try { const errorJson = JSON.parse(responseText); error.errorResponse = errorJson; } catch { // If parsing fails, just use the raw text } return error; } /** * Formats error details for API errors * * @param error - The MessariError to format * @returns Formatted error message */ function formatMessariApiError(error) { if (error.errorResponse?.error) { return `Messari API Error: ${error.errorResponse.error}`; } const errorDetails = { status: error.status, statusText: error.statusText, responseText: error.responseText, message: error.message, }; return `Messari API Error: ${JSON.stringify(errorDetails, null, 2)}`; } /** * Formats generic errors * * @param error - The error to format * @returns Formatted error message */ function formatGenericError(error) { // Check if this might be a JSON string containing an error message if (typeof error === "string") { try { const parsedError = JSON.parse(error); if (parsedError.error) { return `Messari API Error: ${parsedError.error}`; } } catch { // Not valid JSON, continue with normal handling } } return `Unexpected error: ${error instanceof Error ? error.message : String(error)}`; }