INNER CODE UNIT · TypeScript
title
rowboatlabs/rowboat · apps/harbor/packages/server/src/connectors/attio/index.ts:87
const title = (key: string) => {
const nested = v[key];
if (nested && typeof nested === 'object' && 'title' in nested && typeof nested.title === 'string') return nested.title;
return undefined;
};
switch (v.attribute_type) {
case 'text': case 'date': case 'timestamp': return text('value');
case 'number': case 'rating': return typeof v.value === 'number' && Number.isFinite(v.value) ? String(v.value) : undefined;
case 'checkbox': return typeof v.value === 'boolean' ? (v.value ? 'Yes' : 'No') : undefined;
case 'domain': return text('domain');
case 'email-address': return text('email_address');
case 'personal-name': return text('full_name') || [text('first_name'), text('last_name')].filter(Boolean).join(' ');
case 'select': return title('option');
case 'status': return title('status');
case 'currency': {
const amount = v.currency_value;
if (text('currency_code') && ((typeof amount === 'number' && Number.isFinite(amount)) ||
(typeof amount === 'string' && /^-?\d+(?:\.\d+)?$/.test(amount)))) return `${text('currency_code')} ${amount}`;