paychangu-js
Version:
Paychangu JavaScript SDK for easy integration of payment services
42 lines (41 loc) • 1.17 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.debounce = exports.retry = exports.validateUrl = exports.formatAmount = exports.generateTxRef = void 0;
function generateTxRef() {
return 'TX' + Math.random().toString(36).substr(2, 9).toUpperCase();
}
exports.generateTxRef = generateTxRef;
function formatAmount(amount) {
return amount.toFixed(2);
}
exports.formatAmount = formatAmount;
function validateUrl(url) {
try {
new URL(url);
return true;
}
catch (_a) {
return false;
}
}
exports.validateUrl = validateUrl;
function retry(fn, maxRetries = 3, delay = 1000) {
return fn().catch((error) => {
if (maxRetries === 0) {
throw error;
}
return new Promise((resolve) => setTimeout(resolve, delay))
.then(() => retry(fn, maxRetries - 1, delay));
});
}
exports.retry = retry;
function debounce(func, waitFor) {
let timeout = null;
return (...args) => {
if (timeout !== null) {
clearTimeout(timeout);
}
timeout = setTimeout(() => func(...args), waitFor);
};
}
exports.debounce = debounce;