feat(orchestration,workflows): pipe oncomplete and workflow preparation (#4697)

* chore: pipe onComplete and workflow preparation step

* changeset

* fix: tests

---------

Co-authored-by: Adrien de Peretti <adrien.deperetti@gmail.com>
Co-authored-by: Oli Juhl <59018053+olivermrbl@users.noreply.github.com>
This commit is contained in:
Carlos R. L. Rodrigues
2023-08-08 08:06:47 -03:00
committed by GitHub
parent d1e298f5dc
commit c0ca002901
11 changed files with 205 additions and 20 deletions

View File

@@ -1,5 +1,6 @@
import { Context, MedusaContainer } from "@medusajs/types"
import {
DistributedTransaction,
OrchestratorBuilder,
TransactionHandlerType,
TransactionMetadata,
@@ -35,6 +36,7 @@ export type WorkflowStepHandler = (args: {
invoke: { [actions: string]: unknown }
compensate: { [actions: string]: unknown }
metadata: TransactionMetadata
transaction: DistributedTransaction
context?: Context
}) => unknown
@@ -136,7 +138,8 @@ export class WorkflowManager {
return async (
actionId: string,
handlerType: TransactionHandlerType,
payload?: any
payload?: any,
transaction?: DistributedTransaction
) => {
const command = handlers.get(actionId)
@@ -157,6 +160,7 @@ export class WorkflowManager {
invoke,
compensate,
metadata,
transaction: transaction as DistributedTransaction,
context,
})
}