17 lines
680 B
JavaScript
17 lines
680 B
JavaScript
'use strict';
|
|
|
|
const hostedGitInfo = require(`hosted-git-info`);
|
|
const parseRepositoryURL = require(`@hutson/parse-repository-url`);
|
|
|
|
module.exports = packageData => {
|
|
if (!packageData ||
|
|
!packageData.repository ||
|
|
(typeof packageData.repository !== 'string' && !packageData.repository.url)) {
|
|
throw new Error(`No valid "repository" data found in package metadata. Please see https://docs.npmjs.com/files/package.json#repository for proper syntax.`);
|
|
}
|
|
|
|
const repositoryURL = typeof packageData.repository === 'string' ? packageData.repository : packageData.repository.url;
|
|
|
|
return hostedGitInfo.fromUrl(repositoryURL) || parseRepositoryURL(repositoryURL);
|
|
};
|