// integrations/cisco-mpp-phone/jsonRows.js // // Shared helpers for MPP SPA JSON endpoints (array-of-rows format). export function coerceRows(raw) { if (Array.isArray(raw)) return raw; if (typeof raw === 'string') { try { const parsed = JSON.parse(raw); return Array.isArray(parsed) ? parsed : []; } catch { return []; } } return []; } /** @param {Array} rows */ export function fieldsFromRows(rows) { const fields = {}; for (const row of rows) { const name = typeof row?.name === 'string' ? row.name.trim() : ''; if (!name) continue; const value = row?.value == null ? '' : String(row.value).trim(); if (value) fields[name] = value; } return fields; } export function extractIndexed(fields, re) { return Object.entries(fields) .filter(([k]) => re.test(k)) .sort(([a], [b]) => a.localeCompare(b, undefined, { numeric: true })) .map(([, v]) => v); }