All files / lib/utils hosted-git-info-from-manifest.js

100% Statements 5/5
100% Branches 11/11
100% Functions 1/1
100% Lines 5/5

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15      1x 1x 8x 8x           8x    
// 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
}