export type ParseJsonResult = | { success: true data: T } | { success: false error: Error } export const safeParseJson = (jsonStr: string): ParseJsonResult => { try { const data: T = JSON.parse(jsonStr) return { success: true, data } } catch (thrown) { const error = thrown instanceof Error ? thrown : new Error(String(thrown)) return { success: false, error } } }