n8n/packages/workflow/src/execution-status.ts

36 lines
1.1 KiB
TypeScript

export const ExecutionStatusList = [
'canceled',
'crashed',
'error',
'new',
'running',
'success',
'unknown',
'waiting',
] as const;
export type ExecutionStatus = (typeof ExecutionStatusList)[number];
export type CompletedExecutionStatus = 'crashed' | 'error' | 'success';
export type TerminalExecutionStatus = CompletedExecutionStatus | 'canceled';
export function isCompletedExecutionStatus(
status: ExecutionStatus,
): status is CompletedExecutionStatus {
return status === 'crashed' || status === 'error' || status === 'success';
}
/**
* Statuses that may be overwritten to `crashed` by recovery. These are the in-progress
* and indeterminate states; `waiting` and the terminal statuses are deliberately excluded
* so a legitimately paused or finished execution is never marked as crashed.
*/
export const CRASHABLE_EXECUTION_STATUSES = ['new', 'running', 'unknown'] as const;
export function isTerminalExecutionStatus(
status: ExecutionStatus | undefined,
): status is TerminalExecutionStatus {
return (
status === 'canceled' || status === 'crashed' || status === 'error' || status === 'success'
);
}