mirror of
https://github.com/n8n-io/n8n.git
synced 2026-05-24 05:15:16 +02:00
Co-authored-by: Michael Siega <michael.siega@n8n.io> Co-authored-by: mfsiega <93014743+mfsiega@users.noreply.github.com>
44 lines
1.0 KiB
TypeScript
44 lines
1.0 KiB
TypeScript
import {
|
|
NodeConnectionTypes,
|
|
type IDataObject,
|
|
type ITaskData,
|
|
type NodeConnectionType,
|
|
} from 'n8n-workflow';
|
|
|
|
type TaskData = {
|
|
data: IDataObject;
|
|
outputIndex?: number;
|
|
nodeConnectionType?: NodeConnectionType;
|
|
};
|
|
|
|
export function toITaskData(taskData: TaskData[], overrides?: Partial<ITaskData>): ITaskData {
|
|
const result: ITaskData = {
|
|
executionStatus: 'success',
|
|
executionTime: 0,
|
|
startTime: 0,
|
|
executionIndex: 0,
|
|
source: [],
|
|
data: {},
|
|
...(overrides ?? {}),
|
|
};
|
|
|
|
// NOTE: Here to make TS happy.
|
|
result.data = result.data ?? {};
|
|
for (const taskDatum of taskData) {
|
|
const type = taskDatum.nodeConnectionType ?? NodeConnectionTypes.Main;
|
|
const outputIndex = taskDatum.outputIndex ?? 0;
|
|
|
|
result.data[type] = result.data[type] ?? [];
|
|
const dataConnection = result.data[type];
|
|
dataConnection[outputIndex] = [{ json: taskDatum.data }];
|
|
}
|
|
|
|
for (const [type, dataConnection] of Object.entries(result.data)) {
|
|
for (const [index, maybe] of dataConnection.entries()) {
|
|
result.data[type][index] = maybe ?? null;
|
|
}
|
|
}
|
|
|
|
return result;
|
|
}
|