Something went wrong. Try again.
a tool for shared writing and social publishing
Something went wrong. Try again.
942 B · 32 lines
TypeScript
at main
123456789101112131415161718192021222324252627282930313233import type { CustomDomain } from "./DomainList";
export type DomainAssignment = | { type: "unassigned" } | { type: "publication" } | { type: "document"; routes: string[] };
export function getDomainAssignment(domain: CustomDomain): DomainAssignment { if (domain.publication_domains && domain.publication_domains.length > 0) { return { type: "publication" }; } if (domain.custom_domain_routes && domain.custom_domain_routes.length > 0) { return { type: "document", routes: domain.custom_domain_routes.map((r) => r.route), }; } return { type: "unassigned" };}
export function describeAssignment(assignment: DomainAssignment): string { switch (assignment.type) { case "publication": return "publication"; case "document": return assignment.routes.length === 1 ? "1 leaflet" : `${assignment.routes.length} leaflets`; case "unassigned": return ""; }}