@alvinveroy/codecompass
Version:
AI-powered MCP server for codebase navigation and LLM prompt optimization
23 lines (22 loc) • 908 B
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.withRetry = withRetry;
const config_service_1 = require("../lib/config-service");
// Utility: Retry logic
async function withRetry(fn, retries = config_service_1.configService.MAX_RETRIES) {
let lastError;
for (let i = 0; i < retries; i++) {
try {
return await fn();
}
catch (error) {
lastError = error instanceof Error ? error : new Error(String(error));
config_service_1.logger.warn(`Retry ${i + 1}/${retries} after error: ${lastError.message}`);
if (i < retries - 1) {
// Use exponential backoff for retries
await new Promise(resolve => setTimeout(resolve, config_service_1.configService.RETRY_DELAY * Math.pow(2, i)));
}
}
}
throw lastError || new Error("All retries failed");
}