UNPKG

@travetto/email-inky

Version:

Email Inky templating module

32 lines (24 loc) 1.31 kB
import { JSXElement } from '@travetto/email-inky/jsx-runtime'; import { RenderProvider, RenderState } from '../types'; import { RenderContext } from './context'; const empty = async (): Promise<string> => ''; const visit = ({ recurse }: RenderState<JSXElement, RenderContext>): Promise<string> => recurse(); export const Subject: RenderProvider<RenderContext> = { finalize: (text, context, root) => text, For: async ({ recurse, props }) => `{{#${props.attr}}}${await recurse()}{{/${props.attr}}}`, If: async ({ recurse, props }) => `{{#${props.attr}}}${await recurse()}{{/${props.attr}}}`, Unless: async ({ recurse, props }) => `{{^${props.attr}}}${await recurse()}{{/${props.attr}}}`, Value: async ({ props }) => `{{${props.attr}}}`, Title: visit, InkyTemplate: visit, title: visit, span: visit, strong: visit, center: visit, em: visit, p: visit, small: visit, Summary: empty, Button: empty, Callout: empty, Center: empty, HLine: empty, Menu: empty, Item: empty, Column: empty, Row: empty, BlockGrid: empty, Spacer: empty, Wrapper: empty, Container: empty, div: empty, hr: empty, br: empty, a: empty, img: empty, ul: empty, ol: empty, li: empty, table: empty, tbody: empty, td: empty, th: empty, tr: empty, thead: empty, h1: empty, h2: empty, h3: empty, h4: empty, };