@onereach/channel-transformer
Version:
Convert data model between different channels (Slack, Microsoft Teams, Generic...)
32 lines (28 loc) • 946 B
text/typescript
import { IGenericSection } from '../../../../generic/types';
import { IRWCMessage } from '../../../types';
import { getMethods } from '../methods';
import { RWCv5Message } from '../../../classes/v5';
export const transformContext = ({ children }: IGenericSection, isPlain:boolean): IRWCMessage => {
const words = children.map(item => {
const child = getMethods(item.type)(item, true);
return {
type: item.type,
message: child?.message || child?.vBind?.text || ''
};
});
let message;
if (isPlain) {
message = words.map(w => w.message).join(" ");
} else {
message = words.map(w => {
if (w.type === 'text') {
return `<span style="margin-right: 5px;">${w.message}</span>`;
}
if (w.type === 'image') {
return `<img src="${w.message}" style="height: 20px; margin-right: 5px;" />`;
}
return w.message;
}).join("");
}
return new RWCv5Message(message);
};