UNPKG

qapinterface

Version:

Comprehensive API utilities for Node.js applications including authentication, security, request processing, and response handling with zero external dependencies

57 lines (50 loc) 1.83 kB
/** * Retry Logger * Single Responsibility: Log retry attempt information ONLY */ /** * Logs retry attempt information * @param {Error|object} error - Error that caused the retry * @param {number} attempt - Current attempt number (1-based) * @param {number} delay - Delay before next attempt in milliseconds * @param {string} [functionName] - Name of function being retried */ function logRetryAttempt(error, attempt, delay, functionName) { const errorMessage = error?.message || 'Unknown error'; const errorStatus = error?.response?.status || error?.status || 'N/A'; const functionContext = functionName ? ` [${functionName}]` : ''; console.warn( `Retry attempt ${attempt}${functionContext}: ${errorMessage} ` + `(status: ${errorStatus}) - retrying in ${delay}ms` ); } /** * Logs final retry failure * @param {Error|object} error - Final error after all retries * @param {number} totalAttempts - Total number of attempts made * @param {string} [functionName] - Name of function that failed */ function logRetryFailure(error, totalAttempts, functionName) { const errorMessage = error?.message || 'Unknown error'; const functionContext = functionName ? ` [${functionName}]` : ''; console.error( `Retry failed${functionContext}: ${errorMessage} ` + `after ${totalAttempts} attempts` ); } /** * Logs successful retry recovery * @param {number} attempt - Attempt number that succeeded (1-based) * @param {string} [functionName] - Name of function that succeeded */ function logRetrySuccess(attempt, functionName) { const functionContext = functionName ? ` [${functionName}]` : ''; if (attempt > 1) { console.info(`Retry success${functionContext}: recovered on attempt ${attempt}`); } } module.exports = { logRetryAttempt, logRetryFailure, logRetrySuccess };