n8n
Version:
n8n Workflow Automation Tool
40 lines (39 loc) • 1.84 kB
TypeScript
import { CredentialsRepository, WorkflowRepository } from '@n8n/db';
import type { INode, INodes, IConnections, IWorkflowSettings } from 'n8n-workflow';
import { CredentialTypes } from '../credential-types';
import { DynamicCredentialsProxy } from '../credentials/dynamic-credentials-proxy';
import type { NodeTypes } from '../node-types';
export interface WorkflowValidationResult {
isValid: boolean;
error?: string;
}
export interface SubWorkflowValidationResult extends WorkflowValidationResult {
invalidReferences?: Array<{
nodeName: string;
workflowId: string;
workflowName?: string;
}>;
}
export interface WorkflowStatus {
exists: boolean;
isPublished: boolean;
name?: string;
}
export declare class WorkflowValidationService {
private readonly workflowRepository;
private readonly credentialsRepository;
private readonly dynamicCredentialsProxy;
private readonly credentialTypes;
constructor(workflowRepository: WorkflowRepository, credentialsRepository: CredentialsRepository, dynamicCredentialsProxy: DynamicCredentialsProxy, credentialTypes: CredentialTypes);
private validateNodeConfiguration;
private validateNodeParameters;
validateCredentialNodeRestrictions(nodes: INode[]): WorkflowValidationResult;
private getActiveCredentialTypes;
validateForActivation(nodes: INodes, connections: IConnections, nodeTypes: NodeTypes): WorkflowValidationResult;
validateDynamicCredentials(nodes: INode[], nodeTypes: NodeTypes, workflowSettings?: IWorkflowSettings): Promise<WorkflowValidationResult>;
validateSubWorkflowReferences(workflowId: string, nodes: INode[]): Promise<SubWorkflowValidationResult>;
private getWorkflowStatus;
private hasValueProperty;
private extractWorkflowId;
private shouldSkipSubWorkflowValidation;
}