is-retry-allowed
Advanced tools
+5
-29
| 'use strict'; | ||
| var WHITELIST = [ | ||
| 'ETIMEDOUT', | ||
| 'ECONNRESET', | ||
| 'EADDRINUSE', | ||
| 'ESOCKETTIMEDOUT', | ||
| 'ECONNREFUSED', | ||
| 'EPIPE', | ||
| 'EHOSTUNREACH', | ||
| 'EAI_AGAIN' | ||
| ]; | ||
| var BLACKLIST = [ | ||
| const denyList = new Set([ | ||
| 'ENOTFOUND', | ||
| 'ENETUNREACH', | ||
| // SSL errors from https://github.com/nodejs/node/blob/ed3d8b13ee9a705d89f9e0397d9e96519e7e47ac/src/node_crypto.cc#L1950 | ||
| // SSL errors from https://github.com/nodejs/node/blob/e585caa2bebbd238c763af588a40879b61cf240f/src/node_crypto.cc#L2563-L2589 | ||
| 'UNABLE_TO_GET_ISSUER_CERT', | ||
@@ -46,18 +35,5 @@ 'UNABLE_TO_GET_CRL', | ||
| 'CERT_REJECTED' | ||
| ]; | ||
| ]); | ||
| module.exports = function (err) { | ||
| if (!err || !err.code) { | ||
| return true; | ||
| } | ||
| if (WHITELIST.indexOf(err.code) !== -1) { | ||
| return true; | ||
| } | ||
| if (BLACKLIST.indexOf(err.code) !== -1) { | ||
| return false; | ||
| } | ||
| return true; | ||
| }; | ||
| // TODO: Use `error?.code` when targeting Node.js 14 | ||
| module.exports = error => !denyList.has(error && error.code); |
+34
-27
| { | ||
| "name": "is-retry-allowed", | ||
| "version": "1.2.0", | ||
| "description": "Is retry allowed for Error?", | ||
| "license": "MIT", | ||
| "repository": "floatdrop/is-retry-allowed", | ||
| "author": { | ||
| "name": "Vsevolod Strukchinsky", | ||
| "email": "floatdrop@gmail.com", | ||
| "url": "github.com/floatdrop" | ||
| }, | ||
| "engines": { | ||
| "node": ">=0.10.0" | ||
| }, | ||
| "scripts": { | ||
| "test": "xo && ava" | ||
| }, | ||
| "files": [ | ||
| "index.js" | ||
| ], | ||
| "keywords": [ | ||
| "" | ||
| ], | ||
| "dependencies": {}, | ||
| "devDependencies": { | ||
| "ava": "^0.8.0", | ||
| "xo": "^0.12.1" | ||
| } | ||
| "name": "is-retry-allowed", | ||
| "version": "2.0.0", | ||
| "description": "Check whether a request can be retried based on the `error.code`", | ||
| "license": "MIT", | ||
| "repository": "sindresorhus/is-retry-allowed", | ||
| "funding": "https://github.com/sponsors/sindresorhus", | ||
| "author": { | ||
| "name": "Sindre Sorhus", | ||
| "email": "sindresorhus@gmail.com", | ||
| "url": "sindresorhus.com" | ||
| }, | ||
| "engines": { | ||
| "node": ">=10" | ||
| }, | ||
| "scripts": { | ||
| "test": "xo && ava" | ||
| }, | ||
| "files": [ | ||
| "index.js" | ||
| ], | ||
| "keywords": [ | ||
| "retry", | ||
| "retries", | ||
| "allowed", | ||
| "check", | ||
| "http", | ||
| "https", | ||
| "request", | ||
| "fetch" | ||
| ], | ||
| "devDependencies": { | ||
| "ava": "^2.3.0", | ||
| "xo": "^0.36.1" | ||
| } | ||
| } |
+14
-10
@@ -1,6 +0,5 @@ | ||
| # is-retry-allowed [](https://travis-ci.org/floatdrop/is-retry-allowed) | ||
| # is-retry-allowed | ||
| Is retry allowed for Error? | ||
| > Check whether a request can be retried based on the `error.code` | ||
| ## Install | ||
@@ -12,3 +11,2 @@ | ||
| ## Usage | ||
@@ -29,3 +27,2 @@ | ||
| ## API | ||
@@ -37,9 +34,16 @@ | ||
| Type: `object` | ||
| Type: `Error | object` | ||
| Object with `code` property, which will be used to determine retry. | ||
| The `.code` property, if it exists, will be used to determine whether retry is allowed. | ||
| --- | ||
| ## License | ||
| MIT © [Vsevolod Strukchinsky](http://github.com/floatdrop) | ||
| <div align="center"> | ||
| <b> | ||
| <a href="https://tidelift.com/subscription/pkg/npm-is-retry-allowed?utm_source=npm-is-retry-allowed&utm_medium=referral&utm_campaign=readme">Get professional support for this package with a Tidelift subscription</a> | ||
| </b> | ||
| <br> | ||
| <sub> | ||
| Tidelift helps make open source sustainable for maintainers while giving companies<br>assurances about security, maintenance, and licensing for their dependencies. | ||
| </sub> | ||
| </div> |
Sorry, the diff of this file is not supported yet
No repository
Supply chain riskPackage does not have a linked source code repository. Without this field, a package will have no reference to the location of the source code use to generate the package.
Found 1 instance in 1 package
New author
Supply chain riskA new npm collaborator published a version of the package for the first time. New collaborators are usually benign additions to a project, but do indicate a change to the security surface area of a package.
Found 1 instance in 1 package
No repository
Supply chain riskPackage does not have a linked source code repository. Without this field, a package will have no reference to the location of the source code use to generate the package.
Found 1 instance in 1 package
3853
7.06%47
9.3%0
-100%35
-36.36%