From 3507515c2f760d2da12356607bc749014cb818ce Mon Sep 17 00:00:00 2001 From: PierreDemailly Date: Sun, 22 Mar 2026 20:49:41 +0100 Subject: [PATCH] fix(scanner): prioritize repository over homepage in getLinks --- .changeset/wacky-lizards-attack.md | 5 +++ workspaces/scanner/src/utils/getLinks.ts | 8 ++--- .../scanner/test/utils/getLinks.spec.ts | 36 ++++++++++++++++++- 3 files changed, 44 insertions(+), 5 deletions(-) create mode 100644 .changeset/wacky-lizards-attack.md diff --git a/.changeset/wacky-lizards-attack.md b/.changeset/wacky-lizards-attack.md new file mode 100644 index 00000000..b05662e4 --- /dev/null +++ b/.changeset/wacky-lizards-attack.md @@ -0,0 +1,5 @@ +--- +"@nodesecure/scanner": patch +--- + +Prioritize repository over homepage in package.json to generate repository link diff --git a/workspaces/scanner/src/utils/getLinks.ts b/workspaces/scanner/src/utils/getLinks.ts index 9ba95c56..205355e4 100644 --- a/workspaces/scanner/src/utils/getLinks.ts +++ b/workspaces/scanner/src/utils/getLinks.ts @@ -44,8 +44,8 @@ export function getLinks( npm: `https://www.npmjs.com/package/${packumentVersion.name}/v/${packumentVersion.version}`, homepage, repository: - getVCSRepositoryURL(homepage) ?? - getVCSRepositoryURL(repositoryUrl) + getVCSRepositoryURL(repositoryUrl) ?? + getVCSRepositoryURL(homepage) }; } @@ -61,7 +61,7 @@ export function getManifestLinks( npm: null, homepage, repository: - getVCSRepositoryURL(homepage) ?? - getVCSRepositoryURL(repositoryUrl) + getVCSRepositoryURL(repositoryUrl) ?? + getVCSRepositoryURL(homepage) }; } diff --git a/workspaces/scanner/test/utils/getLinks.spec.ts b/workspaces/scanner/test/utils/getLinks.spec.ts index 79e9ed3d..d957c7cf 100644 --- a/workspaces/scanner/test/utils/getLinks.spec.ts +++ b/workspaces/scanner/test/utils/getLinks.spec.ts @@ -44,12 +44,29 @@ describe("utils.getLinks", () => { type: "git", url: "github.com/foo/bar" } - } as any), { + } as PackumentVersion), { npm: "https://www.npmjs.com/package/foo/v/1.0.0", homepage: "https://github.com/foo/bar", repository: "https://github.com/foo/bar" }); }); + + it("repository url should prioritize repository over homepage", () => { + assert.deepStrictEqual(utils.getLinks({ + name: "@nodesecure/utils", + version: "2.3.0", + homepage: "https://github.com/NodeSecure/tree/master/workspaces/utils#readme", + repository: { + type: "git", + url: "https://github.com/NodeSecure/scanner", + directory: "workspaces/utils" + } + } as PackumentVersion), { + npm: "https://www.npmjs.com/package/@nodesecure/utils/v/2.3.0", + homepage: "https://github.com/NodeSecure/tree/master/workspaces/utils#readme", + repository: "https://github.com/NodeSecure/scanner" + }); + }); }); describe("utils.getManifestLinks", () => { @@ -94,4 +111,21 @@ describe("utils.getManifestLinks", () => { repository: "https://github.com/foo/bar" }); }); + + it("repository url should prioritize repository over homepage", () => { + assert.deepStrictEqual(utils.getManifestLinks({ + name: "@nodesecure/utils", + version: "2.3.0", + homepage: "https://github.com/NodeSecure/tree/master/workspaces/utils#readme", + repository: { + type: "git", + url: "https://github.com/NodeSecure/scanner", + directory: "workspaces/utils" + } + }), { + npm: null, + homepage: "https://github.com/NodeSecure/tree/master/workspaces/utils#readme", + repository: "https://github.com/NodeSecure/scanner" + }); + }); });