diff options
Diffstat (limited to 'deps/npm/node_modules/npm-registry-fetch/errors.js')
-rw-r--r-- | deps/npm/node_modules/npm-registry-fetch/errors.js | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/deps/npm/node_modules/npm-registry-fetch/errors.js b/deps/npm/node_modules/npm-registry-fetch/errors.js index 217f46f977..ba78735fce 100644 --- a/deps/npm/node_modules/npm-registry-fetch/errors.js +++ b/deps/npm/node_modules/npm-registry-fetch/errors.js @@ -1,5 +1,25 @@ 'use strict' +const url = require('url') + +function packageName (href) { + try { + let basePath = url.parse(href).pathname.substr(1) + if (!basePath.match(/^-/)) { + basePath = basePath.split('/') + var index = basePath.indexOf('_rewrite') + if (index === -1) { + index = basePath.length - 1 + } else { + index++ + } + return decodeURIComponent(basePath[index]) + } + } catch (_) { + // this is ok + } +} + class HttpErrorBase extends Error { constructor (method, res, body, spec) { super() @@ -9,6 +29,7 @@ class HttpErrorBase extends Error { this.method = method this.uri = res.url this.body = body + this.pkgid = spec ? spec.toString() : packageName(res.url) } } module.exports.HttpErrorBase = HttpErrorBase |