Skip to content

Commit c7d5d18

Browse files
committed
fix: redirect old hash-based /packages#query= URLs to query string
1 parent 0160d0d commit c7d5d18

3 files changed

Lines changed: 24 additions & 2 deletions

File tree

src/compare-packages-redirect.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
function syncAndRedirect(): void {
1+
function redirectComparePackagesHash(): void {
22
const { pathname, hash, origin } = window.location;
33
if (pathname.replace(/\/$/, "") !== "/compare/packages") {
44
return;
@@ -19,4 +19,4 @@ function syncAndRedirect(): void {
1919
}
2020
}
2121

22-
syncAndRedirect();
22+
redirectComparePackagesHash();

src/main.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,3 +4,4 @@ import "./components/popularity-chart.ts";
44
import "./components/country-map.ts";
55
import "./components/swagger-ui.ts";
66
import "./compare-packages-redirect";
7+
import "./packages-redirect";

src/packages-redirect.ts

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
function redirectPackagesHash(): void {
2+
const { pathname, hash, origin } = window.location;
3+
if (pathname.replace(/\/$/, "") !== "/packages") {
4+
return;
5+
}
6+
7+
const params = new URLSearchParams(hash.replace(/^#/, ""));
8+
const query = params.get("query");
9+
if (query) {
10+
const newUrl = `${origin}/packages?query=${encodeURIComponent(query)}`;
11+
12+
const canonical = document.querySelector('link[rel="canonical"]');
13+
if (canonical) {
14+
canonical.setAttribute("href", newUrl);
15+
}
16+
17+
window.location.replace(newUrl);
18+
}
19+
}
20+
21+
redirectPackagesHash();

0 commit comments

Comments
 (0)