export type PresentationProfileData = { authorName?: string presentation?: string contentDescription?: string mainnetAddress?: string pictureUrl?: string category?: string } export function parsePresentationProfileJson(json: string): PresentationProfileData | null { try { const parsed: unknown = JSON.parse(json) if (typeof parsed !== 'object' || parsed === null) { return null } const obj = parsed as Record return { ...readOptionalStringFields(obj, ['authorName', 'presentation', 'contentDescription', 'mainnetAddress', 'pictureUrl', 'category']), } } catch (error) { console.error('Error parsing presentation profile JSON:', error) return null } } function readOptionalStringFields( obj: Record, keys: TKeys ): Partial> { const result: Partial> = {} for (const key of keys as ReadonlyArray) { const value = obj[key] if (typeof value === 'string') { result[key] = value } } return result }