a tool for shared writing and social publishing
1import { AtUri } from "@atproto/syntax";
2import { PubLeafletPublication } from "lexicons/api";
3import { isProductionDomain } from "src/utils/isProductionDeployment";
4import { Json } from "supabase/database.types";
5
6export function getPublicationURL(pub: {
7 uri: string;
8 name: string;
9 record: Json;
10}) {
11 let record = pub.record as PubLeafletPublication.Record;
12 if (isProductionDomain() && record?.base_path)
13 return `https://${record.base_path}`;
14 else return getBasePublicationURL(pub);
15}
16
17export function getBasePublicationURL(pub: {
18 uri: string;
19 name: string;
20 record: Json;
21}) {
22 let record = pub.record as PubLeafletPublication.Record;
23 let aturi = new AtUri(pub.uri);
24 return `/lish/${aturi.host}/${encodeURIComponent(aturi.rkey || record?.name || pub.name)}`;
25}