Sifa professional network API (Fastify, AT Protocol, Jetstream) sifa.id/
at main 44 lines 1.3 kB view raw
1export interface ProfileSource { 2 headline: string | null; 3 about: string | null; 4 displayName: string | null; 5 avatarUrl: string | null; 6} 7 8export interface ProfileOverride { 9 headline: string | null; 10 about: string | null; 11 displayName: string | null; 12 avatarUrl: string | null; 13} 14 15export interface ResolvedProfileFields { 16 headline: string | null; 17 about: string | null; 18 displayName: string | null; 19 avatarUrl: string | null; 20 hasHeadlineOverride: boolean; 21 hasAboutOverride: boolean; 22 hasDisplayNameOverride: boolean; 23 hasAvatarUrlOverride: boolean; 24} 25 26/** 27 * Resolve profile fields with overrides. 28 * Override takes precedence; null override means "use source." 29 */ 30export function resolveProfileFields( 31 source: ProfileSource, 32 override: ProfileOverride, 33): ResolvedProfileFields { 34 return { 35 headline: override.headline ?? source.headline, 36 about: override.about ?? source.about, 37 displayName: override.displayName ?? source.displayName, 38 avatarUrl: override.avatarUrl ?? source.avatarUrl, 39 hasHeadlineOverride: override.headline !== null, 40 hasAboutOverride: override.about !== null, 41 hasDisplayNameOverride: override.displayName !== null, 42 hasAvatarUrlOverride: override.avatarUrl !== null, 43 }; 44}