]> Untitled Git - lemmy-ui.git/blob - src/shared/utils/helpers/get-query-params.ts
break out browser and helper methods
[lemmy-ui.git] / src / shared / utils / helpers / get-query-params.ts
1 import { isBrowser } from "../browser/is-browser";
2
3 export function getQueryParams<T extends Record<string, any>>(processors: {
4   [K in keyof T]: (param: string) => T[K];
5 }): T {
6   if (isBrowser()) {
7     const searchParams = new URLSearchParams(window.location.search);
8
9     return Array.from(Object.entries(processors)).reduce(
10       (acc, [key, process]) => ({
11         ...acc,
12         [key]: process(searchParams.get(key)),
13       }),
14       {} as T
15     );
16   }
17
18   return {} as T;
19 }