several fixes for repo + author parsing

This commit is contained in:
Philipp Dormann 2021-03-08 22:04:59 +01:00
parent 4b1326e826
commit 3cafa53318

View File

@ -69,14 +69,42 @@ function getDependencyLicenseInfo(all_dependencies, recursive) {
licensetext = fs.readFileSync(`${args.input}/node_modules/${p[0]}/LICENSE.txt`, { encoding: 'utf-8' });
}
const info = {
author: packageinfo.author,
author: "?",
repo: packageinfo.repository || packageinfo.repository?.url,
description: packageinfo.description,
description: packageinfo.description || "",
name: packageinfo.name,
license: packageinfo.license,
version: packageinfo.version,
licensetext
};
if (info.repo) {
if (typeof info.repo === "object") {
info.repo.url = info.repo.url.replace(/git\:\/\/github.com\//gi, "https://github.com");
info.repo.url = info.repo.url.replace(/git\+https:\/\/github.com\//gi, "https://github.com/");
}
if (typeof info.repo === "string") {
info.repo = {
url: info.repo
};
}
info.repo.url = info.repo.url.replace(/github:/gi, "https://github.com/");
if (info.repo.url.includes("github.com")) {
info.repo.url = info.repo.url.replace(/\.git/gi, "");
}
}
if (packageinfo.author) {
if (typeof packageinfo.author === "string") info.author = packageinfo.author;
if (packageinfo.author.name) {
info.author = packageinfo.author.name;
}
}
if (packageinfo.homepage && packageinfo.repository) {
if (typeof packageinfo.repository === "string") {
if (packageinfo.homepage.toLowerCase().includes(packageinfo.repository.toLowerCase())) {
info.repo = packageinfo.homepage;
}
}
}
all.push(info);
if (recursive == true) {
all.push(...getDependencyLicenseInfo(packageinfo.dependencies, true));