@coko/server
Version:
Reusable server for use by Coko's projects
24 lines • 1.01 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const axios_1 = __importDefault(require("axios"));
const axios_retry_1 = __importDefault(require("axios-retry"));
const request = (options = {}) => {
const { retries, retryDelay, ...restOptions } = options;
(0, axios_retry_1.default)(axios_1.default, {
retries: retries || 0,
retryDelay: retryCount => {
// console.log(`Retry attempt: ${retryCount}`)
return retryCount * (retryDelay || 1000); // Exponential backoff
},
retryCondition: error => {
// Retry on network errors or 5xx responses
return error.response?.status >= 500 || axios_retry_1.default.isNetworkError(error);
},
});
return (0, axios_1.default)(restOptions);
};
exports.default = request;
//# sourceMappingURL=request.js.map