Skip to content

Commit 447fa9a

Browse files
authored
fix: do not add query params on top of the URL with query params (#76)
1 parent a44b647 commit 447fa9a

File tree

1 file changed

+7
-2
lines changed

1 file changed

+7
-2
lines changed

src/router.ts

+7-2
Original file line numberDiff line numberDiff line change
@@ -84,11 +84,13 @@ v2Router.delete("/:name+/manifests/:reference", async (req, env: Env) => {
8484
}
8585
}
8686

87+
const url = new URL(req.url);
8788
if (tags.truncated) {
89+
url.searchParams.set("last", tags.truncated ? tags.cursor : "");
8890
return new Response(JSON.stringify(ManifestTagsListTooBigError), {
8991
status: 400,
9092
headers: {
91-
"Link": `${req.url}/?last=${tags.truncated ? tags.cursor : ""}; rel=next`,
93+
"Link": `${url.toString()}; rel=next`,
9294
"Content-Type": "application/json",
9395
},
9496
});
@@ -533,6 +535,9 @@ v2Router.get("/:name+/tags/list", async (req, env: Env) => {
533535
});
534536

535537
const keys = tags.objects.map((object) => object.key.split("/").pop()!);
538+
const url = new URL(req.url);
539+
url.searchParams.set("n", `${n}`);
540+
url.searchParams.set("last", keys.length ? keys[keys.length - 1] : "");
536541
return new Response(
537542
JSON.stringify({
538543
name,
@@ -542,7 +547,7 @@ v2Router.get("/:name+/tags/list", async (req, env: Env) => {
542547
status: 200,
543548
headers: {
544549
"Content-Type": "application/json",
545-
"Link": `${req.url}?n=${n}&last=${keys.length ? keys[keys.length - 1] : ""}; rel=next`,
550+
"Link": `${url.toString()}; rel=next`,
546551
},
547552
},
548553
);

0 commit comments

Comments
 (0)