Something went wrong. Try again.
A fork of @slices.network/slices forked from slices.network/slices
Something went wrong. Try again.
12345678910111213141516171819202122232425262728293031323334// List of domains that are not supported as primary domains (trying to prevent long running syncs for now)const UNSUPPORTED_DOMAINS = ["app.bsky"];
export function validateDomain(domain: string): string | null { const trimmedDomain = domain.trim();
if (!trimmedDomain || trimmedDomain.length === 0) { return "Domain is required"; }
if (UNSUPPORTED_DOMAINS.includes(trimmedDomain)) { return `The domain '${trimmedDomain}' is not supported`; }
// Domain must have at least two parts (e.g. social.grain) if (!trimmedDomain.includes(".")) { return "Domain must have at least two parts (e.g. social.grain)"; }
// Validate domain format const domainRegex = /^[a-zA-Z0-9]([a-zA-Z0-9-]*[a-zA-Z0-9])?(\.[a-zA-Z0-9]([a-zA-Z0-9-]*[a-zA-Z0-9])?)+$/; if (!domainRegex.test(trimmedDomain)) { return "Domain must be a valid format (e.g. social.grain)"; }
return null; // Valid}
// Function to get the list of unsupported domains (for debugging/admin purposes)export function getUnsupportedDomains(): readonly string[] { return UNSUPPORTED_DOMAINS;}