From 0ec7496d12b41360206b601eb645f10501c15378 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ramirez=20Vargas=2C=20Jos=C3=A9=20Pablo?= Date: Sat, 27 Sep 2025 23:30:55 -0600 Subject: [PATCH] refactor: Implement `preserveQueryInUrl()` by calling the private `mergeQueryParams()` function This eliminates duplicated logic. --- src/lib/core/preserveQuery.ts | 29 +---------------------------- 1 file changed, 1 insertion(+), 28 deletions(-) diff --git a/src/lib/core/preserveQuery.ts b/src/lib/core/preserveQuery.ts index 1305591..9bd2c9a 100644 --- a/src/lib/core/preserveQuery.ts +++ b/src/lib/core/preserveQuery.ts @@ -8,35 +8,8 @@ import { location } from "./Location.js"; * @returns The URL with preserved query parameters added. */ export function preserveQueryInUrl(url: string, preserveQuery: PreserveQuery): string { - if (!preserveQuery || !location.url.searchParams.size) { - return url; - } - const urlObj = new URL(url, location.url.origin); - const existingParams = urlObj.searchParams; - - const transferValue = (key: string) => { - const values = location.url.searchParams.getAll(key); - if (values.length) { - values.forEach((v) => existingParams.append(key, v)); - } - }; - - if (preserveQuery === true) { - // Preserve all current query parameters - for (let key of location.url.searchParams.keys()) { - transferValue(key); - } - } else if (typeof preserveQuery === 'string') { - // Preserve a specific query parameter - transferValue(preserveQuery); - } else if (Array.isArray(preserveQuery)) { - // Preserve specific query parameters - for (let key of preserveQuery) { - transferValue(key); - } - } - + mergeQueryParams(urlObj.searchParams, preserveQuery); return urlObj.toString(); }