From fecb114104a69ef4f61183bfe4e5163898e40eb7 Mon Sep 17 00:00:00 2001 From: fkrueger Date: Wed, 27 Jun 2018 09:27:56 +0200 Subject: [PATCH 1/2] support for scoped registry urls see https://docs.npmjs.com/misc/scope#associating-a-scope-with-a-registry using node module rc to get the config (global and project specific) and use the registry url of the scope if existing, fallback to the official registry.npmjs.org --- lib/getPackageDetails.js | 9 ++++++++- package.json | 3 ++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/lib/getPackageDetails.js b/lib/getPackageDetails.js index d548dfc..fc42383 100644 --- a/lib/getPackageDetails.js +++ b/lib/getPackageDetails.js @@ -11,7 +11,9 @@ const colors = require('colors/safe'); const readline = require('readline'); const packageDetailsCache = {}; -const registryUrl = `https://registry.npmjs.org/`; +const npmConfig = require('rc')('npm', { + registry: `https://registry.npmjs.org/` +}); /** * @param {Response} r @@ -70,6 +72,11 @@ module.exports = function getPackageDetails( return Promise.resolve(null); } const key = `${name}@${versionLoose}`; + const scope = (/(@[^\/]+)\/.*/.test(name) && /(@[^\/]+)\/.*/.exec(name)[1]) || ``; + var registryUrl = (scope && npmConfig[`${scope}:registry`]) || npmConfig[`registry`]; + if(registryUrl.charAt(registryUrl.length - 1) !== `/`) { + registryUrl += `/`; + } const infoUrl = `${registryUrl}${name.replace(`/`, `%2f`)}`; if (!packageDetailsCache[key]) { readline.cursorTo(process.stdout, 0); diff --git a/package.json b/package.json index 509fb4a..ae862c7 100644 --- a/package.json +++ b/package.json @@ -41,6 +41,7 @@ "promise-queue": "^2.2.3", "semver": "^5.4.1", "spdx-correct": "^2.0.4", - "spdx-satisfies": "^0.1.3" + "spdx-satisfies": "^0.1.3", + "rc": "^1.2.8" } } From daa4c658f522b4dd52e1b5ab11a4000b89f86ea5 Mon Sep 17 00:00:00 2001 From: fkrueger Date: Fri, 29 Jun 2018 09:45:29 +0200 Subject: [PATCH 2/2] fix eslint, change scope parsing of module name --- lib/getPackageDetails.js | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/lib/getPackageDetails.js b/lib/getPackageDetails.js index fc42383..7055f56 100644 --- a/lib/getPackageDetails.js +++ b/lib/getPackageDetails.js @@ -12,7 +12,7 @@ const readline = require('readline'); const packageDetailsCache = {}; const npmConfig = require('rc')('npm', { - registry: `https://registry.npmjs.org/` + registry: `https://registry.npmjs.org/` }); /** @@ -72,10 +72,10 @@ module.exports = function getPackageDetails( return Promise.resolve(null); } const key = `${name}@${versionLoose}`; - const scope = (/(@[^\/]+)\/.*/.test(name) && /(@[^\/]+)\/.*/.exec(name)[1]) || ``; - var registryUrl = (scope && npmConfig[`${scope}:registry`]) || npmConfig[`registry`]; - if(registryUrl.charAt(registryUrl.length - 1) !== `/`) { - registryUrl += `/`; + const scope = name[0] === '@' ? name.slice(0, name.indexOf('/')) : undefined; + let registryUrl = (scope && npmConfig[`${scope}:registry`]) || npmConfig.registry; + if (registryUrl.charAt(registryUrl.length - 1) !== `/`) { + registryUrl += `/`; } const infoUrl = `${registryUrl}${name.replace(`/`, `%2f`)}`; if (!packageDetailsCache[key]) {