Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/npm/cli.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'lib/utils/hosted-git-info-from-manifest.js')
-rw-r--r--lib/utils/hosted-git-info-from-manifest.js14
1 files changed, 14 insertions, 0 deletions
diff --git a/lib/utils/hosted-git-info-from-manifest.js b/lib/utils/hosted-git-info-from-manifest.js
new file mode 100644
index 000000000..ecb7555b1
--- /dev/null
+++ b/lib/utils/hosted-git-info-from-manifest.js
@@ -0,0 +1,14 @@
+// given a manifest, try to get the hosted git info from it based on
+// repository (if a string) or repository.url (if an object)
+// returns null if it's not a valid repo, or not a known hosted repo
+const hostedGitInfo = require('hosted-git-info')
+module.exports = mani => {
+ const r = mani.repository
+ const rurl = !r ? null
+ : typeof r === 'string' ? r
+ : typeof r === 'object' && typeof r.url === 'string' ? r.url
+ : null
+
+ // hgi returns undefined sometimes, but let's always return null here
+ return rurl && hostedGitInfo.fromUrl(rurl.replace(/^git\+/, '')) || null
+}