Sifa professional network API (Fastify, AT Protocol, Jetstream)
sifa.id/
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}