@intlayer/config
Version:
Retrieve Intlayer configurations and manage environment variables for both server-side and client-side environments.
28 lines • 772 B
JavaScript
import { logger } from "./logger.mjs";
const DEFAULT_MAX_RETRY = 3;
const DEFAULT_DELAY = 6e4;
const retryManager = (fn, {
maxRetry = DEFAULT_MAX_RETRY,
delay = DEFAULT_DELAY,
onError
} = {}) => (
// ───────────────────────────────^ returned wrapper function
async (...args) => {
for (let attempt = 0; ; attempt++) {
try {
return await fn(...args);
} catch (err) {
onError?.(err);
logger(["Request failed", err], {
level: "error"
});
if (attempt >= maxRetry) throw err;
if (delay > 0) await new Promise((res) => setTimeout(res, delay));
}
}
}
);
export {
retryManager
};
//# sourceMappingURL=retryManager.mjs.map