Skip to content

Commit 0ec7496

Browse files
committed
refactor: Implement preserveQueryInUrl() by calling the private mergeQueryParams() function
This eliminates duplicated logic.
1 parent 0f03a72 commit 0ec7496

File tree

1 file changed

+1
-28
lines changed

1 file changed

+1
-28
lines changed

src/lib/core/preserveQuery.ts

Lines changed: 1 addition & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -8,35 +8,8 @@ import { location } from "./Location.js";
88
* @returns The URL with preserved query parameters added.
99
*/
1010
export function preserveQueryInUrl(url: string, preserveQuery: PreserveQuery): string {
11-
if (!preserveQuery || !location.url.searchParams.size) {
12-
return url;
13-
}
14-
1511
const urlObj = new URL(url, location.url.origin);
16-
const existingParams = urlObj.searchParams;
17-
18-
const transferValue = (key: string) => {
19-
const values = location.url.searchParams.getAll(key);
20-
if (values.length) {
21-
values.forEach((v) => existingParams.append(key, v));
22-
}
23-
};
24-
25-
if (preserveQuery === true) {
26-
// Preserve all current query parameters
27-
for (let key of location.url.searchParams.keys()) {
28-
transferValue(key);
29-
}
30-
} else if (typeof preserveQuery === 'string') {
31-
// Preserve a specific query parameter
32-
transferValue(preserveQuery);
33-
} else if (Array.isArray(preserveQuery)) {
34-
// Preserve specific query parameters
35-
for (let key of preserveQuery) {
36-
transferValue(key);
37-
}
38-
}
39-
12+
mergeQueryParams(urlObj.searchParams, preserveQuery);
4013
return urlObj.toString();
4114
}
4215

0 commit comments

Comments
 (0)