n8n/packages/workflow/src/WorkflowActivationError.ts

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

48 lines
1.2 KiB
TypeScript
Raw Normal View History

import type { INode } from './Interfaces';
import { ExecutionBaseError, type Severity } from './NodeErrors';
interface WorkflowActivationErrorOptions {
cause?: Error;
node?: INode;
severity?: Severity;
workflowId?: string;
}
/**
* Class for instantiating an workflow activation error
*/
export class WorkflowActivationError extends ExecutionBaseError {
node: INode | undefined;
workflowId: string | undefined;
constructor(
message: string,
{ cause, node, severity, workflowId }: WorkflowActivationErrorOptions = {},
) {
let error = cause as Error;
if (cause instanceof ExecutionBaseError) {
error = new Error(cause.message);
error.constructor = cause.constructor;
error.name = cause.name;
error.stack = cause.stack;
}
super(message, { cause: error });
this.node = node;
this.workflowId = workflowId;
this.message = message;
if (severity) this.severity = severity;
}
}
export class WorkflowDeactivationError extends WorkflowActivationError {}
export class WebhookPathAlreadyTakenError extends WorkflowActivationError {
constructor(nodeName: string, cause?: Error) {
super(
`The URL path that the "${nodeName}" node uses is already taken. Please change it to something else.`,
{ severity: 'warning', cause },
);
}
}