dc-management-sdk-js
Version:
Amplience Dynamic Content Management SDK
24 lines • 1.98 kB
JavaScript
const defaultOptions = {
timeout: 60 * 1000,
delay: 3 * 1000,
};
const sleep = (timeout) => new Promise((resolve) => {
setTimeout(resolve, timeout);
});
export async function retry(method, overrideOptions = {}) {
const options = { ...defaultOptions, ...overrideOptions };
const startTime = new Date().valueOf();
while (startTime + options.timeout > new Date().valueOf()) {
try {
const result = await method();
return result;
// eslint-disable-next-line unused-imports/no-unused-vars
}
catch (_err) {
// ignore the error
}
await sleep(options.delay);
}
return Promise.reject(new Error('Retryer timed out'));
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUmV0cnllci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvdXRpbHMvUmV0cnllci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFLQSxNQUFNLGNBQWMsR0FBaUI7SUFDbkMsT0FBTyxFQUFFLEVBQUUsR0FBRyxJQUFJO0lBQ2xCLEtBQUssRUFBRSxDQUFDLEdBQUcsSUFBSTtDQUNoQixDQUFDO0FBRUYsTUFBTSxLQUFLLEdBQUcsQ0FBQyxPQUFlLEVBQUUsRUFBRSxDQUNoQyxJQUFJLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFO0lBQ3RCLFVBQVUsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDL0IsQ0FBQyxDQUFDLENBQUM7QUFFTCxNQUFNLENBQUMsS0FBSyxVQUFVLEtBQUssQ0FDekIsTUFBd0IsRUFDeEIsa0JBQXlDLEVBQUU7SUFFM0MsTUFBTSxPQUFPLEdBQWlCLEVBQUUsR0FBRyxjQUFjLEVBQUUsR0FBRyxlQUFlLEVBQUUsQ0FBQztJQUV4RSxNQUFNLFNBQVMsR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ3ZDLE9BQU8sU0FBUyxHQUFHLE9BQU8sQ0FBQyxPQUFPLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDO1FBQzFELElBQUksQ0FBQztZQUNILE1BQU0sTUFBTSxHQUFHLE1BQU0sTUFBTSxFQUFFLENBQUM7WUFDOUIsT0FBTyxNQUFNLENBQUM7WUFDZCx5REFBeUQ7UUFDM0QsQ0FBQztRQUFDLE9BQU8sSUFBSSxFQUFFLENBQUM7WUFDZCxtQkFBbUI7UUFDckIsQ0FBQztRQUVELE1BQU0sS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM3QixDQUFDO0lBQ0QsT0FBTyxPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksS0FBSyxDQUFDLG1CQUFtQixDQUFDLENBQUMsQ0FBQztBQUN4RCxDQUFDIn0=