n8n
Version:
n8n Workflow Automation Tool
74 lines (73 loc) • 4.14 kB
TypeScript
import { Logger } from '@n8n/backend-common';
import { WorkflowsConfig } from '@n8n/config';
import type { WorkflowEntity, WorkflowPublicationTriggerKind } from '@n8n/db';
import { WorkflowRepository } from '@n8n/db';
import { ErrorReporter, Tracing } from 'n8n-core';
import type { IConnections, INode, WorkflowActivateMode, WorkflowId } from 'n8n-workflow';
import { ActivationErrorsService } from '../../activation-errors.service';
import { EventService } from '../../events/event.service';
import { NodeTypes } from '../../node-types';
import { NonWebhookTriggerRegistrar } from '../../workflows/triggers/non-webhook-trigger-registrar';
import { TriggerCountService } from '../../workflows/triggers/trigger-count.service';
import { TriggerExecutionContextFactory } from '../../workflows/triggers/trigger-execution-context.factory';
import { WebhookTriggerRegistrar } from '../../workflows/triggers/webhook-trigger-registrar';
import { WorkflowStaticDataService } from '../../workflows/workflow-static-data.service';
export type WorkflowTriggerVersion = {
nodes: INode[];
connections: IConnections;
};
export interface TriggerOperationAbort {
signal: AbortSignal;
onDetached: (work: Promise<unknown>) => void;
}
export type TriggerActivationFailure = {
nodeId: INode['id'];
nodeName: string;
error: Error;
};
export type TriggerActivationOutcome = {
activated: Array<INode['id']>;
failures: TriggerActivationFailure[];
};
export declare class WorkflowTriggerActivator {
private readonly logger;
private readonly errorReporter;
private readonly nodeTypes;
private readonly workflowRepository;
private readonly workflowStaticDataService;
private readonly workflowsConfig;
private readonly triggerExecutionContextFactory;
private readonly webhookTriggerRegistrar;
private readonly nonWebhookTriggerRegistrar;
private readonly triggerCountService;
private readonly activationErrorsService;
private readonly tracing;
private readonly eventService;
constructor(logger: Logger, errorReporter: ErrorReporter, nodeTypes: NodeTypes, workflowRepository: WorkflowRepository, workflowStaticDataService: WorkflowStaticDataService, workflowsConfig: WorkflowsConfig, triggerExecutionContextFactory: TriggerExecutionContextFactory, webhookTriggerRegistrar: WebhookTriggerRegistrar, nonWebhookTriggerRegistrar: NonWebhookTriggerRegistrar, triggerCountService: TriggerCountService, activationErrorsService: ActivationErrorsService, tracing: Tracing, eventService: EventService);
getEnabledTriggerNodes(version: WorkflowTriggerVersion | null): INode[];
getTriggerKinds(nodes: INode[]): Map<INode['id'], WorkflowPublicationTriggerKind>;
getUnregisteredNonWebhookTriggerNodeIds(workflowId: WorkflowId, desiredNodes: INode[]): Set<INode['id']>;
getNodesWithUnregisteredWebhooks(dbWorkflow: WorkflowEntity, version: WorkflowTriggerVersion): Promise<Set<INode['id']>>;
private getNonWebhookTriggerNodeIds;
activate(dbWorkflow: WorkflowEntity, version: WorkflowTriggerVersion, nodeIds: Set<INode['id']>, activationMode: WorkflowActivateMode, abort: TriggerOperationAbort): Promise<TriggerActivationOutcome>;
private activateInternal;
deactivate(dbWorkflow: WorkflowEntity, version: WorkflowTriggerVersion, nodeIds: Set<INode['id']>, abort: TriggerOperationAbort): Promise<void>;
private deactivateInternal;
updateTriggerCount(dbWorkflow: WorkflowEntity, version: WorkflowTriggerVersion): Promise<void>;
private emitTriggerOperation;
private emitTriggerNodeOperations;
private applyVersionToDbWorkflow;
private createWorkflow;
private registerWebhookTriggers;
private registerWebhookTriggersForNode;
private groupWebhookTriggersByNode;
private deregisterWebhookTriggers;
private getWebhookTriggersForNodeIds;
private registerNonWebhookTriggers;
private resolveNodeName;
private deregisterNonWebhookTriggers;
private getNonWebhookTriggerNodeIdsForNodeIds;
private createWorkflowDataResolver;
private throwRejectedPhaseError;
private recoverFromRuntimeTriggerFailure;
}