Buckets:
| // src/client/utils.ts | |
| import { fetchRP, DetailedError } from "./fetch-result-please.js"; | |
| var mergePath = (base, path) => { | |
| base = base.replace(/\/+$/, ""); | |
| base = base + "/"; | |
| path = path.replace(/^\/+/, ""); | |
| return base + path; | |
| }; | |
| var replaceUrlParam = (urlString, params) => { | |
| for (const [k, v] of Object.entries(params)) { | |
| const reg = new RegExp("/:" + k + "(?:{[^/]+})?\\??"); | |
| urlString = urlString.replace(reg, v ? `/${v}` : ""); | |
| } | |
| return urlString; | |
| }; | |
| var buildSearchParams = (query) => { | |
| const searchParams = new URLSearchParams(); | |
| for (const [k, v] of Object.entries(query)) { | |
| if (v === void 0) { | |
| continue; | |
| } | |
| if (Array.isArray(v)) { | |
| for (const v2 of v) { | |
| searchParams.append(k, v2); | |
| } | |
| } else { | |
| searchParams.set(k, v); | |
| } | |
| } | |
| return searchParams; | |
| }; | |
| var replaceUrlProtocol = (urlString, protocol) => { | |
| switch (protocol) { | |
| case "ws": | |
| return urlString.replace(/^http/, "ws"); | |
| case "http": | |
| return urlString.replace(/^ws/, "http"); | |
| } | |
| }; | |
| var removeIndexString = (urlString) => { | |
| if (/^https?:\/\/[^\/]+?\/index(?=\?|$)/.test(urlString)) { | |
| return urlString.replace(/\/index(?=\?|$)/, "/"); | |
| } | |
| return urlString.replace(/\/index(?=\?|$)/, ""); | |
| }; | |
| function isObject(item) { | |
| return typeof item === "object" && item !== null && !Array.isArray(item); | |
| } | |
| function deepMerge(target, source) { | |
| if (!isObject(target) && !isObject(source)) { | |
| return source; | |
| } | |
| const merged = { ...target }; | |
| for (const key in source) { | |
| const value = source[key]; | |
| if (isObject(merged[key]) && isObject(value)) { | |
| merged[key] = deepMerge(merged[key], value); | |
| } else { | |
| merged[key] = value; | |
| } | |
| } | |
| return merged; | |
| } | |
| async function parseResponse(fetchRes) { | |
| return fetchRP(fetchRes); | |
| } | |
| export { | |
| DetailedError, | |
| buildSearchParams, | |
| deepMerge, | |
| mergePath, | |
| parseResponse, | |
| removeIndexString, | |
| replaceUrlParam, | |
| replaceUrlProtocol | |
| }; | |
Xet Storage Details
- Size:
- 1.96 kB
- Xet hash:
- 2c20f8faaea8bc03dd2f8dcff8849415c8acc9e828c8db940e3f36fcf5e72a76
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.