UNPKG

k8s-features

Version:

A Cucumber-js base library for Kubernetes Gherkin tests, with base world class, basic steps, reusable utility functions and k8s client

34 lines (30 loc) 660 B
const { sleep } = require('./sleep.cjs'); /** * @template T * @param {T} fn * @returns {T} */ function retry(fn) { return async function () { try { return await fn(...arguments); } catch (err) { if (typeof err.statusCode == 'number' && err.statusCode >= 500) { await sleep(300); try { return await fn(...arguments); } catch (err2) { if (typeof err2.statusCode == 'number' && err2.statusCode >= 500) { await sleep(1000); return await fn(...arguments); } throw err2; } } throw err; } } } module.exports = { retry, };