async-retry
Advanced tools
Comparing version 1.1.4 to 1.2.0
@@ -16,3 +16,3 @@ // Packages | ||
const onError = err => { | ||
const onError = (err, num) => { | ||
if (err.bail) { | ||
@@ -24,3 +24,3 @@ return bail(err) | ||
} else if (opts.onRetry) { | ||
opts.onRetry(err) | ||
opts.onRetry(err, num) | ||
} | ||
@@ -35,8 +35,11 @@ } | ||
} catch (err) { | ||
return onError(err) | ||
return onError(err, num) | ||
} | ||
Promise.resolve(val).then(resolve, onError) | ||
Promise.resolve(val) | ||
.then(resolve) | ||
.catch(err => { | ||
onError(err, num) | ||
}) | ||
}) | ||
}) | ||
} |
{ | ||
"name": "async-retry", | ||
"version": "1.1.4", | ||
"version": "1.2.0", | ||
"description": "Retrying made simple, easy and async", | ||
@@ -26,7 +26,7 @@ "main": "./lib/index.js", | ||
"devDependencies": { | ||
"ava": "0.23.0", | ||
"node-fetch": "1.7.3", | ||
"ava": "0.25.0", | ||
"node-fetch": "2.0.0", | ||
"then-sleep": "1.0.1", | ||
"xo": "0.18.2" | ||
"xo": "0.20.3" | ||
} | ||
} |
@@ -37,9 +37,12 @@ // Packages | ||
try { | ||
await retry(async (bail, num) => { | ||
if (num === 2) { | ||
bail(new Error('Wont retry')) | ||
} | ||
await retry( | ||
async (bail, num) => { | ||
if (num === 2) { | ||
bail(new Error('Wont retry')) | ||
} | ||
throw new Error('Test ' + num) | ||
}, {retries: 3}) | ||
throw new Error('Test ' + num) | ||
}, | ||
{retries: 3} | ||
) | ||
} catch (err) { | ||
@@ -53,7 +56,9 @@ t.deepEqual('Wont retry', err.message) | ||
try { | ||
await Promise.resolve(retry(async bail => { | ||
await sleep(200) | ||
await sleep(200) | ||
bail(new Error('woot')) | ||
})) | ||
await Promise.resolve( | ||
retry(async bail => { | ||
await sleep(200) | ||
await sleep(200) | ||
bail(new Error('woot')) | ||
}) | ||
) | ||
} catch (err) { | ||
@@ -68,9 +73,12 @@ _err = err | ||
try { | ||
await retry(async () => { | ||
retries++ | ||
await sleep(100) | ||
const err = Error('Wont retry') | ||
err.bail = true | ||
throw err | ||
}, {retries: 3}) | ||
await retry( | ||
async () => { | ||
retries++ | ||
await sleep(100) | ||
const err = Error('Wont retry') | ||
err.bail = true | ||
throw err | ||
}, | ||
{retries: 3} | ||
) | ||
} catch (err) { | ||
@@ -84,5 +92,8 @@ t.deepEqual('Wont retry', err.message) | ||
try { | ||
await retry((bail, num) => { | ||
throw new Error('Test ' + num) | ||
}, {retries: 2}) | ||
await retry( | ||
(bail, num) => { | ||
throw new Error('Test ' + num) | ||
}, | ||
{retries: 2} | ||
) | ||
} catch (err) { | ||
@@ -97,1 +108,23 @@ t.deepEqual('Test 3', err.message) | ||
}) | ||
test('with number of retries', async t => { | ||
let retries = 0 | ||
try { | ||
await retry( | ||
() => { | ||
return fetch('https://www.fakewikipedia.org') | ||
}, | ||
{ | ||
retries: 2, | ||
onRetry: (err, i) => { | ||
if (err) { | ||
console.log('Retry error : ', err) | ||
} | ||
retries = i | ||
} | ||
} | ||
) | ||
} catch (err) { | ||
t.deepEqual(retries, 2) | ||
} | ||
}) |
155847
9
163
3