n8n
Version:
n8n Workflow Automation Tool
90 lines (89 loc) • 3.97 kB
TypeScript
import { type EnvProviderState, type IExecuteFunctions, type Workflow, type IRunExecutionData, type INodeExecutionData, type ITaskDataConnections, type INode, type WorkflowParameters, type INodeParameters, type WorkflowExecuteMode, type IExecuteData, type IDataObject, type IWorkflowExecuteAdditionalData, type Result } from 'n8n-workflow';
import { type TaskResultData, type N8nMessage, type RequesterMessage } from '../runner-types';
export type RequestAccept = (jobId: string) => void;
export type RequestReject = (reason: string) => void;
export type TaskAccept = (data: TaskResultData) => void;
export type TaskReject = (error: unknown) => void;
export interface TaskData {
executeFunctions: IExecuteFunctions;
inputData: ITaskDataConnections;
node: INode;
workflow: Workflow;
runExecutionData: IRunExecutionData;
runIndex: number;
itemIndex: number;
activeNodeName: string;
connectionInputData: INodeExecutionData[];
siblingParameters: INodeParameters;
mode: WorkflowExecuteMode;
envProviderState: EnvProviderState;
executeData?: IExecuteData;
defaultReturnRunIndex: number;
selfData: IDataObject;
contextNodeName: string;
additionalData: IWorkflowExecuteAdditionalData;
}
export interface PartialAdditionalData {
executionId?: string;
restartExecutionId?: string;
restApiUrl: string;
instanceBaseUrl: string;
formWaitingBaseUrl: string;
webhookBaseUrl: string;
webhookWaitingBaseUrl: string;
webhookTestBaseUrl: string;
currentNodeParameters?: INodeParameters;
executionTimeoutTimestamp?: number;
userId?: string;
variables: IDataObject;
}
export interface AllCodeTaskData {
workflow: Omit<WorkflowParameters, 'nodeTypes'>;
inputData: ITaskDataConnections;
node: INode;
runExecutionData: IRunExecutionData;
runIndex: number;
itemIndex: number;
activeNodeName: string;
connectionInputData: INodeExecutionData[];
siblingParameters: INodeParameters;
mode: WorkflowExecuteMode;
envProviderState: EnvProviderState;
executeData?: IExecuteData;
defaultReturnRunIndex: number;
selfData: IDataObject;
contextNodeName: string;
additionalData: PartialAdditionalData;
}
export interface TaskRequest {
requestId: string;
taskType: string;
settings: unknown;
data: TaskData;
}
export interface Task {
taskId: string;
settings: unknown;
data: TaskData;
}
export declare class TaskManager {
requestAcceptRejects: Map<string, {
accept: RequestAccept;
reject: RequestReject;
}>;
taskAcceptRejects: Map<string, {
accept: TaskAccept;
reject: TaskReject;
}>;
pendingRequests: Map<string, TaskRequest>;
tasks: Map<string, Task>;
startTask<TData, TError>(additionalData: IWorkflowExecuteAdditionalData, taskType: string, settings: unknown, executeFunctions: IExecuteFunctions, inputData: ITaskDataConnections, node: INode, workflow: Workflow, runExecutionData: IRunExecutionData, runIndex: number, itemIndex: number, activeNodeName: string, connectionInputData: INodeExecutionData[], siblingParameters: INodeParameters, mode: WorkflowExecuteMode, envProviderState: EnvProviderState, executeData?: IExecuteData, defaultReturnRunIndex?: number, selfData?: IDataObject, contextNodeName?: string): Promise<Result<TData, TError>>;
sendMessage(_message: RequesterMessage.ToN8n.All): void;
onMessage(message: N8nMessage.ToRequester.All): void;
taskReady(requestId: string, taskId: string): void;
rejectTask(jobId: string, reason: string): void;
taskDone(taskId: string, data: TaskResultData): void;
taskError(taskId: string, error: unknown): void;
sendTaskData(taskId: string, requestId: string, requestType: N8nMessage.ToRequester.TaskDataRequest['requestType']): void;
handleRpc(taskId: string, callId: string, name: N8nMessage.ToRequester.RPC['name'], params: unknown[]): Promise<void>;
}