mirror of
https://github.com/Abdulazizzn/n8n-enterprise-unlocked.git
synced 2025-12-19 11:01:15 +00:00
feat(core): Add closeFunction support to Sub-Nodes (#7708)
Github issue / Community forum post (link here to close automatically): --------- Signed-off-by: Oleg Ivaniv <me@olegivaniv.com> Co-authored-by: Oleg Ivaniv <me@olegivaniv.com>
This commit is contained in:
@@ -37,6 +37,7 @@ import pick from 'lodash/pick';
|
||||
import { extension, lookup } from 'mime-types';
|
||||
import type {
|
||||
BinaryHelperFunctions,
|
||||
CloseFunction,
|
||||
ConnectionTypes,
|
||||
ContextType,
|
||||
FieldType,
|
||||
@@ -3118,6 +3119,7 @@ export function getExecuteFunctions(
|
||||
additionalData: IWorkflowExecuteAdditionalData,
|
||||
executeData: IExecuteData,
|
||||
mode: WorkflowExecuteMode,
|
||||
closeFunctions: CloseFunction[],
|
||||
abortSignal?: AbortSignal,
|
||||
): IExecuteFunctions {
|
||||
return ((workflow, runExecutionData, connectionInputData, inputData, node) => {
|
||||
@@ -3294,7 +3296,11 @@ export function getExecuteFunctions(
|
||||
};
|
||||
|
||||
try {
|
||||
return await nodeType.supplyData.call(context, itemIndex);
|
||||
const response = await nodeType.supplyData.call(context, itemIndex);
|
||||
if (response.closeFunction) {
|
||||
closeFunctions.push(response.closeFunction);
|
||||
}
|
||||
return response;
|
||||
} catch (error) {
|
||||
// Propagate errors from sub-nodes
|
||||
if (error.functionality === 'configuration-node') throw error;
|
||||
|
||||
@@ -32,6 +32,7 @@ import type {
|
||||
IRunExecutionData,
|
||||
IWorkflowExecuteAdditionalData,
|
||||
WorkflowExecuteMode,
|
||||
CloseFunction,
|
||||
} from 'n8n-workflow';
|
||||
import {
|
||||
LoggerProxy as Logger,
|
||||
@@ -1074,7 +1075,7 @@ export class WorkflowExecute {
|
||||
|
||||
const errorItems: INodeExecutionData[] = [];
|
||||
const successItems: INodeExecutionData[] = [];
|
||||
|
||||
const closeFunctions: CloseFunction[] = [];
|
||||
// Create a WorkflowDataProxy instance that we can get the data of the
|
||||
// item which did error
|
||||
const executeFunctions = NodeExecuteFunctions.getExecuteFunctions(
|
||||
@@ -1087,6 +1088,7 @@ export class WorkflowExecute {
|
||||
this.additionalData,
|
||||
executionData,
|
||||
this.mode,
|
||||
closeFunctions,
|
||||
this.abortController.signal,
|
||||
);
|
||||
const dataProxy = executeFunctions.getWorkflowDataProxy(0);
|
||||
|
||||
Reference in New Issue
Block a user