1
0
mirror of https://github.com/laurent22/joplin.git synced 2024-12-24 10:27:10 +02:00
joplin/packages/utils/net.ts

30 lines
540 B
TypeScript
Raw Normal View History

2023-03-21 19:29:22 +02:00
/* eslint-disable import/prefer-default-export */
import { msleep } from './time';
2023-04-04 12:04:42 +02:00
import fetch from 'node-fetch';
2023-03-21 19:29:22 +02:00
export const fetchWithRetry = async (url: string, opts: any = null) => {
if (!opts) opts = {};
let retry = opts && opts.retry || 3;
while (retry > 0) {
try {
return fetch(url, opts);
} catch (e) {
if (opts && opts.callback) {
opts.callback(retry);
}
retry = retry - 1;
if (retry === 0) {
throw e;
}
if (opts && opts.pause) {
await msleep(opts.pause);
2023-03-21 19:29:22 +02:00
}
}
}
return null;
};