UNPKG

@onereach/channel-transformer

Version:

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

35 lines (25 loc) 1.17 kB
import { IGenericText, IGenericHeader } from "../../../../generic/types"; import { IRWCAnswerComponent } from '../../../types'; import { RWCAnswerComponent } from "../../../classes/v5"; import { getMethods } from "../methods"; import { toHtml } from '../../../../../helpers/md-to-html'; import { escapeHtmlString } from "../../../../../helpers/string-sanitizer"; export const transformText = ( { props }: IGenericText): IRWCAnswerComponent => { const type = "rwc-text"; const { value, type: textSubtype } = props; const text = textSubtype === "markdown" ? toHtml(value, true) : value; return new RWCAnswerComponent({text: escapeHtmlString(text) }, type); }; export const transformHeader = ( {props, children}: IGenericHeader, isPlain: boolean): string => { const words = children.map(item => { const child = getMethods(item.type)(item); return (child?.message || child?.vBind.text || ""); }); if (isPlain) { return words.join(" "); } const level = props?.level || 3; const tag = `h${level}`; const message = words.join(" "); return `<${tag}>${message}</${tag}>`; };