Условные и контентные трансформеры (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 означает только дату).
unit — auto, 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"