| | import type { DataRequestResponse, PartialAdditionalData, TaskData } from '@n8n/task-runner'; |
| | import type { |
| | IRunExecutionData, |
| | IWorkflowExecuteAdditionalData, |
| | Workflow, |
| | WorkflowParameters, |
| | } from 'n8n-workflow'; |
| |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | export class DataRequestResponseBuilder { |
| | buildFromTaskData(taskData: TaskData): DataRequestResponse { |
| | return { |
| | workflow: this.buildWorkflow(taskData.workflow), |
| | inputData: taskData.inputData, |
| | connectionInputSource: taskData.executeData?.source ?? null, |
| | itemIndex: taskData.itemIndex, |
| | activeNodeName: taskData.activeNodeName, |
| | contextNodeName: taskData.contextNodeName, |
| | defaultReturnRunIndex: taskData.defaultReturnRunIndex, |
| | mode: taskData.mode, |
| | envProviderState: taskData.envProviderState, |
| | node: taskData.node, |
| | runExecutionData: this.buildRunExecutionData(taskData.runExecutionData), |
| | runIndex: taskData.runIndex, |
| | selfData: taskData.selfData, |
| | siblingParameters: taskData.siblingParameters, |
| | additionalData: this.buildAdditionalData(taskData.additionalData), |
| | }; |
| | } |
| |
|
| | private buildAdditionalData( |
| | additionalData: IWorkflowExecuteAdditionalData, |
| | ): PartialAdditionalData { |
| | return { |
| | formWaitingBaseUrl: additionalData.formWaitingBaseUrl, |
| | instanceBaseUrl: additionalData.instanceBaseUrl, |
| | restApiUrl: additionalData.restApiUrl, |
| | variables: additionalData.variables, |
| | webhookBaseUrl: additionalData.webhookBaseUrl, |
| | webhookTestBaseUrl: additionalData.webhookTestBaseUrl, |
| | webhookWaitingBaseUrl: additionalData.webhookWaitingBaseUrl, |
| | currentNodeParameters: additionalData.currentNodeParameters, |
| | executionId: additionalData.executionId, |
| | executionTimeoutTimestamp: additionalData.executionTimeoutTimestamp, |
| | restartExecutionId: additionalData.restartExecutionId, |
| | userId: additionalData.userId, |
| | }; |
| | } |
| |
|
| | private buildWorkflow(workflow: Workflow): Omit<WorkflowParameters, 'nodeTypes'> { |
| | return { |
| | id: workflow.id, |
| | name: workflow.name, |
| | active: workflow.active, |
| | connections: workflow.connectionsBySourceNode, |
| | nodes: Object.values(workflow.nodes), |
| | pinData: workflow.pinData, |
| | settings: workflow.settings, |
| | staticData: workflow.staticData, |
| | }; |
| | } |
| |
|
| | private buildRunExecutionData(runExecutionData: IRunExecutionData) { |
| | return { |
| | startData: runExecutionData.startData, |
| | resultData: runExecutionData.resultData, |
| | executionData: runExecutionData.executionData |
| | ? { |
| | contextData: runExecutionData.executionData.contextData, |
| | metadata: runExecutionData.executionData.metadata, |
| |
|
| | |
| | |
| | nodeExecutionStack: [], |
| | waitingExecution: {}, |
| | waitingExecutionSource: null, |
| | } |
| | : undefined, |
| | }; |
| | } |
| | } |
| |
|