braid-http 1.3.74 → 1.3.75

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -435,21 +435,27 @@ async function braid_fetch (url, params = {}) {
435
435
  }
436
436
  }
437
437
 
438
- if (params.retry) {
439
- let give_up = res.status >= 400 && res.status < 600
440
- switch (res.status) {
441
- case 408: // Request Timeout
442
- case 425: // Too Early
443
- case 429: // Too Many Requests
444
-
445
- case 502: // Bad Gateway
446
- case 503: // Service Unavailable
447
- case 504: // Gateway Timeout
438
+ if (params.retry && !res.ok) {
439
+ var give_up
440
+ if (params.retry.retryRes) {
441
+ give_up = !params.retry.retryRes(res)
442
+ } else {
443
+ give_up = res.status >= 400 && res.status < 600
444
+
445
+ switch (res.status) {
446
+ case 408: // Request Timeout
447
+ case 425: // Too Early
448
+ case 429: // Too Many Requests
449
+
450
+ case 502: // Bad Gateway
451
+ case 503: // Service Unavailable
452
+ case 504: // Gateway Timeout
453
+ give_up = false
454
+ }
455
+ if (res.statusText.match(/Missing Parents/i) ||
456
+ res.headers.get('retry-after') !== null)
448
457
  give_up = false
449
458
  }
450
- if (res.statusText.match(/Missing Parents/i) ||
451
- res.headers.get('retry-after') !== null)
452
- give_up = false
453
459
  if (give_up) {
454
460
  if (subscription_cb) subscription_error?.(new Error(`giving up because of http status: ${res.status}${(res.status === 401 || res.status === 403) ? ` (access denied)` : ''}`))
455
461
  } else if (!res.ok) throw new Error(`status not ok: ${res.status}`)
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "braid-http",
3
- "version": "1.3.74",
3
+ "version": "1.3.75",
4
4
  "description": "An implementation of Braid-HTTP for Node.js and Browsers",
5
5
  "scripts": {
6
6
  "test": "node test/server.js"