TypeScript SDK: Sources: входы процесса и цены
ctx.sources() читает заранее закреплённые входы процесса и локально сравнивает цены. Произвольное письмо или чужой прогон недоступны.
Примеры — отдельные фрагменты тела async function run(ctx: Akmelo.Context): Promise<void>. Используйте await только для методов с Promise в сигнатуре.
Методы
input
ctx.sources().input(key) → Promise<object>
Для входа типа records возвращает records, run_id, collected_at. Для входа mail возвращает проверенное письмо с текстом, темой, отправителем, сроком хранения и метаданными вложений.
const result = await ctx.sources().input('catalog');
document
ctx.sources().document(key, id) → Promise<Document>
Читает безопасное вложение только из письма выбранного входа. Обработчик документов работает внутри системы. Содержимое вложения не передаётся внешней модели.
const result = await ctx.sources().document('supplier', 'attachment-id');
comparePrices
ctx.sources().comparePrices(offers) → Array<object>
Сравнивает от двух до десяти источников. Каждый источник содержит до 5000 записей с sku (строка), price (число до двух знаков после запятой) и currency (например, RUB). Артикулы сопоставляются точно. Разные валюты, отрицательные цены и повторяющиеся артикулы внутри одного источника отклоняются.
const result = ctx.sources().comparePrices({ catalog: [{ sku: 'A-1', price: 1250, currency: 'RUB' }], supplier: [{ sku: 'A-1', price: 1200, currency: 'RUB' }] });