UNPKG

one

Version:

One is a React framework for web, iOS, and Android apps.

1 lines • 3.4 kB
{"version":3,"file":"cleanUrl.js","names":[],"sources":["esm/utils/cleanUrl.js"],"sourcesContent":["import {\n CSS_PRELOAD_JS_POSTFIX,\n isNative,\n LOADER_JS_POSTFIX,\n LOADER_JS_POSTFIX_REGEX,\n PRELOAD_JS_POSTFIX\n} from \"../constants\";\nimport { getURL } from \"../getURL\";\nimport { removeSearch } from \"./removeSearch\";\nfunction encodeReservedFilenameChars(path) {\n return path.replaceAll(\"=\", \"=3d\").replace(\n /[<>:\"|?*]/g,\n (char) => `=${char.charCodeAt(0).toString(16).padStart(2, \"0\")}`\n );\n}\nfunction decodeReservedFilenameChars(path) {\n return path.replace(\n /=([0-9a-f]{2})/g,\n (_match, hexCode) => String.fromCharCode(Number.parseInt(hexCode, 16))\n );\n}\nfunction cleanUrl(path) {\n return encodeReservedFilenameChars(\n removeSearch(path).replace(/\\/$/, \"\")\n // remove trailing slash before encoding\n ).replaceAll(\"_\", \"__\").replaceAll(\"/\", \"_\");\n}\nconst isClient = typeof window !== \"undefined\";\nconst clientSideURL = isClient ? getURL() : \"\";\nfunction getPreloadPath(currentPath) {\n return `${clientSideURL}/assets/${cleanUrl(currentPath.slice(1))}${PRELOAD_JS_POSTFIX}`;\n}\nfunction getPreloadCSSPath(currentPath) {\n return `${clientSideURL}/assets/${cleanUrl(currentPath.slice(1))}${CSS_PRELOAD_JS_POSTFIX}`;\n}\nfunction getLoaderPath(currentPath, includeUrl = isNative, cacheBust) {\n const baseURL = includeUrl ? getURL() : \"\";\n const devPath = process.env.NODE_ENV === \"development\" ? \"/_one\" : \"\";\n const currentPathUrl = new URL(currentPath, \"http://example.com\");\n const cleanedUrl = cleanUrl(currentPathUrl.pathname.slice(1));\n const cacheBustSegment = cacheBust ? `_refetch_${cacheBust}_` : \"\";\n return `${baseURL}${devPath}/assets/${cleanedUrl}${cacheBustSegment}${LOADER_JS_POSTFIX}`;\n}\nfunction getPathFromLoaderPath(loaderPath) {\n return decodeReservedFilenameChars(\n loaderPath.replace(LOADER_JS_POSTFIX_REGEX, \"\").replace(/^(\\/_one)?\\/assets/, \"\").replace(/_refetch_\\d+_?/, \"\").replace(/__|_/g, (match) => match === \"__\" ? \"_\" : \"/\")\n );\n}\nexport {\n decodeReservedFilenameChars,\n encodeReservedFilenameChars,\n getLoaderPath,\n getPathFromLoaderPath,\n getPreloadCSSPath,\n getPreloadPath\n};\n//# sourceMappingURL=cleanUrl.js.map\n"],"mappings":";;;;;AASA,SAAS,4BAA4B,MAAM;CACzC,OAAO,KAAK,WAAW,KAAK,KAAK,CAAC,CAAC,QACjC,eACC,SAAS,IAAI,KAAK,WAAW,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,SAAS,GAAG,GAAG,GAC/D;AACF;AACA,SAAS,4BAA4B,MAAM;CACzC,OAAO,KAAK,QACV,oBACC,QAAQ,YAAY,OAAO,aAAa,OAAO,SAAS,SAAS,EAAE,CAAC,CACvE;AACF;AACA,SAAS,SAAS,MAAM;CACtB,OAAO,4BACL,aAAa,IAAI,CAAC,CAAC,QAAQ,OAAO,EAAE,CAEtC,CAAC,CAAC,WAAW,KAAK,IAAI,CAAC,CAAC,WAAW,KAAK,GAAG;AAC7C;AACA,MAAM,WAAW,OAAO,WAAW;AACnC,MAAM,gBAAgB,WAAW,OAAO,IAAI;AAC5C,SAAS,eAAe,aAAa;CACnC,OAAO,GAAG,cAAc,UAAU,SAAS,YAAY,MAAM,CAAC,CAAC,IAAI;AACrE;AACA,SAAS,kBAAkB,aAAa;CACtC,OAAO,GAAG,cAAc,UAAU,SAAS,YAAY,MAAM,CAAC,CAAC,IAAI;AACrE;AACA,SAAS,cAAc,aAAa,aAAa,UAAU,WAAW;CACpE,MAAM,UAAU,aAAa,OAAO,IAAI;CACxC,MAAM,UAAU,QAAQ,IAAI,aAAa,gBAAgB,UAAU;CACnE,MAAM,iBAAiB,IAAI,IAAI,aAAa,oBAAoB;CAChE,MAAM,aAAa,SAAS,eAAe,SAAS,MAAM,CAAC,CAAC;CAC5D,MAAM,mBAAmB,YAAY,YAAY,UAAU,KAAK;CAChE,OAAO,GAAG,UAAU,QAAQ,UAAU,aAAa,mBAAmB;AACxE;AACA,SAAS,sBAAsB,YAAY;CACzC,OAAO,4BACL,WAAW,QAAQ,yBAAyB,EAAE,CAAC,CAAC,QAAQ,sBAAsB,EAAE,CAAC,CAAC,QAAQ,kBAAkB,EAAE,CAAC,CAAC,QAAQ,UAAU,UAAU,UAAU,OAAO,MAAM,GAAG,CACxK;AACF"}