File tree Expand file tree Collapse file tree 1 file changed +1
-28
lines changed Expand file tree Collapse file tree 1 file changed +1
-28
lines changed Original file line number Diff line number Diff line change @@ -8,35 +8,8 @@ import { location } from "./Location.js";
88 * @returns The URL with preserved query parameters added.
99 */
1010export 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
You can’t perform that action at this time.
0 commit comments