UNPKG

@nodesecure/scanner

Version:

A package API to run a static analysis of your module's dependencies.

44 lines 1.47 kB
// CONSTANTS const kVCSHosts = new Set(["github.com", "gitlab.com"]); function getVCSRepositoryURL(link) { if (!link) { return null; } try { const url = new URL(link); const { hostname, pathname } = url; if (kVCSHosts.has(hostname) === false) { return null; } const [owner, repo] = pathname.split("/").filter(Boolean).map((curr) => curr.replace(".git", "")); return `https://${hostname}/${owner}/${repo}`; } catch { return null; } } export function getLinks(packumentVersion) { const homepage = packumentVersion.homepage || null; const repositoryUrl = typeof packumentVersion.repository === "string" ? packumentVersion.repository : packumentVersion.repository?.url ?? null; return { npm: `https://www.npmjs.com/package/${packumentVersion.name}/v/${packumentVersion.version}`, homepage, repository: getVCSRepositoryURL(homepage) ?? getVCSRepositoryURL(repositoryUrl) }; } export function getManifestLinks(manifest) { const homepage = manifest.homepage ?? null; const repositoryUrl = typeof manifest.repository === "string" ? manifest.repository : manifest.repository?.url ?? null; return { npm: null, homepage, repository: getVCSRepositoryURL(homepage) ?? getVCSRepositoryURL(repositoryUrl) }; } //# sourceMappingURL=getLinks.js.map