n8n/packages/cli/src/executions/execution.utils.ts

30 lines
1.2 KiB
TypeScript

import type { IWorkflowBase } from 'n8n-workflow';
/**
* Determines the active status of a workflow from workflow data.
*
* This function handles backward compatibility:
* - Newer workflow data uses `activeVersionId` (string = active, null/undefined = inactive)
* - Older workflow data (before activeVersionId was introduced) falls back to the `active` boolean field
*
* @param workflowData - Workflow data
* @returns true if the workflow should be considered active, false otherwise
*/
export function getWorkflowActiveStatusFromWorkflowData(workflowData: IWorkflowBase): boolean {
return !!workflowData.activeVersionId || workflowData.active;
}
/**
* Determines if an execution mode is manual or chat.
*
* Manual and chat executions use draft sub-workflows to enable
* iterating on sub-workflows without requiring them to be published.
*
* Note: Test webhooks use 'manual' execution mode, so they also use draft versions.
* Production webhooks use 'webhook' execution mode and use published versions.
*/
export function isManualOrChatExecution(executionMode?: string): boolean {
if (!executionMode) return false;
return ['manual', 'chat'].includes(executionMode);
}