Тема
Макросы
Встроенные макросы Runium.
$base64decode
Декодирует строку из формата Base64.
Параметры
| Параметр | Обязательный | Описание |
|---|---|---|
value | Да | Строка в формате Base64 |
Пример
json
{
"decoded": "$base64decode(SGVsbG8gV29ybGQ=)"
}Результат:
json
{
"decoded": "Hello World"
}$base64encode
Кодирует строку в формат Base64.
Параметры
| Параметр | Обязательный | Описание |
|---|---|---|
value | Да | Строка для кодирования |
Пример
json
{
"encoded": "$base64encode(Hello World)"
}Результат:
json
{
"encoded": "SGVsbG8gV29ybGQ="
}$content
Читает содержимое файла.
Параметры
| Параметр | Обязательный | Описание |
|---|---|---|
path | Да | Путь к файлу |
Пример
json
{
"fileContent": "$content(config.txt)"
}Результат (если файл содержит "Hello World"):
json
{
"fileContent": "Hello World"
}$date
Возвращает текущую дату и время в формате YYYY-MM-DD hh:mm:ss.sss.
Параметры
Макрос не принимает параметров.
Пример
json
{
"createdAt": "$date()"
}Результат:
json
{
"createdAt": "2026-01-01 12:34:56.123"
}$empty
Возвращает пустую строку.
Параметры
Макрос не принимает параметров.
Пример
json
{
"value": "$empty()"
}Результат:
json
{
"value": ""
}$env
Возвращает значение переменной окружения.
Параметры
| Параметр | Обязательный | Описание |
|---|---|---|
name | Да | Имя переменной окружения |
defaultValue | Нет | Значение по умолчанию, если переменная окружения не задана |
Примеры
Получение значения переменной окружения:
json
{
"user": "$env(USER)"
}С значением по умолчанию:
json
{
"user": "$env(USER, guest)"
}$eq
Возвращает одно из двух значений в зависимости от равенства двух входных значений.
Параметры
| Параметр | Обязательный | Описание |
|---|---|---|
value1 | Да | Первое значение для сравнения |
value2 | Да | Второе значение для сравнения |
trueValue | Нет | Значение, возвращаемое если value1 === value2 (по умолчанию пустая строка) |
falseValue | Нет | Значение, возвращаемое если value1 !== value2 (по умолчанию пустая строка) |
Примеры
Простое сравнение:
json
{
"file": "$eq($env(USER), admin, admin.txt, user.txt)"
}Если USER=admin, результат:
json
{
"file": "admin.txt"
}Если USER=guest, результат:
json
{
"file": "user.txt"
}Вложенные макросы:
json
{
"config": "$eq($env(NODE_ENV), production, $path(config/prod.json), $path(config/dev.json))"
}$homedir
Возвращает путь к домашнему каталогу текущего пользователя.
Параметры
Макрос не принимает параметров.
Пример
json
{
"home": "$homedir()"
}Результат (Linux/macOS):
json
{
"home": "/home/username"
}$json
Создает JSON из строкового представления JavaScript объекта или примитива.
Параметры
| Параметр | Обязательный | Описание |
|---|---|---|
jsonString | Да | Строковое представление JavaScript объекта или примитива |
TIP
Макрос не экранирует двойные кавычки.
Для получения значения в виде объекта, используйте служебный макрос $unwrap.
Примеры
Создание JSON:
json
{
"value": "$unwrap($json({a: 12, b: true}))"
}Результат:
json
{
"value": { "a": 12, "b": true }
}$max
Возвращает максимальное значение из переданных аргументов.
Параметры
| Параметр | Обязательный | Описание |
|---|---|---|
...values | Да | Числа для сравнения |
Пример
json
{
"maxValue": "$max(10, 25, 5, 30, 15)"
}Результат:
json
{
"maxValue": "30"
}$min
Возвращает минимальное значение из переданных аргументов.
Параметры
| Параметр | Обязательный | Описание |
|---|---|---|
...values | Да | Числа для сравнения |
Пример
json
{
"minValue": "$min(10, 25, 5, 30, 15)"
}Результат:
json
{
"minValue": "5"
}$ne
Возвращает одно из двух значений в зависимости от неравенства двух входных значений.
Параметры
| Параметр | Обязательный | Описание |
|---|---|---|
value1 | Да | Первое значение для сравнения |
value2 | Да | Второе значение для сравнения |
trueValue | Нет | Значение, возвращаемое если value1 !== value2 (по умолчанию пустая строка) |
falseValue | Нет | Значение, возвращаемое если value1 === value2 (по умолчанию пустая строка) |
Примеры
Простое сравнение:
json
{
"mode": "$ne($env(DEBUG), true, development, production)"
}Если DEBUG=false, результат:
json
{
"mode": "development"
}Если DEBUG=true, результат:
json
{
"mode": "production"
}$path
Возвращает абсолютный путь, вычисленный относительно текущего рабочего каталога.
Параметры
| Параметр | Обязательный | Описание |
|---|---|---|
...path | Да | Один или несколько сегментов пути для объединения |
Примеры
Относительный путь:
json
{
"configPath": "$path(config/app.json)"
}Несколько сегментов пути:
json
{
"dataPath": "$path(data, users, profile.json)"
}Путь на уровень выше:
json
{
"parentPath": "$path(../file.txt)"
}$platform
Возвращает название платформы операционной системы.
Параметры
Макрос не принимает параметров.
Пример
json
{
"os": "$platform()"
}Результат (на Linux):
json
{
"os": "linux"
}Возможные значения: linux, darwin, win32, freebsd, openbsd, sunos, aix.
$random
Генерирует случайное целое число в заданном диапазоне.
Параметры
| Параметр | Обязательный | Описание |
|---|---|---|
min | Нет | Минимальное значение (по умолчанию 0) |
max | Нет | Максимальное значение (по умолчанию 2^53 − 1) |
Примеры
Случайное число:
json
{
"randomValue": "$random()"
}Случайное число в диапазоне:
json
{
"randomValue": "$random(1, 10)"
}Результат:
json
{
"randomValue": "7"
}$timestamp
Возвращает текущее время в миллисекундах с начала эпохи Unix (Unix timestamp).
Параметры
Макрос не принимает параметров.
Пример
json
{
"timestamp": "$timestamp()"
}Результат:
json
{
"timestamp": "1705328445123"
}$tmpdir
Возвращает путь к временному каталогу операционной системы.
Параметры
Макрос не принимает параметров.
Пример
json
{
"tempDir": "$tmpdir()"
}Результат (Linux):
json
{
"tempDir": "/tmp"
}$unwrap
Служебный макрос, удаляющий кавычки вокруг значения. Используется для получения нестроковых значений (чисел, булевых значений, объектов и т.п.) в JSON.
Параметры
| Параметр | Обязательный | Описание |
|---|---|---|
value | Да | Значение для удаления кавычек |
Примеры
Получение числового значения:
json
{
"timestamp": "$timestamp()"
}Результат - значение в кавычках:
json
{
"timestamp": "1705328445123"
}Для удаления кавычек используем $unwrap:
json
{
"timestamp": "$unwrap($timestamp())"
}Результат:
json
{
"timestamp": 1705328445123
}$username
Возвращает имя текущего пользователя операционной системы.
Параметры
Макрос не принимает параметров.
Пример
json
{
"user": "$username()"
}Результат:
json
{
"user": "john"
}$uuid
Генерирует уникальный идентификатор UUID v4.
Параметры
Макрос не принимает параметров.
Пример
json
{
"id": "$uuid()"
}Результат:
json
{
"id": "fb97307e-5cc1-4109-8c6d-19074df9f5d1"
}Вложенные макросы
Макросы можно вкладывать друг в друга для создания сложных выражений.
Примеры
Условный путь на основе переменной окружения:
json
{
"logFile": "$eq($env(NODE_ENV), production, $path(logs/prod.log), $path(logs/dev.log))"
}Использование домашнего каталога в пути:
json
{
"configPath": "$path($homedir(), .config, myapp, config.json)"
}