Files
aiform_prod/docs/n8n_CODE_FLATTEN_DATA.js

30 lines
1.0 KiB
JavaScript
Raw Normal View History

/**
* n8n Code node: развернуть data в плоский список.
* Если в data попал объект вида { "crm_items": [...] }, он заменяется на сами элементы crm_items.
*
* Вход: один элемент с полем data (массив), где часть элементов могут быть { crm_items: [...] }.
* Выход: один элемент { data: [...] } плоский массив только карточек (заявки Postgres + элементы CRM).
*/
const input = $input.first().json;
let data = input.data;
if (data == null) data = input.items || input.drafts || [];
if (!Array.isArray(data)) data = [data];
const flattened = [];
for (const item of data) {
if (
item &&
typeof item === 'object' &&
item.crm_items &&
Array.isArray(item.crm_items) &&
Object.keys(item).length === 1
) {
flattened.push(...item.crm_items);
} else {
flattened.push(item);
}
}
return [{ json: { ...input, data: flattened } }];