BaseWorkflow
@adamondo/backend / core/workflow/BaseWorkflow
core/workflow/BaseWorkflow
Classes
abstract BaseWorkflowEngine
Defined in: src/core/workflow/BaseWorkflow.ts:15
Generic workflow engine that evaluates transitions and executes versioned side effects.
Extended by
Type Parameters
TStatus
TStatus
TAction
TAction extends keyof TPayloadMap & keyof TResultMap
TActor
TActor
TContext
TContext extends BaseWorkflowContext<TStatus>
TResultMap
TResultMap extends Record<TAction, AnyValue>
TPayloadMap
TPayloadMap extends Record<TAction, AnyValue>
Constructors
Constructor
new BaseWorkflowEngine<
TStatus,TAction,TActor,TContext,TResultMap,TPayloadMap>(definitions):BaseWorkflowEngine<TStatus,TAction,TActor,TContext,TResultMap,TPayloadMap>
Defined in: src/core/workflow/BaseWorkflow.ts:29
Parameters
definitions
WorkflowDefinition<TStatus, TAction, TActor, TContext, TResultMap>[]
Returns
BaseWorkflowEngine<TStatus, TAction, TActor, TContext, TResultMap, TPayloadMap>
Methods
getNextStatus()
getNextStatus(
currentStatus,action,actor,version?):TStatus
Defined in: src/core/workflow/BaseWorkflow.ts:65
Parameters
currentStatus
TStatus | null
action
TAction
actor
TActor
version?
number
Returns
TStatus
Deprecated
Use executeAction instead. Computes the next status for a given action/actor pair.
Throws
When no matching transition exists.
isActionAllowed()
isActionAllowed(
currentStatus,action,actor,version?):boolean
Defined in: src/core/workflow/BaseWorkflow.ts:95
Checks whether an action is allowed for the actor in the current status.
Parameters
currentStatus
TStatus
action
TAction
actor
TActor
version?
number
Returns
boolean
getAllowedActions()
getAllowedActions(
currentStatus,actor,version?):TAction[]
Defined in: src/core/workflow/BaseWorkflow.ts:113
Lists all allowed actions for an actor in the current status.
Parameters
currentStatus
TStatus
actor
TActor
version?
number
Returns
TAction[]
isActionAlreadyApplied()
isActionAlreadyApplied(
currentStatus,action,actor,version?):boolean
Defined in: src/core/workflow/BaseWorkflow.ts:128
Returns true when the action's target status already matches current status for this actor. Useful for idempotent API behavior on duplicate requests.
Parameters
currentStatus
TStatus | null
action
TAction
actor
TActor
version?
number
Returns
boolean
getActionsWithMetadata()
getActionsWithMetadata(
currentStatus,actor,version?):object[]
Defined in: src/core/workflow/BaseWorkflow.ts:144
Returns allowed actions enriched with UI metadata.
Parameters
currentStatus
TStatus
actor
TActor
version?
number
Returns
object[]
executeAction()
executeAction<
K>(currentStatus,action,actor,context):Promise<{nextStatus:TStatus;result:TResultMap[K]; }>
Defined in: src/core/workflow/BaseWorkflow.ts:172
Executes a transition side effect in a transaction and returns the resulting status/value.
Type Parameters
K
K extends string | number | symbol
Parameters
currentStatus
TStatus | null
action
K
actor
TActor
context
TContext
Returns
Promise<{ nextStatus: TStatus; result: TResultMap[K]; }>
Throws
When no matching transition exists.
getLatestVersion()
getLatestVersion():
number
Defined in: src/core/workflow/BaseWorkflow.ts:233
Returns the highest registered workflow definition version.
Returns
number
getMermaidDiagram()
getMermaidDiagram(
version?):string
Defined in: src/core/workflow/BaseWorkflow.ts:240
Generates a Mermaid state diagram from workflow transitions.
Parameters
version?
number
Returns
string
setStatusMetadata()
setStatusMetadata(
status,actor,metadata):void
Defined in: src/core/workflow/BaseWorkflow.ts:260
Associates status metadata for a specific actor.
Parameters
status
TStatus
actor
TActor
metadata
unknown
Returns
void
getStatusMetadata()
getStatusMetadata(
status,actor):unknown
Defined in: src/core/workflow/BaseWorkflow.ts:267
Retrieves status metadata previously bound for an actor.
Parameters
status
TStatus
actor
TActor
Returns
unknown
resolveWorkflowContext()
abstractresolveWorkflowContext<K>(userId,targetId,action,payload,actorContext?):Promise<TContext>
Defined in: src/core/workflow/BaseWorkflow.ts:273
Builds action execution context from user, target resource, and payload.
Type Parameters
K
K extends string | number | symbol
Parameters
userId
string
targetId
number | undefined
action
K
payload
TPayloadMap[K]
actorContext?
unknown
Returns
Promise<TContext>
getActor()
abstractgetActor(context):TActor
Defined in: src/core/workflow/BaseWorkflow.ts:283
Resolves workflow actor from runtime context.
Parameters
context
TContext
Returns
TActor