UNPKG

@paroicms/server

Version:
24 lines 999 B
export function normalizeUrlForCache(logger, url) { try { const cleanedUrl = url.replace(/\/\/+/g, "/"); const isRelative = !URL.canParse(cleanedUrl); const parsedUrl = new URL(cleanedUrl, isRelative ? "http://foo.bar" : undefined); const params = new URLSearchParams(parsedUrl.search); const paramEntries = []; params.forEach((value, key) => { paramEntries.push([key, value]); }); paramEntries.sort(([keyA], [keyB]) => keyA.localeCompare(keyB)); const sortedParams = new URLSearchParams(); paramEntries.forEach(([key, value]) => { sortedParams.append(key, value); }); parsedUrl.search = sortedParams.toString(); return isRelative ? `${parsedUrl.pathname}${parsedUrl.search}` : parsedUrl.toString(); } catch (error) { logger.warn(`Failed to normalize URL '${url}' for cache`, error); return url; } } //# sourceMappingURL=url-helpers.js.map