/** * Shared API response helpers. * * Extracted from 10+ composables/components that each had an identical local * copy of extractCollection (parsing hydra:member / member / data / array). */ export function extractCollection(payload: unknown): T[] { if (Array.isArray(payload)) return payload as T[] const p = payload as Record | null if (Array.isArray(p?.member)) return p!.member as T[] if (Array.isArray(p?.['hydra:member'])) return p!['hydra:member'] as T[] if (Array.isArray(p?.items)) return p!.items as T[] if (Array.isArray(p?.data)) return p!.data as T[] return [] }