Перейти к основному содержимому
Разделы документации
Документация›Операторы маппера›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 означает только дату). 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"