Hey is a decentralized and permissionless social media app built with Lens Protocol 馃尶
1import { HEY_TREASURY } from "@hey/data/constants";
2
3interface DomainParamConfig {
4 name: string;
5 value: string;
6}
7
8const DOMAIN_PARAM_MAP: Record<string, DomainParamConfig> = {
9 "highlight.xyz": { name: "referrer", value: HEY_TREASURY },
10 "zora.co": { name: "referrer", value: HEY_TREASURY }
11};
12
13const injectReferrerToUrl = (url: string): string => {
14 let parsed: URL;
15
16 try {
17 parsed = new URL(url);
18 } catch {
19 return url;
20 }
21
22 const [, config] =
23 Object.entries(DOMAIN_PARAM_MAP).find(([domain]) =>
24 parsed.hostname.endsWith(domain)
25 ) || [];
26
27 if (!config) {
28 return url;
29 }
30
31 parsed.searchParams.set(config.name, config.value);
32 return parsed.toString();
33};
34
35export default injectReferrerToUrl;