From d7b57b41ff39d7d0c60c60b66e47cdacf0db9753 Mon Sep 17 00:00:00 2001 From: Fuwn Date: Sun, 24 Dec 2023 03:03:55 -0800 Subject: refactor(utility): move utilities to module --- src/lib/Utility/html.ts | 1 + src/lib/Utility/parameters.ts | 32 ++++++++++++++++++++++++++++++++ 2 files changed, 33 insertions(+) create mode 100644 src/lib/Utility/html.ts create mode 100644 src/lib/Utility/parameters.ts (limited to 'src/lib/Utility') diff --git a/src/lib/Utility/html.ts b/src/lib/Utility/html.ts new file mode 100644 index 00000000..6d2136aa --- /dev/null +++ b/src/lib/Utility/html.ts @@ -0,0 +1 @@ +export const nbsp = (str: string) => str.replace(/ /g, ' '); diff --git a/src/lib/Utility/parameters.ts b/src/lib/Utility/parameters.ts new file mode 100644 index 00000000..cf24eb8c --- /dev/null +++ b/src/lib/Utility/parameters.ts @@ -0,0 +1,32 @@ +import { browser } from '$app/environment'; +import { page } from '$app/stores'; +import { get } from 'svelte/store'; + +export const clearAllParameters = (saved: string[] = []) => { + if (browser) { + const parameters = new URLSearchParams(); + + if (get(page).url.searchParams.has('tool')) + parameters.set('tool', get(page).url.searchParams.get('tool') || ''); + + saved.forEach((key) => { + if (get(page).url.searchParams.has(key)) { + parameters.set(key, get(page).url.searchParams.get(key) || ''); + } + }); + history.replaceState(null, '', `${get(page).url.pathname}?${parameters}`); + } +}; + +export const parseOrDefault = ( + urlParameters: URLSearchParams | null, + parameter: string, + fallback: T +): T => + typeof fallback === 'number' + ? ((browser && urlParameters?.size !== 0 + ? parseInt(urlParameters?.get(parameter) || '', 10) || fallback + : fallback) as T) + : ((browser && urlParameters?.size !== 0 + ? urlParameters?.get(parameter) || fallback + : fallback) as T); -- cgit v1.2.3