UNPKG

@onereach/channel-transformer

Version:

Convert data model between different channels (Slack, Microsoft Teams, Generic...)

32 lines (28 loc) 952 B
import { IGenericFields } from '../../../../generic/types'; import { IRWCMessage } from '../../../types'; import { getMethods } from '../methods'; import { RWCv5Message } from '../../../classes/v5'; const isString = target => typeof target === 'string'; export const transformFields = ({ props, children }: IGenericFields): IRWCMessage => { const colNum = props.column || 2; let message = '<table><tbody>'; for (let i = 0; i < children.length; i = i + colNum) { let row = `<tr>`; for (let j = 0; j < colNum; j++) { const item = children[i+j]; if (item) { const field = getMethods(item.type)(item); const text = isString(field) ? field : field?.message || field?.vBind?.text || ''; row += `<td>${text}</td>`; } else { row += `<td></td>`; } } row += `</tr>`; message += row; } message += '</tbody></table>'; return new RWCv5Message(message); };