18 lines
516 B
TypeScript
18 lines
516 B
TypeScript
export function parseImageUrl(payload: unknown): string {
|
|
if (!payload) return ''
|
|
let data: unknown = payload
|
|
if (typeof payload === 'string') {
|
|
try {
|
|
data = JSON.parse(payload)
|
|
} catch {
|
|
return payload.startsWith('http') ? payload : ''
|
|
}
|
|
}
|
|
if (typeof data !== 'object' || !data) return ''
|
|
const obj = data as Record<string, unknown>
|
|
const val = obj.output ?? obj.url
|
|
if (Array.isArray(val)) return String(val[0] ?? '')
|
|
if (typeof val === 'string') return val
|
|
return ''
|
|
}
|