INNER CODE UNIT · TypeScript
formatted
rowboatlabs/rowboat · apps/harbor/packages/server/src/connectors/attio/index.ts:119
const formatted = values.map(attributeText).filter((value): value is string => Boolean(value?.trim()));
if (!formatted.length) continue;
const more = formatted.length > 5 ? ` (+${formatted.length - 5} more)` : '';
rows.push(`- **${plainText(key, 80)}:** ${plainText(formatted.slice(0, 5).join(', '), 300)}${more}`);
}
const lines = [`**Attio record · ${plainText(object, 128)}**`, ...recordFooter(record)];
if (!rows.length) lines.push('No supported current fields to display.');
else lines.push(rows.slice(0, 20).join('\n'));
if (rows.length > 20) lines.push('Showing the first 20 fields; open Attio to see the full record.');
return lines.join('\n\n');
}
export function attioPlatform(baseUrl?: string): ConnectorPlatform {
return integrationPlatform({
label: 'Attio',
client: (secret) => new AttioApi(secret, baseUrl),
check: (api) => api.check(),
commands: [{