Spaces:
Running
Running
Download src/lib/utils/getHref.ts from huggingchat/chat-ui: direct link, hf CLI and curl.
- Browser
- Download file 924 Bytes
-
https://huggingface.co/spaces/huggingchat/chat-ui/resolve/refs%2Fpr%2F511/src/lib/utils/getHref.ts
- Command line
-
hf download hf://spaces/huggingchat/chat-ui@refs/pr/511/src/lib/utils/getHref.ts
-
curl -L -o getHref.ts https://huggingface.co/spaces/huggingchat/chat-ui/resolve/refs%2Fpr%2F511/src/lib/utils/getHref.ts
924 Bytes
| export function getHref( | |
| url: URL | string, | |
| modifications: { | |
| newKeys?: Record<string, string | undefined | null>; | |
| existingKeys?: { behaviour: "delete_except" | "delete"; keys: string[] }; | |
| } | |
| ) { | |
| const newUrl = new URL(url); | |
| const { newKeys, existingKeys } = modifications; | |
| // exsiting keys logic | |
| if (existingKeys) { | |
| const { behaviour, keys } = existingKeys; | |
| if (behaviour === "delete") { | |
| for (const key of keys) { | |
| newUrl.searchParams.delete(key); | |
| } | |
| } else { | |
| // delete_except | |
| const keysToPreserve = keys; | |
| for (const key of [...newUrl.searchParams.keys()]) { | |
| if (!keysToPreserve.includes(key)) { | |
| newUrl.searchParams.delete(key); | |
| } | |
| } | |
| } | |
| } | |
| // new keys logic | |
| if (newKeys) { | |
| for (const [key, val] of Object.entries(newKeys)) { | |
| if (val) { | |
| newUrl.searchParams.set(key, val); | |
| } else { | |
| newUrl.searchParams.delete(key); | |
| } | |
| } | |
| } | |
| return newUrl.toString(); | |
| } | |