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