@open-condo/miniapp-utils
Version:
A set of helper functions / components / hooks used to build new condo apps fast
45 lines • 1.5 kB
JavaScript
// src/helpers/posthog.ts
var POSTHOG_CLOUD_HOST_BASE = "i.posthog.com";
var POSTHOG_CLOUD_HOST_MATCHER = new RegExp(`^(\\w+)\\.${POSTHOG_CLOUD_HOST_BASE.replaceAll(".", "\\.")}$`);
function getPosthogEndpoint(posthogDomain, requestedPath) {
const posthogURL = new URL(posthogDomain);
const cloudMatch = posthogURL.host.match(POSTHOG_CLOUD_HOST_MATCHER);
if (cloudMatch && cloudMatch.length > 1) {
const region = cloudMatch[1];
if (requestedPath.length && requestedPath[0] === "static") {
posthogURL.host = `${region}-assets.${POSTHOG_CLOUD_HOST_BASE}`;
posthogURL.pathname = requestedPath.slice(1).join("/");
return posthogURL.toString();
}
}
posthogURL.pathname = requestedPath.join("/");
return posthogURL.toString();
}
function generateRewrites(postHogDomain, routeEndpoint) {
const url = new URL(postHogDomain);
const match = url.host.match(POSTHOG_CLOUD_HOST_MATCHER);
if (match && match.length > 1) {
const region = match[1];
return [
{
source: `${routeEndpoint}/static/:path*`,
destination: `https://${region}-assets.${POSTHOG_CLOUD_HOST_BASE}/static/:path*`
},
{
source: `${routeEndpoint}/:path*`,
destination: `https://${region}.${POSTHOG_CLOUD_HOST_BASE}/:path*`
}
];
}
return [
{
source: `${routeEndpoint}/:path*`,
destination: `${postHogDomain}/:path*`
}
];
}
export {
generateRewrites,
getPosthogEndpoint
};
//# sourceMappingURL=posthog.mjs.map