ДокументацияОператоры маппера8. Условные и контентные трансформеры (Conditional & content)

Условные и контентные трансформеры (Conditional & content)

Операторы более высокого уровня для шаблонизации, условного маппинга, меток времени и помощников для формирования email/вложений, используемых при приёме почты. Некоторые принимают структурированные аргументы json.

DT

Вид: трансформер · Обработка значения: per-item · Синоним: mapper_DT

Извлекает вложенное значение из текущего значения по выражению преобразования данных или по точечному пути. Если выражение содержит плейсхолдер ${…}/#{…}/{{…}}, оно рендерится как шаблон; иначе трактуется как путь.

Аргумент Тип Обязателен По умолчанию Синонимы
dt string да expression, path

Пример. {"a":{"b":5}} с dt="a.b"5

SetIfEmpty

Вид: трансформер · Обработка значения: whole-value · Синоним: mapper_SetIfEmpty

Возвращает запасное значение, когда текущее значение пусто (null, undefined, "" или пустой массив).

Аргумент Тип Обязателен По умолчанию Синонимы
value json да defaultValue
treatEmptyObjectAsEmpty boolean нет false

Пример. "" с value="X""X" · "y" с value="X""y"

TimeStampToDate

Вид: трансформер · Обработка значения: whole-value · Синоним: mapper_TimeStampToDate

Преобразует UNIX-метку времени в форматированную строку даты.

Аргумент Тип Обязателен По умолчанию
format string нет iso
timezone string нет UTC
unit string нет auto

Поведение. format принимает iso или токен-шаблон в стиле YYYY-MM-DD HH:mm:ss (устаревшее ключевое слово date означает только дату). unitauto, seconds или milliseconds.

Пример. 1709640896 с format="date""2024-03-05"

MapPattern

Вид: трансформер · Обработка значения: per-item · Синоним: mapper_MapPattern

Отображает входное значение через таблицу шаблонов, используя сопоставление exact, wildcard, contains, starts/ends-with или regex. Над массивом отображается каждый элемент.

Аргумент Тип Обязателен По умолчанию Синонимы
mappings json да mapping, patterns
algorithm string нет exact
defaultValue json нет входное значение
caseInsensitive boolean нет false
flags string нет нет
priority string нет first

Поведение. mappings — это либо объект ({ pattern: output }), либо массив дескрипторов { pattern, output } (каждый может нести собственные algorithm/flags). priority=last заставляет побеждать последнюю совпавшую запись. Когда ни один шаблон не совпал, возвращается defaultValue (или вход). Небезопасные/некорректные regex-шаблоны просто не совпадают.

Пример. "High" с mappings=[{"pattern":"High","output":"P1"}]"P1" · "Severe" с mappings=[{"pattern":"Sev.*","output":"S"}], algorithm="regex""S"

FormatTemplate

Вид: трансформер · Обработка значения: per-item · Синоним: mapper_FormatTemplate

Рендерит строку-шаблон, используя текущее значение и вложенные плейсхолдеры (${path}, #{path}, {{path}}). Над массивом рендерится каждый элемент.

Аргумент Тип Обязателен По умолчанию Синонимы
template string да format
nullValue string нет ""
undefinedValue string нет ""

Пример. {"ip":"10.0.0.1"} с template="IP is ${ip}""IP is 10.0.0.1"

If-Elif

Вид: трансформер · Обработка значения: whole-value · Синоним: mapper_IfElif

Вычисляет структурированный список ветвей и возвращает результат первой совпавшей ветви; иначе — значение else. Условия поддерживают exists, equals, notEquals, gt/gte/lt/lte, includes, regex и булевы комбинаторы all/any/not. Ветвь then, содержащая плейсхолдер ${…}, рендерится по значению.

Аргумент Тип Обязателен По умолчанию Синонимы
branches json да conditions
else json нет входное значение defaultValue

Пример. "abc123" с branches=[{"if":{"regex":"\\d+"},"then":"HAS"}], else="NO""HAS"

AppendIfNotEmpty

Вид: трансформер · Обработка значения: whole-value · Синоним: mapper_AppendIfNotEmpty

Добавляет значение в конец или начало, но только когда текущее значение не пусто. Пустое добавление — no-op.

Аргумент Тип Обязателен По умолчанию
value json да
separator string нет ""
position string нет suffix

Поведение. Для массивов добавление конкатенируется (prefix/suffix). Для строк — соединяется через separator. position="prefix" добавляет в начало.

Пример. "a" с value="b", separator=",""a,b" · "" с value="b"""

TimeComponents

Вид: трансформер · Обработка значения: whole-value · Синоним: mapper_TimeComponents

Разбивает метку времени или дату на переиспользуемые числовые компоненты плюс поля date, time, weekday и timezone.

Аргумент Тип Обязателен По умолчанию
timezone string нет UTC
includeIso boolean нет false

Пример. "2024-03-05T12:34:56Z"{"year":2024,"month":3,"day":5,"hour":12,"minute":34,"second":56,"millisecond":0,"weekday":2,"date":"2024-03-05","time":"12:34:56","timezone":"+00:00"}

emailAddress

Вид: трансформер · Обработка значения: whole-value · Синоним: mapper_emailAddress

Уплощает объект email-адреса в отображаемую строку (Name <address>, когда присутствуют оба).

Пример. {"emailAddress":{"name":"N","address":"a@b.com"}}"N <a@b.com>"

emailAddressList

Вид: трансформер · Обработка значения: array · Синоним: mapper_emailAddressList

Уплощает массив объектов email-адресов в отображаемые строки, отбрасывая пустые.

Пример. [{"address":"a@b.com"},{"name":"N","address":"c@d.com"}]["a@b.com","N <c@d.com>"]

attachmentMetadata

Вид: трансформер · Обработка значения: array · Синоним: mapper_attachmentMetadata

Проецирует объекты вложений в стабильную форму метаданных (id, name, contentType, size, isInline, lastModifiedDateTime); отсутствующие ключи становятся null.

Пример. [{"id":"1","name":"r.pdf","contentType":"application/pdf","size":2048}][{"id":"1","name":"r.pdf","contentType":"application/pdf","size":2048,"isInline":null,"lastModifiedDateTime":null}]

attachmentNames

Вид: трансформер · Обработка значения: array · Синоним: mapper_attachmentNames

Извлекает имена вложений из массива вложений (name, затем filename, затем fileName; пустые отбрасываются).

Пример. [{"name":"r.pdf"},{"filename":"l.txt"}]["r.pdf","l.txt"]

arrayLength

Вид: трансформер · Обработка значения: array · Синоним: mapper_arrayLength

Считает элементы массива. Не-массив даёт 0.

Пример. [1,2,3]3

firstItem

Вид: трансформер · Обработка значения: array · Синоним: mapper_firstItem

Возвращает первый элемент массива (не-массив проходит насквозь).

Пример. [1,2]1

lastItem

Вид: трансформер · Обработка значения: array · Синоним: mapper_lastItem

Возвращает последний элемент массива.

Пример. [1,2]2

joinComma

Вид: трансформер · Обработка значения: array · Синоним: mapper_joinComma

Соединяет элементы массива в строку с разделителем «запятая-пробел», обрезая каждый элемент и отбрасывая пустые.

Пример. ["a"," b ","","c"]"a, b, c"

splitComma

Вид: трансформер · Обработка значения: whole-value · Синоним: mapper_splitComma

Разбивает строку с запятыми в массив, обрезая каждый элемент и отбрасывая пустые.

Пример. "a, b ,c"["a","b","c"]

jsonStringify

Вид: трансформер · Обработка значения: whole-value · Синоним: mapper_jsonStringify

Сериализует нестроковые значения в JSON. Строка проходит насквозь без изменений.

Пример. {"a":1}'{"a":1}' · "x""x"