mirror of
https://github.com/n8n-io/n8n.git
synced 2026-06-02 01:37:07 +02:00
30 lines
1.2 KiB
TypeScript
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);
|
|
}
|