UNPKG

@node-ts/bus-workflow

Version:

A workflow engine for orchestrating logic flows in distributed applications.

19 lines (18 loc) 1.26 kB
import { Message } from '@node-ts/bus-messages'; import { ClassConstructor } from '@node-ts/bus-core'; import { WorkflowData } from '../workflow-data'; import { Workflow, WorkflowConstructor } from '../workflow'; import { WorkflowWithHandler } from './handler-workflow'; export declare const WORKFLOW_STARTED_BY_METADATA_KEY: unique symbol; export declare class WorkflowStartedByMetadata { propertyKey: string; messageConstructor: ClassConstructor<Message>; static addStep(metadata: WorkflowStartedByMetadata, target: Workflow<WorkflowData>): void; static getSteps(target: WorkflowConstructor<WorkflowData>): WorkflowStartedByMetadata[]; } /** * A handler that starts a new workflow whenever a message of the handled type is received. A workflow can be started * by one or more message types. * @param messageConstructor The type of message that starts a new workflow */ export declare function StartedBy<TMessage extends Message, TWorkflowData extends WorkflowData, TPropertyKey extends string, TTarget extends WorkflowWithHandler<TMessage, TWorkflowData, TPropertyKey> = WorkflowWithHandler<TMessage, TWorkflowData, TPropertyKey>>(messageConstructor: ClassConstructor<TMessage>): (target: TTarget, propertyKey: TPropertyKey) => void;