corepay
Version:
A unified, secure and painless self-hosted cryptocurrency payments processor.
31 lines (27 loc) • 659 B
JavaScript
const fetch = require('node-fetch')
const delay = (ms) => {
return new Promise(resolve => {
setTimeout(() => {
resolve()
}, ms)
})
}
const retryFetch = (url, fetchOptions={}, retries=3, retryDelay=5000) => {
return new Promise((resolve, reject) => {
const wrapper = n => {
fetch(url, fetchOptions)
.then(res => { resolve(res) })
.catch(async err => {
if(n > 0) {
// console.log(`retrying ${n}`)
await delay(retryDelay)
wrapper(--n)
} else {
reject(err)
}
})
}
wrapper(retries)
})
}
module.exports = retryFetch