@node-ts/bus-workflow
Version:
A workflow engine for orchestrating logic flows in distributed applications.
19 lines (18 loc) • 1.24 kB
TypeScript
import { Message, MessageAttributes } from '@node-ts/bus-messages';
import { WorkflowData, WorkflowDataConstructor } from '../workflow-data';
import { Logger } from '@node-ts/logger-core';
import { Handler } from '@node-ts/bus-core';
import { WorkflowHandlerFn } from './workflow-handler-fn';
import { Persistence } from '../persistence';
import { HandlerWithId, handlerIdProperty } from './handler-with-id';
export declare abstract class WorkflowHandlerProxy<TMessage extends Message, TWorkflowData extends WorkflowData> implements Handler<TMessage>, HandlerWithId {
readonly handler: WorkflowHandlerFn<TMessage, TWorkflowData>;
protected readonly workflowDataConstructor: WorkflowDataConstructor<TWorkflowData>;
protected readonly persistence: Persistence;
protected readonly logger: Logger;
readonly [handlerIdProperty]: string;
constructor(handler: WorkflowHandlerFn<TMessage, TWorkflowData>, workflowDataConstructor: WorkflowDataConstructor<TWorkflowData>, persistence: Persistence, logger: Logger);
handle(message: TMessage, messageOptions: MessageAttributes): Promise<void>;
abstract getWorkflowData(message: TMessage, messageOptions: MessageAttributes): Promise<TWorkflowData[]>;
private persist;
}