UNPKG

@liveblocks/react-ui

Version:

A set of React pre-built components for the Liveblocks products. Liveblocks is the all-in-one toolkit to build collaborative products like Figma, Notion, and more.

1 lines 1.69 kB
{"version":3,"file":"url.cjs","sources":["../../src/utils/url.ts"],"sourcesContent":["const PLACEHOLDER_BASE_URL = \"https://localhost:9999\";\nconst ABSOLUTE_URL_REGEX = /^[a-zA-Z][a-zA-Z\\d+\\-.]*?:/;\n\nexport function generateURL(\n url: string,\n params?: Record<string, string | number | undefined>,\n hash?: string\n) {\n const isAbsolute = ABSOLUTE_URL_REGEX.test(url);\n const urlObject = new URL(url, isAbsolute ? undefined : PLACEHOLDER_BASE_URL);\n\n if (params !== undefined) {\n for (const [param, value] of Object.entries(params)) {\n if (value) {\n urlObject.searchParams.set(param, String(value));\n }\n }\n }\n\n // Only add the new hash if the URL does not already have one\n if (!urlObject.hash && hash !== undefined) {\n urlObject.hash = `#${hash}`;\n }\n\n return isAbsolute\n ? urlObject.href\n : urlObject.href.replace(PLACEHOLDER_BASE_URL, \"\");\n}\n"],"names":[],"mappings":";;AAAA,MAAM,oBAAuB,GAAA,wBAAA,CAAA;AAC7B,MAAM,kBAAqB,GAAA,4BAAA,CAAA;AAEX,SAAA,WAAA,CACd,GACA,EAAA,MAAA,EACA,IACA,EAAA;AACA,EAAM,MAAA,UAAA,GAAa,kBAAmB,CAAA,IAAA,CAAK,GAAG,CAAA,CAAA;AAC9C,EAAA,MAAM,YAAY,IAAI,GAAA,CAAI,GAAK,EAAA,UAAA,GAAa,SAAY,oBAAoB,CAAA,CAAA;AAE5E,EAAA,IAAI,WAAW,KAAW,CAAA,EAAA;AACxB,IAAA,KAAA,MAAW,CAAC,KAAO,EAAA,KAAK,KAAK,MAAO,CAAA,OAAA,CAAQ,MAAM,CAAG,EAAA;AACnD,MAAA,IAAI,KAAO,EAAA;AACT,QAAA,SAAA,CAAU,YAAa,CAAA,GAAA,CAAI,KAAO,EAAA,MAAA,CAAO,KAAK,CAAC,CAAA,CAAA;AAAA,OACjD;AAAA,KACF;AAAA,GACF;AAGA,EAAA,IAAI,CAAC,SAAA,CAAU,IAAQ,IAAA,IAAA,KAAS,KAAW,CAAA,EAAA;AACzC,IAAA,SAAA,CAAU,OAAO,CAAI,CAAA,EAAA,IAAA,CAAA,CAAA,CAAA;AAAA,GACvB;AAEA,EAAA,OAAO,aACH,SAAU,CAAA,IAAA,GACV,UAAU,IAAK,CAAA,OAAA,CAAQ,sBAAsB,EAAE,CAAA,CAAA;AACrD;;;;"}